Ten years ago, JetBrains announced a new statically typed programming language for Java Virtual Machine (JVM) called Kotlin. Since then, a lot has changed. Kotlin has evolved from a Java alternative to a whole ecosystem that allows writing code for different purposes, including server-side, mobile, web, data science, multi-platform projects, machine learning, etc.
“It is integrated into our everyday lives. Almost every internet user has come across Kotlin software. If you have an Android phone or tablet — about 80% of the apps you use were built with Kotlin, and its reach extends beyond this platform,” said the Kotlin team.
Sign up for your weekly dose of what's up in emerging technology.
Journey of Kotlin
Kotlin’s ten-year journey started with an idea to create a platform that would make development more fun. Begun as a startup project inside JetBrains, Kotlin has come a long way from where it all started.
The company said it relied on inputs from its community when making decisions about the future of the technology. “Over the last ten years, Kotlin has accumulated millions of changes based on feedback from thousands of Kotlin users around the world,” said the Kotlin team.
“It happened very incidentally. The story goes like our co-founder and CEO Sergey Dmitriev, asked a bunch of guys — ‘Guys, what do you think JetBrains can do in terms of big things that would benefit the community, and going to be noticeable,'” recalled Maxim Shafirov, CEO of JetBrains.
Dmitry Jemerov, one of the engineers at JetBrains, said that the ultimate thing a development company can do for the development community is a programming language. “I was thinking at the time that JetBrains was a company that was building tools for languages and technologies from other companies, languages, frameworks and so on. So I was thinking of possible ways to increase the influence of JetBrains in the community. So to say, like, how can we do something that is our own technology, and not just supporting other people’s technology,” said Jemerov.
“Immediately, everybody was laughing. Programming language, really?” said Jemerov. He said we were a small company back then, and we did execute a couple of successful projects like IntelliJ IDEA and ReSharper, but programming languages are in a different league altogether.
“However, the seed was there, and we started thinking — we have this deep understanding of many programming languages in their practical aspects. We have implemented support for dozens or maybe 20+ programming languages, and we know all of the drawbacks and good things in many languages so we can combine the things which are good and practical, and many people would use it,” said Jemerov. That was the start of project Kotlin, a statically typed programming language for JVM.
The Origin of Kotlin
“When I first heard that it was going to be a general-purpose language under JVM, I was like, there is no point in creating a new language. It is completely unreasonable. There were good languages out there at the moment. Scala was pretty big, and I liked it. It felt like all the problems that existed on JVM at the moment were more or less solved by Scala,” said Andrey Breslav, former project lead of the Kotlin Programming Language at JetBrains. “I was like, don’t do it. It is not a good idea. Just use Scala. You will be fine.”
Breslav said the conversation went on, and he then started to notice issues that were not solved yet. And, from JetBrains perspective, it was perfectly positioned to accurately launch a new language to attract enough attention, traction and users, etc. “This is still a crazy idea, but it makes sense. We have a shot at doing something really good,” said Breslav.
Initially, JetBrains had named the programming language ‘Jet.’ But, due to trademark issues, it had to come up with something else. “We were looking for another name and did not like anything, and it was quite difficult,” said Breslav.
Soon, Jemerov suggested ‘Kotlin,’ a name of an island outside of St. Petersburg, which seems to have been inspired by other programming languages like Java (coffee island) and Ceylon (tea island). “There was this progression of islands, and it was a nice idea to use a local name,” he added.
In 2011, JetBrains made the initial announcement at the JVM language summit on the Oracle campus in Santa Clara. Since then, Kotlin has been synonymous with the developers’ ecosystem and growing.
Over the last 12 months, Kotlin has been used by 4,800,000+ developers for server-side, mobile multi-platform, Android, and front-end development. In addition to this, there are about 194 Kotlin user groups worldwide, and 45 of the top-200 universities are teaching Kotlin.
“In the next ten years, we have a lot of work to do. First of all, we will need to establish Kotlin as a multi-platform language firmly, and I see us finishing the work that we started in multi-platform, both infrastructural and in stabilising the support for multiple different platforms,” said Roman Elizarov, project lead for the Kotlin Programming Language at JetBrains.
Further, Elizarov plans to build a Kotlin ecosystem that would consist of multi-platform Kotlin-first libraries on multiple platforms that provide a wide range of different abstractions and utilities to developers. He says they are building core foundational libraries for multi-platform and are working on tools to make it easier for their community to develop domain-specific things.
Besides multi-platform language, JetBrains is also working on structural data, where developers can start by defining things like collection literals and data in the source code quickly and then deconstruct this data later on.
Other works include:
- Immutability: Kotlin will make it possible to write safe code that does not suffer from sharing mutable data to other threads.
- Meta-programming: It looks to expand the power of Kotlin inline functions with constant evaluation and propagation and enable compiler plugins for advanced compile-time manipulation of the code.
- New compiler: It aims to lay the groundwork for the future evolution of the language without sacrificing performance.
- More static typing: Kotlin will make it easier for tools to help developers with their code.
Elizarov said Kotlin will not be just a programming language; it will be a multi-platform ecosystem of libraries and tools that help people write code in various domains, including data science, gaming, mobile applications, desktop, web — everything!
“That is how we are going to see Kotlin in the next ten years.”