What is Kotlin?
At JetBrains, we’ve been developing for the Java platform for a long time, and we know how good it is. On the other hand, we know that the Java programming language has certain limitations and problems that are either impossible or very hard to fix due to backward-compatibility issues. We know that Java is going to stand long, but we believe that the community can benefit from a new statically typed JVM-targeted language free of the legacy trouble and having the features so desperately wanted by the developers.
- to create a Java-compatible language,
- that compiles at least as fast as Java,
- make it safer than Java, i.e. statically check for common pitfalls such as null pointer dereference,
- make it more concise than Java by supporting variable type inference, higher-order functions (closures), extension functions, mixins and first-class delegation, etc;
- and, keeping the useful level of expressiveness (see above), make it way simpler than the most mature competitor – Scala.
Both the compiler and the IntelliJ IDEA plugin are open source under the Apache 2 license. We're happy to accept contributions.
We plan to provide two things:
1) An open source Eclipse plugin that will be initially contributed by JetBrains, and later we will gradually move it's support onto the community.
2) API exposed by the compiler, to make it easy to retrieve semantic information from within the plugin.
In any case, Eclipse support will be released later that IntelliJ support.
Kotlin infers type arguments when generic functions are called, as well as types of variables from their initializers. This makes the code more concise.
We believe that it makes the code more readable. Besides, it enables some nice syntactic features, for example, it's easy to leave type annotations out, and Scala has proven pretty well that this is not really a problem.
We are planning to make it extensible in a few ways: from inline functions to annotations, type loaders and language-quotations.
Yes. The compiler is developed as an IntelliJ IDEA plugin, and user-facing IDE features are there from the very beginning (we make good use of them while debugging and testing).
Join our Forum.