Every time I have used Kotlin instead of Java I enjoyed it and did not regret it. But somehow I still meet some reservations regarding Kotlin with both managers and sometimes developers.
This post will address your fears as a manager regarding the use of Kotlin and elaborate a bit on what Kotlin will gain you. There will be a similar post on this blog addressing developers that goes a bit more into technical details.
Where do I get developers for this? What am I going to do with my Java developers?
Even though it would be beneficial to hire specialised Kotlin developers, you could stick with your current Java/Groovy/Scala/*JVM developers. This is because they will already be able to understand most Kotlin code and Kotlin is quite easy for them to learn and to become productive with.
I would say about a day of explicitly learning Kotlin followed by one or two weeks of slightly reduced efficiency because of learning on the go. Also developers are usually interested in Kotlin and might know a bit already.
Last but not least it will make you more attractive as an employer.
I will have to rewrite everything in Kotlin.
Java/Groovy/Scala/*JVM as well as libraries and frameworks for those coexist and interact very well with Kotlin. You can just develop a few parts of your code (for example some test code) to try it out or develop new code in Kotlin while keeping your existing code.
This may just be a hype that leaves us with a deprecated code base.
First, Kotlin is now around since 2011 – this is way beyond a new hype. JetBrains, the makers of Kotlin, develop their own products in Kotlin. They have a lot of assets in Kotlin that they live off from. It is in their own interest to keep it going long term.
Besides Google has basically made Kotlin the standard language for developing Android Apps. While JetBrains does most of the development for Kotlin it is licensed under the Apache 2.0 license and there are many more contributors. Even if JetBrains jumps the ship we can keep it going.
Last but not least there is a plethora of big and small companies using and driving Kotlin – this includes Atlassian, Netflix, Uber, Trello and Corda (a banking business serving many big banks like Goldman Sachs or Deutsche Bank with their over 90% Kotlin code base).
I still think this is risky.
Kotlin is at the time of writing on the 33rd rank on the TIOBE index and on the 24th on the IEEE Spectrum Rating. This is nearly mainstream. For comparison every project using Angular also uses TypeScript which is on the 46th rank on the TIOBE index. Also the Thoughtworks Technology Radar has Kotlin on “adopt” since May 2018 – that is an explicit recommendation to use it.
Fear not and look at what Kotlin could gain you.
Kotlin code is more abstract than Java code. This is good because your developers will generally spend more time working on the actual business problems and less time on technical side problems. Developing in Kotlin is more efficient.
Kotlin tends to be much more readable and understandable than Java. This means it is easier to modify and to extend code while at the same time lowering the risk of bugs.
Kotlin eliminates the bane of Java software: The feared NullPointerException. Kotlin handles this null-problem at compile time. This means there are no exceptions in a running system. (If you do not cheat, of course…) NullPointerExceptions make up about 70% of all errors in production according to this source. That means about 70% of all production errors are eliminated by using Kotlin.
Because of better read- and understandability as well as removing the null-problem it becomes easier to bring new developers into the project.
Do not fear Kotlin! There will be many worthy gains. I definitely recommend Kotlin over Java.