experience creating development tools for different languages, and hoping to provide a language which is productive enough for today’s environment and at the same time simple enough for every programmer to learn. One thing to note: since we’re a development tools company, we’re building firstclass IDE support for Kotlin in parallel with the language itself. ―― Hello World - The JetBrains Blog 7
we’ve developed support for several JVM-targeted programming languages, we are still writing all of our IntelliJ-based IDEs almost entirely in Java. The IntelliJ build system is based on Groovy and Gant, some Groovy is also used for tests, there is some JRuby code in RubyMine, and that’s it. We want to become more productive by switching to a more expressive language. At the same time, we cannot accept compromises in terms of either Java interoperability (the new language is going to be introduced gradually, and needs to interoperate smoothly with the existing code base) or compilation speed (our code base takes long enough to compile with javac, and we cannot afford making it any slower). ―― Why JetBrains needs Kotlin - The JetBrains Blog 8
existing JVM languages, and none of them meet our needs. Scala has the right features, but its most obvious deficiency is very slow compilation,” said Dmitry Jemerov, JetBrains development lead, on Friday. JetBrains wants the object-oriented Kotlin language to be safer than Java, statically checking for pitfalls such as null pointer dereference, and more concise than Java. Another goal is to make it simpler than its “most mature competitor,” Scala. ―― JetBrains readies JVM language Kotlin - InfoWorld 9
to design and develop if not for the Java interop, Maven integration, and Android compatibility! It would definitely be more elegant in many ways. But elegance, though highly appreciated, is not the primary goal here – the primary goal is being useful. And the less our users have to relearn, reinvent, redo from scratch, and the more they can reuse, the better. ―― Kotlin 1.0 Released: Pragmatic Language for the JVM and Android - The JetBrains Blog 2010年台前半のAndroid APIはJava 6,7相当。Lambdaもdefaultもない。 KotlinではJava 6バイトコードのままそれらを言語側で埋めた。 && 1.0.2でメソッド数が64Kを超えないよう削減も行われた。 10
common language for all platforms while enabling creation of common libraries through seamless interoperability with platform code. ―― Kotlin/Native Tech Preview: Kotlin without a VM - The JetBrains Blog allows developers to share code across platforms while retaining the benefits of native programming ―― Kotlin Multiplatform Is Stable and Production-Ready - The JetBrains Blog 18