For a new Android app, Kotlin is the default, because Google builds Android's tools Kotlin-first and Jetpack Compose is Kotlin-only. For JVM backends both languages are viable, and the deciding cost is usually the team you can hire and keep, not the language.
If you're weighing other stacks too, the series Hire developers by tech stack: rates, vetting and interview guides covers rates and vetting stack by stack.
The short answer: Kotlin or Java for your project?
New Android app: Kotlin. You'll want Compose, and Compose can't be written in Java.
Existing Java Android app: keep it running and write new code in Kotlin. The two live in one project, so there's no flag day.
Spring backend with a Java team: stay on Java unless someone on the team already wants Kotlin. Spring supports both, and retraining a team on your deadline costs more than any syntax saving (a judgment, not a sourced figure).
Greenfield JVM service: a closer call. Kotlin's null safety and coroutines are real advantages. Java's larger hiring pool is too.
Shared mobile logic across iOS and Android: Kotlin Multiplatform is the route.
Where each stands in October 2026
The Kotlin release page lists 2.4.20 as the latest, released on 7 September 2026 as a tooling release. 2.4.10 was a bug fix on 14 July, and 2.4.0, the language release, came on 3 June. Language releases (2.x.0) arrive every six months, with a tooling release about three months after each.
On the Java side, the JDK 27 announcement confirms general availability on 15 September 2026. It isn't an LTS release: Oracle updates it until March 2027, when JDK 28 arrives. The current LTS is Java 25, from 16 September 2025, which the JDK 25 page says will be a long-term support release from most vendors. Java 21 is the previous one.
That matters because plenty of comparisons still treat Java 21 as the current standard, and one still calls Kotlin 1.6.0 the latest. Check the date before you trust any version claim, including this one. For the Java version questions that come up when you screen candidates, see this guide to screening Java backend developers.
Kotlin vs Java for Android: what does "Kotlin-first" mean?
Google announced Kotlin-first at I/O 2019. Android's Kotlin-first page defines it plainly: Android tools and documentation are designed for Kotlin users, "while continuing to provide support" for Java. So Java isn't deprecated on Android. It's just no longer where the new work goes.
The same page has a support matrix. The platform SDK, Android Studio, API docs and AndroidX all support both languages. Jetpack Compose supports Kotlin only. If you want Compose, and for a new app you probably do, the language question is settled. A hands-on Compose Multiplatform walkthrough shows what that code looks like in practice.
Why Java's newer features reach servers first
Android's JDK page, updated on 1 October 2026, maps Java versions to the platform. Android 14 (API 34) has Java 17 core libraries. Android 12 and 13 have Java 11. For APIs above your minSdk, the build uses desugaring. And Android Gradle Plugin 8.x needs JDK 17 to run.
Our reading of that table is that new Java language features land on servers years before an Android app with a realistic minSdk can use them. That's an inference, not a quote from Google. It's also why Java 25 and 27 matter less to an Android team than to a backend team.
What Google reports about Kotlin in Android apps
These figures are Google's own, from the Kotlin-first page, so read them as vendor claims. Google says Android apps that contain Kotlin code are 20% less likely to crash, which is a statement about apps containing Kotlin, not a controlled comparison. It says over 70 of its apps are built using Kotlin, including Maps, Home, Play, Drive and Messages. It says 67% of professional developers who use Kotlin report higher productivity, a figure from a survey of Kotlin users, who already prefer it.
Google also describes a case study of its own Home app: after moving new features to Kotlin, the codebase was 33% smaller and null pointer crashes fell by 30%. One team's result, reported by the company that promotes the language.
Kotlin advantages over Java (and what Java still has)
Kotlin's own comparison with Java lists what Kotlin has that Java lacks: null safety in the type system, extension functions, data classes, coroutines, and default and named parameters. In our view, null safety does most of the work. A type either can be null or can't, and the compiler enforces it.
Java has things Kotlin doesn't: checked exceptions, primitive types, static members, the ternary operator and package-private visibility. Java has also been closing the gap. It has since added records, which covers part of what data classes do in Kotlin. Treat any advantage list older than a couple of years with suspicion, and remember this one is Kotlin's own page.
Kotlin vs Java for backend services
Spring's reference documentation says the framework has "first-class support for Kotlin", and the version it shows is Spring Framework 7.0.9. So choosing Kotlin on the server doesn't mean fighting your framework.
Concurrency is the real fork. Java's virtual threads became final in JDK 21 (the virtual threads proposal, JEP 444), so Java teams on 21 or later can write blocking-style code that scales. Kotlin teams have coroutines. Both work. Which you prefer depends on how your team already thinks about async code.
On speed, there's no sourced benchmark here, and we won't make one up. Both languages compile to JVM bytecode. Judge performance on your own workload.
Comparison table
| Criterion | Kotlin | Java |
|---|---|---|
| Latest release (Oct 2026) | 2.4.20 (7 Sep 2026) | 27 (15 Sep 2026), not LTS |
| Release cadence | Language release every six months | Feature release every six months |
| Current LTS | Not applicable | Java 25 |
| Android status | Kotlin-first | Supported |
| Jetpack Compose | Supported | Not supported |
| Null safety | In the type system | Not in the type system |
| Concurrency model | Coroutines | Virtual threads (final in JDK 21) |
| Spring support | First-class | Supported |
| Extensive work in past year, professional devs (Stack Overflow 2025) | 11.5% | 29.6% |
| Mixing in one codebase | Yes, with Java | Yes, with Kotlin |
The survey row comes from Stack Overflow's 2025 developer survey, and it measures self-reported extensive development work over the past year, not availability. The hiring section below covers what it can't tell you.
Migrating a Java codebase to Kotlin: what does it involve?
Android's guide to adding Kotlin, updated on 22 September 2026, describes an incremental path. You add Kotlin files alongside the Java ones in the same project. Android Studio can convert a file for you (Code > Convert Java File to Kotlin File), and afterwards you review the result, because the converter can over-use the non-null assertion operator (!!).
No hours, percentages or cost figures here. The sources used for this article don't give any, and anyone quoting one hasn't seen your codebase. The shape of the work is what's knowable: file by file, with both languages building together the whole time.
What it means for hiring
In the 2025 survey, 29.6% of professional developers reported extensive work in Java over the past year and 11.5% in Kotlin. That's a ratio of about 2.6 to 1, calculated from those two figures. Among all respondents the numbers were 29.4% and 10.8%.
Treat that as direction only. It's a self-selected survey. It measures use, not who's available for hire. It has no split by seniority or location. And Kotlin users aren't separated into Android and backend developers, so the Android-only pool could look quite different.
For an Android role, we'd require Kotlin and Compose, plus enough Java to read legacy modules. That's our judgment, not a sourced rule. A candidate who can't read Java will be stuck the first time they open an older module.
Kotlin beyond Android
Kotlin also runs on iOS through Kotlin Multiplatform, which can share business logic while keeping the UI native. If shared code is the reason you're looking at Kotlin, read about choosing between Kotlin Multiplatform and Flutter first.
Hiring Android engineers through HighCircl
HighCircl matches Android engineers with companies across seven European countries. A shortlist of three to five candidates arrives within 72 hours. Every engineer has passed four vetting stages run by senior engineers, from background verification through a take-home project to a live session on architectural reasoning, and roughly one applicant in ten clears them. The margin is capped at 20% and shown separately from what the engineer earns. If your roadmap is Android-led, hiring Android engineers through HighCircl gets you a vetted shortlist.
FAQ
Is Kotlin replacing Java?
On Android, Kotlin is where Google puts its new tooling and docs, and Compose is Kotlin-only. But Google says it continues to support Java, and Java itself ships a new feature release every six months, with Java 27 out in September 2026. Neither is going away.
Can Kotlin and Java live in the same project?
Yes. Android's documentation describes adding Kotlin files to an existing Java project and converting files one at a time, with both languages building together.
Is Kotlin faster than Java?
We found no sourced benchmark, so there's no number here. Both languages compile to JVM bytecode. Measure on your own workload before letting speed decide.
Should a backend team switch from Java to Kotlin?
Not for its own sake. Spring supports Kotlin first-class, so nothing blocks you, but a team learning a language while delivering is a cost, and Java's share in the survey is larger. Switch if people on the team want it and null safety or coroutines solve a problem you have.
Can I write Jetpack Compose in Java?
No. Android's support matrix marks Jetpack Compose as Kotlin only. If you want Compose, you need Kotlin.
