Developers looking to use the new statically typed language will find it similar to learning Java, says JetBrains. 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.InfoWorld: Why should I use Kotlin over, say, Groovy or JRuby? 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. Related content feature Python threading and subprocesses explained Python lets you parallelize workloads using threads, subprocesses, or both. Here's what you need to know about Python's thread and process pools and Python threads after Python 3.13. By Serdar Yegulalp Oct 30, 2024 9 mins Concurrency Python Programming Languages feature Get started with the free-threaded build of Python 3.13 Want to learn the ropes of the new "no-GIL" build and true parallelism in Python? Here's where to start. By Serdar Yegulalp Oct 16, 2024 6 mins Concurrency Python Programming Languages how-to Thread behavior in the JVM The JVM does what it wants to do, so how can you predict the order of thread execution? By Rafael del Nero Jun 27, 2024 11 mins Core Java Concurrency Java how-to Intro to virtual threads: A new approach to Java concurrency Virtual threads take the responsibility for allocating system resources out of your application code and into the JVM. Here's a first look at virtual threads in Java 21. By Matthew Tyson Nov 08, 2023 8 mins Concurrency Java Programming Languages Resources Videos