Hacker News new | ask | show | jobs
by MichaelGG 4084 days ago
I don't hate it. Scala looks cool and I might use it if I had to use the JVM.

What turns be off from looking into it much:

Verbosity. It seems that it can't infer types in as many places as an ML. I prefer rather succinct code. I understand Scala has a powerful type system and it isn't always possible, but... ugh.

OO. Scala seems to want to really embrace Java's OO model fully, and that's a bit ugly. It's probably a good practical decision but feels like a turn off. Again, I haven't used Scala, this is just an impression I have.

2 comments

> Verbosity. It seems that it can't infer types in as many places as an ML. I prefer rather succinct code. I understand Scala has a powerful type system and it isn't always possible, but... ugh.

I think the problem is that Hindley-Milner type inference doesn't play with OO type hierarchies, and so Java interop (which is a key motivating purpose of Scala) means worse inference than ML-family langs for Scala. Its not really that its a powerful type system that is the issue (Haskell has a more powerful type system, but better inference.)

> OO. Scala seems to want to really embrace Java's OO model fully, and that's a bit ugly.

I think "embrace" is a bit strong, but it wants to support it fully, because its a key part of the interop story.

You really want a lot of type annotation anyway. They make error messages a lot more informative.

Scala is, by definition, a superset of Java. It's not ideal, but there aren't really any good alternatives.