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.