Since about 10 months ago when I tried Kotlin for the first time I’ve wanted to use it 100% instead of Java. Unfortunately not everything is so simple
First issue is blogging. You can’t write posts in Kotlin, at least by the time of writing this post in 2017. It’s just arrogant towards people reading them. Trust me, I tried it in this post, it got even up to the point where I had to create a different branch on GitHub with Java source code for the sample app
You want people to learn as smallest amount of information at a time possible. Most of the people probably still don’t know Kotlin. It’s not that it’s hard, it’s just requires desire to learn it
And the seconds part is your full time job. Personal projects you can write in any language you want, but when it comes to job – you don’t have the full control. And it’s up to you explain the value Kotlin can bring
There’s many great features Kotlin has over Java. Most of them are for the developer’s enjoyment and they don’t actually bring value for the company, so why would they want to take the risk to switch to this language at all?
Here’s why – NPE, this error is pretty annoying and it’s just impossible to eliminate it in Java. With Kotlin – you can. And this is an actual value for the company, sell point of this language
Who wouldn’t want their app to be more stable and don’t crash. Yes there’s plenty of other errors that can crash your app, but NPE is one of the most common along with ClassCast and OutOfMemory
Some might argue that NPE is good and it points out to the absence of error handling. But somehow we’re doing fine without it on web, so why is Android any different?
As for other features that “make development faster” selling point – this is total BS. You know what makes development faster? Us knowing what we’re doing and not wasting hours on fixing some stupid bugs
Or even better – figure out how to speed up build times and not waste dozens of hours building apps
So even with such a great selling point like make app crash less, it’s still not that easy to convince the team that from now on Android app will be written in a different language
For non-programmers it’s those kind of questions I can think of: currently can developers deliver same quality as with Java and in the future when new team members come, will they be able to pick up the code base and be able to contribute quickly?
It all comes to trust, if you’ve contributed some value to the company, proved yourself as a decent developer who can make decisions for the whole system and a platform, then people will listen to you
Plus Google officially supporting Kotlin makes it easier now to convince
Luckily, if you have the trust – you can get what you want. Just like I did, now I can finally spend my full time writing Kotlin
If you wander what Kotlin even is – check this post. Tell me your experience with Kotlin if you use it and where