Edit Page

Comparison to Scala

The two main design goals for Kotlin are:

  • Make compilation at least as fast as Java
  • Keep useful level of expressiveness while maintaining the language simple as possible

Taking this into account, if you are happy with Scala, you probably 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

Things that may be added to Kotlin later:

  • Structural types
  • Value types
  • Yield operator
  • Actors
  • Parallel collections

What Kotlin has that Scala does not