Kotlin is a high-performance; static language developed by JetBrains, the company behind the famous integrated development environments (IDEs). Kotlin is designed to interoperate with Java. It leverages the Java Virtual Machine (JVM) environment and uses the Java library, tools, and methods and so on. However, many believe that Kotlin, as a language, offers more quality than Java and there are some good reasons. To start with, Kotlin is easier to learn than was Java. Kotlin avoids some of the serious issues Java has. The most attractive feature is the ability to prevent the dreaded Null Pointer Exceptions. Also, with Kotlin, you need to write lesser lines of code than you needed to do in Java and yet produce a quality output. Kotlin is good for developing Android apps. That said, Kotlin is still a work-in-progress offering and some software developers believe that at its present state, it could be used in small, may be non-live projects.
The idea behind Kotlin
JetBrains did not intend to do anything revolutionary with Kotlin. It wanted to provide a useful language that solves existing problems. Kotlin has the following objectives mainly:
- Provide an intuitive language that can infer from codes written by developers and do a lot of work on behalf of developers.
- Improve productivity by reducing the effort needed to write code.
- Prevent null pointer exceptions.
- Provide Android app development support.
- Provide quick code compilation.
- Reduce learning time for developers by providing documentation and support.
- Overcome the issues Java developers face with Java.
JetBrains, in its blog, states on the 1.0 beta release overview that it intends to provide something useful.
Features of Kotlin
The salient features of Kotlin are described below.
No more null pointer exceptions
This is probably the most important feature. The null pointer exception is one of the most dreaded, unsolved issues developers face. Kotlin’s type system does not compile code that assigns or returns null. See the below example.
val name: String = null // tries to assign null, won’t compile
stephen getName() : String = null // tries to return null, won’t compile
Since every method call on a nullable type can potentially cause a null pointer exception, the Kotlin compiler forces the developer to use the Elvis operator whenever the call result is assigned to a non-null type.
Kotlin compiler can infer or understand from the code written by a developer and can develop or write the remaining code unlike in Java. Java requires the developer to explicitly write everything which consumes a lot of time and effort. Kotlin saves effort and time and improves productivity. For example, Kotlin compiler can infer types in variable declarations as well as compiler-generated getters/setters/equals/hashCode. On the other hand, the Java compiler does not infer as much and requires the developer to explicitly write code.
Easy to learn and use for Java and Scala developers
Since Kotlin is nothing revolutionary, any software developer can learn and start to use it especially the Java and Scala developers. The main reason is Kotlin is dependent on Java in a lot of ways and extensively uses the Java library, for example. Also, Kotlin was inspired by Scala and according to many; it looks a lot like Scala. The code uses the JVM and the javac, the primary Java compiler. The learning curve for Java developers is not steep and they can leverage the Kotlin documentation and get started quickly with coding.
Good for Android
Kotlin offers backward compatibility for Java versions 6 and 7 which are used for Android app development. JetBrains has specific plans for making Kotlin an Android-friendly language. It states in its blog that over the next few releases, it is going to speed up development workflow, reduce the size of the runtime library and provide more tooling support. Kotlin will be introducing a feature known as incremental compilation in its Gradle build plug-in. This will enable Kotlin to compile and build only the changes in the code and not the whole code over. This is going to save a lot of time. Kotlin also plans to provide integration with the Android’s Jack and Jill toolchain.
Its evolving state notwithstanding, Kotlin already looks like a tool that is going to improve productivity significantly. Many developers are positive about Kotlin enabling them to achieve a breakthrough in their productivity. A discussion on Hacker News website which hosts a discussion on Kotlin reveals that Kotlin solves many Java pain points without really reinventing how coding should be done. What are the challenges ahead? To find huge acceptance, it needs to be able to impress firms like Google which is a huge Java user and has been working on other alternatives to Java. It will be interesting to watch how Kotlin goes about its plans and how it faces the challenges ahead.