3 ms·
To put it simple - Scala puts together the best parts of Standard ML (functional programming - so one could reason about code as a form of calculus, plus patter
by dschiptsov 11y ago
To put it simple - Scala puts together the best parts of Standard ML (functional programming - so one could reason about code as a form of calculus, plus pattern matching on type-constructors with destructuring, partial application, etc) Smalltalk (everything is an object and objects communicate via messages passing by calling methods - the original concept of "pure OO" by Alan Kay and the best part of Smalltalk implementation) plus foundation ideas from Erlang (an Actor and messaging DSL based on high-order procedures and some syntactic sugar). Together it is already worth switching, especially afrer realizing what a crap Java is compared to this conscise and well-researched mix of complementing each other features). Scala is also famous for its emphasis on immutable collections, which makes GC less painful.
Scala initially is a product of a single remarkably well-trained mind, instead of committee of mediocrity.
Clojure, BTW, was a solo remake of Scala's approach (Java interloop, emphasis on collections, immutability, etc) while starting from Common Lisp (strong, dynamic typing) instead of Standard ML (strong, static) as its basis.
Actually, the Scala course on Coursera is very good start.
- aij 11y ago> the best parts of Standard ML Hindley-Milner type inference? I really miss having proper type inference in Scala. I'll admit, the "we will infer the types as whatever javac would have said they should be from left to right" is a lot more effective than one would think, but still feels rather primitive.