Kotlin, JetBrains' statically typed language for the JVM, has reached the 1.0 release candidate stage.
Also working with the Android mobile platform and browsers, Kotlin reduces the amount of boilerplate coding, avoids error classes like null pointers, and is completely interoperable with Java and JVM frameworks and libraries.
Kotlin has seen a lot of changes since the debut of Beta 4, and the release candidate requires all code to be recompiled. "We have fixed a number of annoying bugs connected with use-site variance - type projections," said Andrey Breslav, Kotlin lead language designer at JetBrains, in a blog post on Thursday. "As a result, the compiler may find some previously missed bugs in your code." The final release of Kotlin 1.0 is "approaching," he said, and the release candidate is accessible at the Kotlin website.
With the release candidate, previously deprecated language constructs are now errors instead of warnings, and deprecated declarations that had been generated in byte code have been removed. For Java interoperability, improvements were made to synthesized properties derived from Java get/set pairs. These declarations are now resolved on par with members, and support was added for Java setters that return values, Breslav said.
In the standard library, library code has been rearranged into more granular packages, and some functions are now inline. Private top-level Kotlin classes are compiled to package-private Java classes, and members of private classes cannot be accessed from non-private inline functions. The release candidate also enables Android Extensions in the Gradle build tool in a more idiomatic way.
Kotlin works with JetBrains' IntelliJ Idea IDE. There also is a preview version available of a Kotlin plug-in for the Eclipse Luna IDE.