Although it is the most widely used language for android development, Java is not always the best choice, it is very slow to modernize, error-prone and old, and that’s where Kotlin comes in as a worthy alternative.
OpenJDK developers are trying to close the gap using Java 8, but the problem is that android does not use all the features of Java 8; hence developers are stuck with Java 7 and 6.
Certainly, there are other languages that one could use on android, but Kotlin offers integration with Google’s primary IDE for Android and Android Studio.
The problem with Java
It is very hard for people to switch to a new language, especially if they have been using it for years and are very familiar with it but if you take a look at Kotlin and take notice of the larger picture, it is possible that you will change your mind.
Java is very old
Java might have been one of the most usable languages when it was at its prime, but today Java doesn’t even support try-with-resources, streams, and method references. Although there are third-party ways to backport some of these features using ThreeTenABP and Streams, it is too much work.
Java is very prone to errors.
NPE (NullPointerException), which is caused by how Java handles ‘null’ is one of the biggest errors and is one of the most common reasons for crashes in android apps.
Programmers also ignore the way Java executes anonymous inner classes and non-static inner classes. This makes the apps vulnerable to memory leaks.
Ceremony and Verbosity
Programmers prefer clean and clear code because it takes less time to write and less time to actually read, making it less vulnerable to bugs. One of the main problems with Java is that you have to write a lot of code to get even the minutest tasks done.
If there was a reduction in some of these processes, it would help improve the experience of the developers and their productivity.
Why Kotlin?
Since Java is not the only language that a developer can use to build android apps, the other most supported language is Kotlin, which was developed by JetBrains.
Kotlin prefers a more pragmatic approach by not including features such as a package manager or its own build system. This is because some open source tools such as Maven and Gradle already handle this very well.
Kotlin’s interoperability with Java
Since Kotlin and Java generate the same byte code, it is possible to call Java code from Kotlin and vice versa effortlessly without any fear that you are shipping anything different with Kotlin.
Less code meaning more happiness
You are going to write significantly less code with Kotlin than you are with Java meaning smaller file sizes.
No more NPEs
It is time-consuming to fix NPEs that pop up or guarding your code with null checks. Using Kotlin you do not need to worry about NPEs because you will be able to catch them while you are compiling instead of crushing apps when it’s running.