Kotlin JVM 1.0
Written by Kay Ewbank   
Friday, 19 February 2016

Jetbrains has released Kotlin 1.0, its open source general purpose programming language for JVM and Java. 

If you're wondering if the world needs yet another programming language, this one might have what it takes to be worth learning. Jetbrains is best known for its Java IDE IntelliJ, and the developers there seem to have put a lot of thought into what makes a language attractive.kotlinlogo

According to a blog post announcing the release, Kotlin has been developed to be:

"a pragmatic programming language for JVM and Android that combines OO and functional features and is focused on interoperability, safety, clarity and tooling support."

The pragmatism is perhaps the most important aspect of Kotlin; the developers wanted to make it a good tool, so the interoperability with existing code and infrastructure came top of the list. Andrey Breslav, lead language designer of Kotlin, says that:

"Kotlin would have been a whole lot easier to design and develop if not for the Java interop, Maven integration, 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 re-learn, re-invent, re-do from scratch, the more they can re-use, the better."

Kotlin can be used for server, desktop and mobile Android apps. It comes with its own standard library, and can interact with all Java libraries. The pragmatic approach meant the developers avoided inventing another packet manager and build system; as they point out, Maven and Gradle already exist with huge numbers of plugins. In contrast, the developers worked to make JDK-compatible collection interfaces to support the masses of Java code that work with JDK collections. Java 6 byte code support is also present to support the people who are still running Java 6.

 

kotlin

One area where the developers of Kotlin have moved away from current practice is that of null references. These can result in null reference exceptions, or in Java in NullPointerExceptions, NPEs.  

Kotlin’s type system is designed to eliminate NPEs, except if there's an explicit call to throw one; if external Java code has caused one; or if there's some data inconsistency with regard to initialization (an uninitialized this available in a constructor is used somewhere). 

Kotlin has apparently been production ready for some two years, and has been used internally at JetBrains for writing their own products, including IntelliJ IDEA, JetBrains Rider, and JetBrains Account & E-Shop among others. The delay in releasing version 1.0 was apparently because the designers were:

"validating our design decisions in practice".


Kotlin is open source under an Apache 2.0 licence and has over 100 contributors to date. JetBrains say it has over 20 people working on it full time and that it is committed to it for the long term.

There's an online mini-ide that you can try alongside a set of sample problems to illustrate the basics of the language.

kotlinlogo

More Information

JetBrains Blog - Kotlin 1.0 Released

Official Kotlin Website

Try Kotlin

 

Kotlin on Github

Related Articles

Project Rider, A Cross Platform C IDE

Project Kotlin Moves On

Kotlin Goes Open Source

Kotlin - another Java alternative?

To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin

Banner


Rust And C++ Should Be Friends?
20/11/2024

The Rust Foundation has just released a statement on Rust and C++ interoperability and Google is ponying up $1 to see that it gets done.



Apache Fury Adds Optimized Serializers For Scala
31/10/2024

Apache Fury has been updated to add GraalVM native images and with optimized serializers for Scala collection. The update also reduces Scala collection serialization cost via the use of  encoding [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 18 February 2016 )