Is Scala the Ultimate Object-Oriented Language?
I recently started developing the syntax for a model-based language I am working on and I found myself basically writing down the specification for the Scala language!
This prompted me to go back and visit the Scala site (http://www.scala-lang.org) which I hadn’t done in a while and see how things are going. I am very happy to report that the language specification has been stable for quite some time, and that the documentation is steadily improving. Furthermore Scala is now being used in several programming language courses (http://www.scala-lang.org/community/say.html#courses). However, what I am particularly pleased about is the library support of Actor based concurrency. Actor concurrency is the model used by the increasingly popular language Erlang.
So it turns out everything that I wanted and expected in a high-level language is already in Scala: object oriented programming support, lots of libraries, easy-to-use support for concurrency, easily extended, support for mixins, type-inference, familiar syntax, no superflous features, and deep support for functional programming. I have to say that above all what makes me happiest about Scala is not the inclusion of features but that the features supported is a consistent and coherent set that makes sense for software design.