Things I like about Scala
I'm excited about Scala (see Scaling the Cliffs to Scala ), one of the new Object-Fuctional languages that have emerged recently. So, what excites me? Let's list a few cool features.
-
Everything is an object.
-
Scala functions are really and truly first-class objects.
-
Let's not forget that Scala gives us Closures!
-
Mixins really rock! They bridge the gap between multiply inheriting from interfaces and multiply inheriting from classes.
-
Traits are like Java interfaces, but with implementations (behavior). They provide a mixin composition mechanism I haven't had in other languages.
-
Scala pays lots of attention to properly using mutability and immutability. From having declarations of val vs. var to Value Objects and "side-effect free" functions, Scala provides the underlying support necessary to help us with multi-threading, multicore processing, and multi-processing.
-
Scala's implementation of concurrency and its Actor Framework make it one of the most interesting new languages around.
I would recommend a study of Scala just for these benefits alone. They're largely why I decided to use Scala for development of Chronoscope, the product on which I'm working at the moment.