Scala is getting big
In the nearly two years since
I first mentioned Martin Odersky's new
Programming Language Scala, the language has
grown quite a bit. At that time, it did already
have the "case classes" that I thought (and still think)
are one of the main keys to its nice integration of
Functional and Object-Oriented paradigms.
But they have recently added
- a very cool implementation of generic types,
whose parameters can be constrained with "upper"
and "lower" type bounds and with variance annotations
- traits and mixin-style composition;
- a few additions to make it a bit easier to
work with XML-like data, including Xen-like postfix
operators "?", "+", and "*" (I think),
a LISP-like "symbol" syntax,
and regular expression patterns;
- and a bunch more.
When I first read the documentation as it existed in 2002,
I wondered where the support was for their claim that Scala
was designed "to support Web services". Now we see several
features that support that claim.
It does seem like a heck of a lot of features, though.
I still think Scala would be a great candidate for a
Language of the Year to learn.
Maybe it should be 2004's LotY — no one on the
pragprog list has even whispered anything about choosing
one yet. I guess I'll have to.