JetBrains today announced general availability of Kotlin 1.0, a multi-paradigm (OO+functional) JVM language specifically designed to improve Java developers' user experience.
Yes, the JVM just gained another general-availability language. Java isn't just alive and well; it's still giving birth to vibrant new languages that make the power of the JVM continually easier to harness.
And no, Kotlin isn't a new implementation of ancient (if awesome) language features that purify, simplify, or empower developers to create previously unimaginable program flows..that who knows how many applications are actually going to need.
On the contrary: this time the toolmaker is driving the language -- not the other way round. Kotlin is created by JetBrains, makers of IntelliJ IDEA (and much more), and maintained by >20 full-time employees. And in the real world, features don't make developers adopt a language. Libraries, existing code, tool availability, and overall developer experience do.
Even Kotlin's new features are driven by developer UX. Take the type system, for example -- particularly delightful for those of us who are trying to write Java applications that don't suffer fallout from the worst mistake in computer science. You guessed it: Kotlin's creators have "aimed at eliminating null references from code" altogether.
Abstracting from the details, the creation of Kotlin's type system must have included something like this: Kotlin Designer 1: "You know what's the worst?" Kotlin Designer 2: "Ugh, null pointer exceptions are the worst." Kotlin Designer 1: "Yeah, death to NPEs. So let's distinguish nullable from non-null references, have the compiler check for null property access (and choke if you try one), add a null coalescing operator, and if you really really want it still let you throw an NPE -- but only if you say so explicitly."
Another convincing bit of developer-love? Kotlin's collection interfaces are JDK compatible. As we'd say in Kotlin:
val cheers: MutableList<Int> = mutableListOf(1, 2, 3)
(*Hey semicolons are inferred too! My right fourth finger is celebrating that one.)
Of course, Kotlin is open-source (Apache 2.0 license), downloads are in the tens of thousands, Kotlin LOC on GitHub are blowing through an exponential roof, and other cool things you'd expect from a new JVM language GA. Oh, and Kotlin plays beautifully with Android, too (yes, it supports Java 6 bytecode).
And stay tuned for an exclusive interview with Andrey Breslav, Kotlin's project lead.