Blog post cover illustration Not only a Java house - what has changed?
Codeborne, Elis
28 Jan 2025

Not only a Java house - what has changed?

Antud lugu on saadaval ainult inglise keeles

In the past four years, the technological landscape at Codeborne has evolved significantly.

Here’s a closer look at the key changes, as shared by our team, since our original 2020 post, “Not Only a Java House”.

Languages

25%
JavaScript
24%
Java
20%
TypeScript
10%
Kotlin
7%
Swift
14%
Other
Other being C/C++, Lua, Python, C# and Flutter

Andrei - TypeScript has become more popular and Java is still here alongside Kotlin

TypeScript is an excellent language, and I’m surprised we didn’t use it earlier—it leads to fewer bugs. For any new project, I’d definitely choose it.

Kotlin, in many ways, feels like TypeScript next to JavaScript. That said, Java isn’t going anywhere. Its global popularity and reputation for stability ensure it remains popular. Java is undoubtedly more widely adopted worldwide than Kotlin. I think that one major reason companies often stick with Java is the fear that finding skilled Kotlin developers might be challenging. Additionally, Java’s long-standing stability gives it a strong reputation in the industry.

On the mobile development front, we’ve been creating native apps since 2019, while our experience with hybrid app development dates back to 2014. Today, this dual expertise remains integral to our workflow as we continue to leverage both native and hybrid approaches to meet diverse project needs.

Server

55%
Spring(boot)
14%
Node
13%
Klite
11%
Jetty
7%
Micronaut

Klite - New by Codeborne

Much like Selenide, Klite emerged from our own projects. It’s a lightweight Kotlin framework designed to simplify and accelerate backend development, offering a strong alternative to Spring Boot. We’ve done many projects using it and even transitioned our interns to using Kotlin with Klite. Their experience saying that the learning curve has proven to be no steeper than it would have been with Java.

UI frameworks

44%
Svelte
25%
Vue
14%
Swift UI
10%
React
7%
Jetpack

Anton – Svelte vs. Vue

The rise of Svelte has been a game-changer for us, surpassing Vue in popularity within the team. What makes Svelte such a great framework is how close it feels to native HTML, it’s simpler to learn, ideal for beginners, and includes built-in styling. Our own Svelte samples - component library significantly boosted our Svelte usage. We’ve even migrated projects from React and Vue to Svelte, finding that with AI assistance, medium-sized projects can be converted efficiently, resulting in smaller, cleaner codebases.

UI and Tailwind

60%
Tailwind
40%
Bootstrap

Erkki

Tailwind CSS has risen as our new standard for styling, replacing previous CSS approaches. Tailwind integrates seamlessly with our modular components, it allows us to manage styles easily within components, and only the styles we use make it into the final output—no bloat. Tailwind also simplifies responsive design, making it a more compact and flexible solution compared to Bootstrap. For prototyping, Tailwind speeds up workflows and reduces reliance on design tools, allowing for faster iteration.

Databases

42%
Postgres
19%
Redis
14%
Oracle
11%
Timescale
15%
Other
Other being Mongo, SQLite, MySQL, MSSQL

Platforms and services

45%
Docker
26%
AWS
11%
Kubernetes
7%
Azure
12%
Other
Other being Heroku, Google Cloud, Openshift

Build environments

30%
Jenkins
29%
Gradle
25%
Vite
7%
Webpack
11%
Other
Other being Maven, Nevercode/Codemagic, Fastlane, GitHub Actions

Messaging

92%
Redis
8%
Rabbit

Testing

28%
Vitest
27%
AssertJ
15%
Selenide
12%
Selenium
11%
Jest
7%
Other
Other being Playwright, Moon

AI’s role in development

4 years ago artificial intelligence wasn’t nowhere in sight. Now has become a significant part of our workflow, transforming how we approach coding and design challenges.

51%
ChatGPT
16%
Copilot
12%
Claude
12%
IntelliJ AI
9%
Gemini

Vlad – AI as a research buddy

AI has replaced Google Search in many cases. Large Language Models (LLMs) provide broader answers, even if you don’t know the exact question to ask. While LLMs are invaluable for finding information, they can occasionally produce suboptimal code examples. For beginners, this can create a false sense of competence, leading to frustration when solutions don’t work as expected.

Helen – UX/UI and AI

I use AI for translation, text creation, paraphrasing, and brainstorming ideas. GPT-based tools provide examples, practices, and inspiration for solving design problems. I also use AI for debugging and generating code snippets, making it easier to get started on complex ideas or tackle syntax issues.

Miša – Practical problem solving with AI

For app widgets or unfamiliar tasks, AI helps by providing a sequence of steps to follow. Trial and error is still involved, but it speeds up the process significantly.

Despite its benefits, Miša notes that AI works best as an assistant rather than a decision-maker. It’s akin to a junior developer with extensive theoretical knowledge but limited hands-on experience.

Conclusion – Always changing, always learning

The past few years have shown us that technology never stands still. New tools, frameworks, and approaches continually shape how we work.

If you are interested in trying out new technologies then join us at jobs@codeborne.com and get in on the fun

Our recent stories