9 ms·
I think its recognised, even by people like Odersky, that the language has been significantly compromised by the decision to run on the JVM. It is an incredibl
by octo_t 13y ago
I think its recognised, even by people like Odersky, that the language has been significantly compromised by the decision to run on the JVM.
It is an incredibly well-designed language, but lots of that effort has gone into covering up some really nasty warts.
- Aqueous 13y agoHere i am thinking it's the best language I've ever written in :-) I guess that's not really incompatible with still being "not a well designed language." When we're comparing ourselves to platonic ideals I guess the real thing can only pale in comparison. I just don't perceive the compromises. For me, attaining a factor of 5 lines to 1 line code shrinkage translating from a legacy (though still imperative) codebase is amazing, and must point to an excellent language design. Of course I realize I could probably achieve the same thing with a number of other functional languages of which i have limited experience
- octo_t 13y agoI absolutely agree (although for smaller projects I enjoy Haskell more). Tony Morris (the person who started the conversation) is a pretty devoted Scala-er. But it is definitely recognised by Scala experts (especially people who are arms deep in the compiler) that the JVM is a very limiting factor in the design of the language.
- michaelochurch 13y agoScala is a great language to write in. It's also good because you can learn a lot about the JVM (that you wouldn't learn as easily in Clojure, because the JVM interop of Clojure is less mature and far less intuitive) but also about strong, static typing in a system almost as badass as Haskell's. On the other hand, reading Scala code written by mediocre developers is painful. That's probably true of any language, but in Scala bad code comes with (a) minimal support from the IDEs that make shitty code navigable, (b) a less mature reflection API, and (c) serious compile-speed pains at scale. If anything kills Scala, it will be the the Java-in-Scala crowd-- the ones who failed to learn what Scala was really about and what it had to offer, but used it because their bosses demanded it. Scala is well-designed-- extremely so, and almost no one here could have done better in that time-- in the context of its constraints (JVM) and purpose (a Haskell-like language on a VM with a top-down type system-- radically different from the bottom-up tying approach of traditional Hindley-Milner languages). Scala-bashing gets on my nerves for two reasons. First, if you understand the compromises that had to be made, it's hard to imagine it being done better. Second, you know what happens if Clojure and Scala developers beat each other up? Managers step in and make us write Java.
- twic 13y agoAnd not only is it 5 lines to 1 line, the remaining 1 line is basically just underscores!
- gruseom 13y agoI'd be interested to hear some examples of how the decision to run on the JVM has skewed the design of Scala. (Plus whether/how the same is true of Clojure.)
- guard-of-terra 13y agoThey would never get it out of the door if it wasn't based on the JVM. The reason is Haskell. JVM mandates certain imperative tools in the Scala language; if you subtract these, you end up with Haskell, and Haskell is big enough that you'll have hard time reinventing it.