Kotlin ... the better Java?

2018-08-11 Software-Engineering Functional-Programming Kotlin

Everybody is talking about Kotlin. Me too!!!

Obviously the question is: Is Kotlin the next better thing?

Is Kotlin going to replace Java? Is Kotlin going to replace Scala? Is Kotlin the next better language that will make Software Engineers (much) more productive?

To find out I ported my Scala Advent of Code solutions to Kotlin.

My main take aways are …

  • if you know Java, learning Kotlin will be easier and faster than learning Scala
  • Kotlin is without a doubt “the better Java”
    • it compiles fast
    • it runs fast
    • it has very good tooling/IDE support (namely (obviously) the support in Intellij is first-class)
    • it runs on Android
    • hell … it even runs on Raspberry Pi
    • with Arrows it has a very nice (pure) functional programming library
  • if you know Scala, learning Kotlin will be even easier, but you will also feel that you are not gaining anything or even that you are loosing some capabilities that are valuable

Sooooo … my exec summary is …

Kotlin is the better Java. Every Java programmer out there should make an effort to learn it, but for me it is not the better Scala. If Kotlin will replace Scala, it will replace it because it is easier to learn (and use), not necessarily because Kotlin is the better language. The value of a language can be measured in the small (short-term; initial adoption) or the large (long-term; owning it and all of the code that gets written in it). Kotlin is off to a good start, but if owning a large Kotlin code base will be less expensive than owning a large Scala code base remains to be seen.