It’s been some time in the making, but Kotlin M11, the latest milestone release for the JVM language which takes its name from the Russian island that creators Andrey Breslav and the Kotlin team call home, is now live.
This relative newcomer to the JVM was first conceived by IDE upstarts JetBrains back in 2010. Having a JetBrains foundation is a natural edge for Kotlin, meaning that it runs seamlessly on IntelliJ IDEA. As with many JVM pretenders to the Java-throne, the original directive was pretty specific: to create a Java-interoperable language, unburdened by Java’s legacy troubles, that brought the features “so desperately wanted by the developers.”
Although it’s frequently compared to Scala, as Breslav has stated, Kotlin is more oriented towards end users, and there’s a concentrated focus on keeping features lists sharp and concise.In a community blog post, Breslav writes that with M11 comes “long-awaited features”, including a “first glimpse of true reflection support for Kotlin.”
Significantly, there are some key breaking changes in M11, as well as deprecations of old methodologies – however there has been an effort to make the transition path as smooth as possible for users of this heavy industrial, statically-typed language. In case you’re wondering when the language will be “frozen,” Breslav comments that it’s likely at least a couple of milestone releases away yet.
As the progeny of the company that brought you Android Studio, in the past, Kotlin has been dubbed “the Swift for Android.” Thought we think some Groovy folk would dispute this, there’s certainly a lot of potential for some cool JetBrains interoperable tooling as Kotlin matures. The headline Android addition with M11 is a new multiple constructors feature – a promising tool for Android developers who need more than one constructor for subclassing standard view classes.
On this vein, there’s also been an extension fitted to the language that Breslav promises will make development in Kotlin a whole lot easier for Android devs. An answer to Java’s findViewById() alternative, the kotlin-android-extensions plugin in for the Kotlin compiler means users can access views in a type-safe fashion without the need for extra user code or runtime libraries.
Other notable changes to Kotlin include the addition of prefixes for initialiser blocks with the soft-keyword init (with the old syntax now deprecating), and the “rethought” of what used to be “class objects” into “companion objects.” Along with a rename, companion objects are now more uniform with normal objects than their predecessors, and it’s now possible to write extension functions for companion objects.
There’s also shiny new KDoc support – a language based on JavaDoc and Markdown to support inline documentation. According to Breslav, IntelliJ IDEA provides support for KDoc by means of “completion, validation and refactoring support.”
For a full report of everything new in the JVM youngling, check out the user docs and the spec document. And if you’re curious to learn more about the language, check out this video on getting started with Kotlin in just two minutes: