Kotlin new kid on the block

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.
  • The potential for full stack and native support.  Kotlin does not stop with Java.  It can compile to JavaScript and has plans for native compilation too.  It is possible the future will be able to code in Kotlin, whether building a native mobile app, an Enterprise micro-service architecture, or a React front-end.

Final thoughts…

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?

It remains to be seen how successful Kotlin is at doing the same for the JavaScript community.  At the time of writing support for Kotlin to JavaScript was less mature, and the JavaScript eco-system is harder to interoperate with.  However, there are a lot of moves in the JavaScript world to address type safety, and a lot of transpilers.  So I can see a day when the balance tips here also, and Kotlin becomes the choice for building large scale JavaScript or WebAssembly executables.

 

It's only fair to share...Tweet about this on TwitterShare on LinkedInEmail this to someone