Thank you for your comment!

Let me answer from the end. I think you are definitely right that Kotlin might be a great first step from Java to Scala. Would that make Kotlin a gateway drug to Scala? ;)

But, more seriously, I think that knowing Java you can pickup Kotlin so quickly just because there’s few things substantialy new in the language. It’s just better syntax (with some exceptions, e.g. coroutines).

So yes, coding in Kotlin will be more pleasant than in Java. But I suspect that the overall style of programming remains the same. However, I haven’t done production coding in Kotlin: so I might be wrong.

On the other hand, yes — Scala has a much steeper learning curve. But that’s because there are things to learn! There’s a number of new techniques of abstraction which simply aren’t possible (or are very cumbersome) in Java.

Regarding your three remarks from the beginning:

  1. Yes, it’s possible to do immutable programming in Kotlin, as it is in Java, but as you write — with discipline. But the ecosystem is working against you: everything library in Java uses the mutable collections from stdlib, while everything in Scala uses the immutable collections from Scala’s stdlib. That’s a big difference.

--

--

Software engineer, Functional Programming and Scala enthusiast, SoftwareMill co-founder

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adam Warski

Adam Warski

Software engineer, Functional Programming and Scala enthusiast, SoftwareMill co-founder