Yeah, parts of Scala have always struck me as the most beautiful language ever, but if you dig a bit deeper, it turns into one of the most horrifying languages ever. I think the future of the JVM looks more like Kotlin than like Scale or Groovy.
// One of these doesn't compile
seq foreach println
seq.foreach{println}
seq.foreach(println)
seq.foreach{println(_)}
seq.foreach(println(_))
seq.foreach(x => println(x))
seq.foreach(x: Int => println(x))
seq foreach{x: Int => println(x)}
seq.foreach{x: Int => println(x)}
seq foreach{case x => println(x)}
seq.foreach{case x => println(x)}
seq foreach{case x: Int => println(x)}
seq.foreach{case x: Int => println(x)}
I think the future of the JVM looks more like Kotlin than like Scale or Groovy.
Seems like an odd thing to say because Kotlin looks so much like Groovy. I'm curious what you are thinking of that distinguishes it in terms of direction?
Comments
Yeah, parts of Scala have always struck me as the most beautiful language ever, but if you dig a bit deeper, it turns into one of the most horrifying languages ever. I think the future of the JVM looks more like Kotlin than like Scale or Groovy.
There's a lot of stuff which is fine about Scala, but I still like this presentation: https://nurkiewicz.github.io/talks/2014/scalar/#/
In particular, this slide is my favourite: https://nurkiewicz.github.io/talks/2014/scalar/#/22
Only one? If there's any justice in the world, it's the only one without any brackets. I fear it's one of the many without a dot, though.
This all depends which syntactic conventions you're used to.
"a + b" is more readable than "a.+(b)", and so that's what scala allows. I think it's a neat way of allowing operator overloading.
"iterable.foreach { ... }" is also readable for a callback.
FWIW, the one which doesn't compile is (apparently) "seq.foreach(x: Int => println(x))". https://scastie.scala-lang.org/krtG0VwgTmCNwIxATYFAbg
Seems like an odd thing to say because Kotlin looks so much like Groovy. I'm curious what you are thinking of that distinguishes it in terms of direction?