Edit Page

Comparison to Scala

The main goal of the Kotlin team is to create a pragmatic and productive programming language, rather than to advance the state of the art in programming language research. Taking this into account, if you are happy with Scala, you most likely do not need Kotlin.

What Scala has that Kotlin does not

  • Implicit conversions, parameters, etc
    • In Scala, sometimes it’s very hard to tell what’s happening in your code without using a debugger, because too many implicits get into the picture
    • To enrich your types with functions in Kotlin use Extension functions.
  • Overridable type members
  • Path-dependent types
  • Macros
  • Existential types
  • Complicated logic for initialization of traits
  • Custom symbolic operations
  • Built-in XML
  • Structural types
  • Value types
  • Yield operator
  • Actors
    • Kotlin supports Quasar, a third-party framework for actor support on the JVM
  • Parallel collections
    • Kotlin supports Java 8 streams, which provide similar functionality

What Kotlin has that Scala does not