Just when it seemed like developers already had a plethora of language options on the Java Virtual Machine, JetBrains with Project Kotlin is readying a general-purpose statically typed language for the JVM that is geared to performance-critical applications. Kotlin was revealed last month at the JVM Language Summit in Silicon Valley, and JetBrains is seeking feedback on it, with documentation accessible at the Kotlin website.
InfoWorld Editor at Large Paul Krill recently interviewed Dmitry Jemerov, JetBrains development lead, to discuss Kotlin and why the company is working on it. Although he is not personally involved in design of the language, Jemerov is involved in discussions on the language.
InfoWorld: Why is JetBrains developing another language for the Java Virtual Machine?
Jemerov: We want a language set we can use ourselves to develop our IntelliJ Idea Java IDE, and when we started, there was no real option because we need a statically typed language and we need a language that we can understand and has good compilation performance and isn't full of surprises that developers run into if we switch to this language. Essentially, the only feasible option was Scala, and it didn't really fit our other criteria. We will develop the tooling for the language along with the language itself, and we expect it would allow us to sell essentially more licenses for IntelliJ Idea.
InfoWorld: How difficult will it be to learn Kotlin?
Jemerov: We expect that it will be about as hard to learn as Java.
InfoWorld: So what niche is filled by Kotlin, besides helping you work with IntelliJ?
Jemerov: We don't target any specific niche, so essentially everybody who is earning their money writing Java code, they would be able to switch to Kotlin. That's our goal. We don't target any specific kind of applications like that.
Jemerov: Both Groovy and JRuby are dynamically typed languages, and for tasks that are a good fit for dynamic languages, you can use Groovy or JRuby and be very productive. If you are developing, for example, a small or medium-scale Web application, then probably JRuby on Rails or Groovy with Grails is one of the most productive options that you can have. But if you are developing something large or more complicated, more performance-critical, perhaps a high-frequency trading application, then it really helps to have a statically typed language such as Kotlin.
InfoWorld: Why is Kotlin more productive than, say, Java or Scala or some of the other languages out there on the JVM?
Jemerov: Compared to Java, essentially Kotlin is more expressive. It allows you to achieve your task without writing as much boilerplate. It's not more productive than Scala. We think it will be about the same level of expression and can particularly be compared to Scala, but at the same time, we expect it will be easier to learn and have fewer problems that people would run into.
InfoWorld: Does the world really need another JVM language?
Jemerov: We think it does, because there is a huge amount of people writing Java code, and if everyone had already switched to some other language, then of course there would be no need for Kotlin. But right now we see that the niche is not filled, so there is still opportunity for a next-generation, general-purpose programing language for the JVM.
InfoWorld: What's the timeline for Kotlin? When will you have some deliverables?
Jemerov: Right now, our plan is to release an initial preview version of the compiler by the end of this year. We are evolving the design of the language based on the feedback that we have received.
This article, "Kotlin project adds another language option to JVM," was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.
Read more about application development in InfoWorld's Application Development Channel.
Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.