There was a time many years ago when mainstream programming language progression was a regular occurrence. I moved from Assembler to C to C++ and finally Java in the first 10 years of my career. However, Java has remained the top language of choice for nearly 20 years since. Is Kotlin the next true successor to Java?
I was a relatively early adopter of Java, seeing past the limited hype of ‘Applets’ at the time. Aside from flirting with some other languages for a while (Scala and Groovy the most) Java has remained the bread-and-butter language for an unusually long time. Java has seen off a lot of competition over the years and defied the cry of its demise. But while it’s not hard to find superior languages, they are often niche and cannot compete with the breadth of an incumbent Java. Java has remained successful because of the tooling, the backward compatibility, and the far reaching convenience of the JVM.
“if anyone can create a language that can really get it right, that can take the best from all the other languages, avoid the pitfalls, and disrupt Java’s crown; it’s JetBrains”
For a while now I’ve had Kotlin as ‘one to watch’. My thinking has been if anyone can create a language that can really get it right, that can take the best from all the other languages, avoid the pitfalls, and disrupt Java’s crown; it’s JetBrains. JetBrains are the creators of the hugely successful Intellij IDEA. They have spent the last few decades building the tooling for many languages and frameworks. How they do that with such quality I can only admire, but I’ve watched with interest the introduction of Kotlin.
Recently though the balance has tipped over. Here’s why it’s time to stop watching and start assessing…
- The announcement that Google will be supporting Kotlin as first class language for Android. This puts considerable weight behind the language and side-steps the legal issues Oracle is pursuing with Google.
- The fact that Spring is now supporting Kotlin as first class language. Another big player putting their backing behind the language with a strong presence in the Enterprise market.
- The fact you can access anything from Java with Kotlin. You don’t need to throw away your existing codebase, you can mix or take a more incremental and low risk approach to migrating away from Java and onto Kotlin.
- The fact JetBrains really have taken the best from Java, Scala, Groovy and avoided the annoyances of each. So far I’ve seen all the benefits of concise, extensible, static type safe code, without the issues associated with those other languages.
- The fact JetBrains are focused and motivated purely by the needs of the developer. Not a specific problem area of another language. Not a corporation with hardware and OS sales to limit or dilute the developer experience.
- The fact you have from day-1 excellent tooling. This is JetBrains. They eat their own dog food and language tooling is their very business.
Now is the time to start playing with Kotlin if you’re a Java developer. I would not be surprised if Kotlin erodes and disrupts the Java language community enough to dilute the developer pool and bring Java down from the top spot, with Kotlin itself reaching top 10 in the language index over the coming year or two.
Now is the time to start playing with Kotlin if you’re a Java developer.
It will also be interesting to see how Java (Oracle) responds. Given the new Java release cycle along with the major heavy lifting work of lambdas (Java8) and modules (Java9) now complete. Will we see more focus on Java’s creaking language syntax in an attempt to reduce the appeal of Kotlin and others?