Kotlin vs Java: Will Kotlin Replace Java?

An article mained to describe all the main beauties of the two languages for Android mobile development - Kotlin and Java respectively.

The article dates back to the 10th of March, 2017, and at that time Kotlin has not yet become an official Google's language.

When you choose developers to work on your custom Android application, a certain technology they use is of essence for you. The two most commonly used languages for Google now are Java and Kotlin (although it still lacks official support from Google), so for you it may seem, at first, a matter of small importance what’s your team’s coding on. Further consideration though shows that programming language might also cut down some of your time and expenses.

Read also: google play rejection reasons

AN interesting fact: Kotlin was named after an island (Kotlin Island, located nearby the city of Saint-Petersburg); this relatively new programming language of Kotlin is gradually turning into a massive force with a huge potential for the future Android apps to base their development on.

Meet technically 6, but really 1 year old Kotlin.

Originally, in the year of 2011 as an unveiled version Kotlin first appeared as a new language for Java Virtual Machine from a team of Saint-Peterburg programmers called Jet Brains. The reason they decided to come up with a new “spinning wheel” for Android development is quite easy to understand; apparently, there are a few:

  • Java has been around for 22 years already (quite a term for a programming language), which is why there are loads of features that can not be implemented due to Java's massiveness and obsolescence.

  • Java requires long code combinations to be written

  • Code written on Java takes quite a while to compile

However, the Kotlin development team put it mildly and agreed that plenty of languages didn’t have the mix of features engineers worldwide were craving for, except for Scala; though, as Dmitry Jeremov, the technical lead of Jet Brains corporation pointed out, Scala’s compilation time is slow and insufficient for the speed contemporary IT services move with.
Finally, last year’s February was a special month for the whole JB corporation - as the first Kotlin 1.0 version has officially seen the world in a stable release.
Since that time, Jet Brains on their official blog advised us to stay tuned and promised the new 1.1 Kotlin update, focused on bugfixing and Java Script support to hit soon. For the time this article was published (the 10th of March, 2017), The 1.1 Kotlin version was released only a week ago, but the world is already talking about it. So if you make a Kotlin vs Java comparison, would there be significant differences?

Not a Wheel Re-invent.

When looking at Kotlin versus Java differences, there definitely appear some Kotlin over Java advantages that might have a desired effect for those seeking to develop an Android app.

Reasons to use Kotlin for Android

So, let’s start somewhere at the beginning.

Reasons to Use Kotlin:

1) Kotlin requires less code to write.

At least 20% less. As it was previously mentioned, 22-year old Java is a bit outdated already + Oracle created Java to be a backward compatible language, which basically means that every newly launched version has to support the features included in the previous one, and as a result, with every update it becomes harder to include some new features; consequently, the amount of code to write also increases.
On the contrary, Kotlin’s architecture was created from scratch, causing the absence of layer to layer architecture.

2) Less crushes occur on Kotlin.

Kotlin JVM has much fewer issues as the often called “one billion dollar mistake” - the issue of NullPointerExeption is preventable there. NullPointer is yet present in every programming language, but the ways of working with it may differ. For the record, in Java you need to manually check whether the link is null or not null. If null is missed - boom, crash, voila! In Kotlin’s favor, every object is automatically set to be Null in this language + there are automatized checkups for the NullPointer - to ensure code works properly without it.

3) Kotlin is a type-safety language.

Again, in Kotlin every class is a function, and vice versa; more to this, same as Swift for iOS, Kotlin for Android has Optional types, which help with all the safety checkups.

Read also: Advantages Of Using Siwft Over Objective-C

4) Kotlin saves you some of your precious time.

As it was already said, less code almost guarantees less bugs and, respectively, less time is tracked on the whole coding process. And quite often software development teams calculate the total costs of the project according to the amount of hours developers spend on coding.

Here are some of advantages of Kotlin over Java. Although Kotlin is not yet officially supported by Google and takes a few seconds more during the first code compilation, with all of these points covered, it becomes obvious that the programming language of Kotlin has lots of beauties, and taking into the account the speed it gathers momentum with, no doubts it is a wise idea to Kotlin-Switch.

Read about Differences Between Android and iOS Development

“What if I make a switch?”

The world we live in gets pretty unpredictable on many occasions, and in terms of mobile application development sometimes there is a need to change the team you have been working with. Let’s say you used to work with outsource team, but now there is a request for an in-house development for your project. How difficult would it be to make a "translation" from one language to another?
Back again, the answer really depends on the tech your previous engineers used. If we take a switch from Java to Kotlin as an example - then there undoubtedly is a solution. Jet Brains have created a Java-Kotlin converter which helps to resolve this issue; however, some errors yet occur during the conversion process, so it has to be monitored and some of the operations have to even be manually set.

On the down side, the conversion from Java to Kotlin would be yet more stagnant and painful, as not all the functions, methods and variables could be converted. Perhaps the quickest fix for the new team you cooperate with would be to continue writing on Java if possible.

Also, the possibility of conversion to another language would depend on the size of your project. There are, generally speaking, 3 types of projects: small, medium and large.

  • Small projects take around 160-200 hours, and if there is no complex architecture - than they can possibly be transferred to Kotlin;

  • Medium projects consist out of up to 5 month-length development and are pretty inconvenient to convert;

  • Large projects development starts from 5-month term and projects of this category are totally impossible to convert into another language;

Overall, the best option for a “switching” customer is always to start working with engineers who use the same tech, languages and frameworks the previous project-holders did. Anyhow, when the change is unavoidable, we would strongly suggest to choose “the newer lexicon”; for example, to choose Kotlin over Java.

A concise way to code for Android in a smarter way.

Kotlin as the Android language for future

Or at least so Kotlin’s slogan reads. Undoubtedly, Kotlin may have its pros and cons, but plenty of features became practicable once Kotlin came in. And with a freshly-released version of Kotlin 1.1, that now officially supports Java Script plenty of previously dream-like features could be implemented from now and on.

In Mind Studios we have also dabbled with Kotlin for Android development since the first stable version appeared on the scene. Mi Band Control (an activity tracker for Mi Band Wristband) is an application fully developed on Kotlin. This experience has proved Kotlin to be a smarter and more concise way of coding for Android by our developers also. So, choose wisely the language for your app, but remember to stay in the loop!

Written by Vsevolod Kaganovich and Elina Bessarabova.