Despite the undisputable reputation of Java as a programming language, Android was long in need for a modern language. Kotlin filled that gap ever since it was announced as the official language for Android last year.
So yes, Kotlin is a great language. It is robust, statically typed and much less verbose than Java. But does that automatically make it the first choice for Android development? What about the fact that Java has been around for about 20 years now, is the language Android itself is built on and has been hugely revered among Android developers for a really long time now?
So definitely, Java has its place too, that is hard to compete with. So which language should you choose to learn?Jesica Thornsby of Tutsplus has some food for thought on the Kotlin vs. Java debate right here
The answer depends, really. In the later part of this article, I will discuss the pros and cons of each language in detail, so you can decide for yourself which language you want to learn. But for now, to make the long story short, I’d like to say this – anyone working with Android must have a working knowledge of Java, even if you wish to specialize in Kotlin or any other language later. So if you are already a java programmer who just now wants to start developing Android apps, you can start with Kotlin. But if you are an absolute beginner getting your feet wet in the world of programming, begin with Java. Java is the bedrock of Android development and hence, helps you learn the right etiquette and get your basics right.
Now, let’s talk about both Java and Kotlin in detail, to see which one catches your fancy:
The Case for Java
Java is an object-oriented programming language developed by Sun Microsystems, which is now owned by Oracle. Being such an old language, Java does a whole lot more than just develop Android apps. So if you know your Java, you have a lot more job opportunities. You may not want to develop only Android apps all the time. Java lets you spread your wings wider. But if it’s specifically about Android app development that you want to talk about, let us discuss the pros and cons of Java.
Pros of Java
Easy to learn and understand.
Works well for native as well as cross-platform apps.
Since Android itself is built on Java, there are plenty of Java libraries to your aid. Also, Java has a wide open-source ecosystem.
Java apps are lighter and more compact, even when compared to Kotlin apps, resulting in a faster app experience.
Java yields a faster build process too, letting you code more in less time.
Thanks to the accelerated assembly with Gradle, assembling large projects becomes easier in Java.
Cons of Java
Java is a type-heavy language, which means you write a lot more code, increasing the chances of errors and bugs.
Java experiences some problems with Android API design due to inherent limitations.
Java requires more memory compared to other languages and hence tends to be slower
Pros of Kotlin
Kotlin is definitely faster to write and thus, much loved by developers. If it takes 50 lines of code in Java, it only takes 1-2 lines in Kotlin. This also means there are much less errors and bugs.
Kotlin aids in the building of clean APIs
Thanks to Java bytecode, you can use Java libraries and frameworks in Kotlin, making the transition from Java to Kotlin a seamless one.
Kotlin has the much needed null in its type system, something that was missing in java. Android uses null to represent the absence of a value and Kotlin lets you use null, greatly easing that pain point.
The Anko Library available for Kotlin is of great help for developers and there’s a very active and wide collection of projects on Github.
Cons of Kotlin
There is definitely a steep learning curve with Kotlin. Its highly concise syntax, while a great advantage, does require some learning upfront.
Kotlin shows a slower compilation speed than Java in most cases, even though it does beat Java in a few instances.
The Kotlin community is still young and the learning resources are limited, so finding answers to problems can be a little difficult. However, with its growing popularity, the resources and community will expand in time.
Since Kotlin is still new, finding experienced developers who can act as mentors for your team can be a little difficult. Everyone out there is still just learning and experiencing it.
Some features of Android Studio like auto-complete and compilation tend to run slower in Kotlin in comparison to Java.
So Java or Kotlin
In all fairness, chances are that you have people on your team who are already familiar with Java. Switching the entire team to Kotlin at a time can be a bit of a shock, so it is important to do this transition slowly, one person at a time. Having said that, Kotlin is the new official language and owing to its modern nature, it will become widely adopted in the future, so learning it and starting development with it right now would be a good idea. Though Java will continue to be a popular language for a long time and isn’t likely to be entirely replaced. So take your time and make the switch gently.
At the end of the day, it’s all about what you feel comfortable with. Like I said in the beginning, to be a true blood Androidian, you will need to have a working language of Java. But if you already do have that, Kotlin is the language of the future, so you might as well spend some time getting better at it.