BGAD20_1.1: Java vs Kotlin
Updated: May 17, 2020
First subchapter of the Beginner's guide to Android Development in 2020!
Let me preface this article by saying that this is going to be a really short one. Not because of a personal bias per se, but this topic has been discussed tackled ad nauseam and the conclusions are pretty much always the same.
We're also going to disregard the existence of all other supported language like Scala, C++, ... as we want to keep it simple for now.
Uneven Playing Field
One thing I do miss in a lot of those discussions, is the explicit mentioning of the handicap that Java has been handed in the Android ecosystem. Whilst Java is actually maturing a lot faster than most people realize (Java 14 is out, 15 pending Sep 2020), most Android developers believe that the latest supported version (Java 8) in Android is the latest & greatest the language has to offer.
Technically, as we speak Android doesn't even fully support Java 8 yet but only a subset of it. Kotlin on the other hand, pretty much enjoys the cutting-edge language support in Android so it has an obvious advantage as opposed to its counterpart.
Making The Choice
Do I need to learn Kotlin to become an Android developer?
- No, but yes.
No, because it's perfectly possible to write good Android apps without Kotlin (we've been doing it for years!). But yes, considering I truly believe it's a good investment in terms of your efficiency, developer maturity and career perspective.
It doesn't take a long time to learn Kotlin, and considering the Android team has already made it their reference language instead of Java, the necessity it pretty big. Just keep in mind that Kotlin is not perfect and there are definitely things you'll need to get used to and won't like (in the beginning).
Put it on your TODO list!
And if you don't have a TODO list yet, write your own version in Kotlin! (But first read up on the other concepts)
Good starting point: https://play.kotlinlang.org/koans/overview
Let's move on to BGAD20_1.2
Additional Resources & remarks
Should you still need some more convincing, here's a short list of articles on the topic worth reading/watching:
Do I need to learn Java next to Kotlin?
- No, but yes,
It's a lot less "important" to know Java nowadays, but considering a huge amount of references and legacy is still written in Java (and will likely remain in Java), it definitely wouldn't hurt to be able to read that code as well.