The idea for Kotlin was conceived at JetBrains in 2010. By that time, JetBrains was an established vendor of development tools for many languages, including Java, C#, JavaScript, Python, Ruby, and PHP. IntelliJ IDEA, the Java IDE that is our flagship product, also included plugins for Groovy and Scala.
The experience of building the tooling for such a diverse set of languages gave us a unique understanding of and perspective on the language design space as a whole. And yet the IntelliJ Platform-based IDEs, including IntelliJ IDEA, were still being developed in Java.
We were somewhat envious of our colleagues on the .NET team who were developing in C#, a modern, powerful, and rapidly evolving language. But we didn’t see any language we could use in place of Java. What were our requirements for such a language?
The first and most obvious requirement was static typing. We don’t know any other way to develop a multimillion-line codebase over many years without going crazy. Second, we needed full compatibility with the existing Java code. That codebase is a hugely valuable asset for JetBrains, and we couldn’t afford to lose it or devalue it through difficulties with interoperability. Third, we didn’t want to accept any compromises in terms of tooling quality. Developer productivity is the most important value to JetBrains, and great tooling is essential to achieving that. Finally, we needed a language that was easy to learn and reason about.