a personal site about open source, music, politics, fitness, firearms, self-defense, and ...

On Kotlin

Posted on 2018, May 29
2 mins read

Oh Joy! Another JVM Language

When you manage large projects with a lot of developers, one of the considerations when picking technologies is how well your least-skilled developers will be able
to master them. That’s right, I said “least-skilled”. Therefore when the whole polyglot thing became fashionable and a new JVM language was being created every other week,
I had to weigh each request to try a new language against how badly it would be put to use. And should I have to replace people!! It’s already hard enough trying to hire
competent Java developers… assembling an army of Clojure/Scala/whatever devs would be impossible.

So when Kotlin came about, I didn’t even bother to look into it as I had no need for another language in my current technology stack.

But times are a changin’.

How Do You Make a Kotlin Dev? Hire a Java Programmer

A few years ago I watched a Silicon Valley VC give a talk on a startup he was guiding, and they had a challenge of finding Go programmers at a time when Go programmers
were few and far between. According to him, learning Go was fairly natural for seasoned Java developers. I found that especially interesting given that the only thing
the two languages seem to have in common is a love of curly braces.

But I couldn’t fault his basic premise: find something that Java developers can readily learn because there are a lot of Java developers out there.

And the same holds true if you have an existing bank of Java developers. If you want to transition them to a new stack or new way, find something they can easily learn.

Oh Joy! Functional Java

Perhaps the big reason for being excited about Kotlin isn’t necessarily the language itself but rather a focus on functional programming for which the industry is now
moving toward. And while Java has functional features, they are far from a joy to use. So Kotlin, having less syntactic ceremony, makes functional programming on the
JVM easier while still remaining very commpatible with existing Java code.