The latest release of Scala focuses on stability, makes Scala faster and smaller as well as continuing to refine experimental language features.
Just in case you haven't encountered Scala before some background facts -
The name Scala comes from scalable and language indicating that it was designed to grow alongside the demands of its users.It is an statically typed, object-oriented, functional language, which runs on the JVM and has some interesting parallel processing constructs based on the actor model. An actor is essentially an object that runs concurrently and engages in message passing,
Scala was originated in 2001 by Martin Odersky at the École Polytechnique Fédérale de Lausanne. Prior to this Odersky had worked on Generic Java and javac, Sun's Java compiler, and had received his Ph.D. from ETH Zurich under the supervision of Niklaus Wirth, creator of the Pascal programming language.
Scala was released publicly in 2004 as an open sourceproject under the BSD licence and Versionb 2 was released in 2006. In January 2011 the Scala team was awarded a grant of 2.3 million euros over 5 years to implement parallel processing features which allowed the team to expand. Shortly afterwards Odersky founded Typesafe Inc., a company to support and promote Scala, with a further $3 million of Series A financing. At the same time Typesafe Stack, which integrates Scala, Akka middleware and developer tools to and accelerate software development, was launched. Meanwhile the Scala IDE, based on Eclipse, has continued to be developed and you can download the Scala IDE with the latest release built in on both Eclipse 3.7 and Eclipse 4.2 Juno.
According to the Typesafe blog, over 600 bugs were fixed in Scala 2.11 and as many of these fixes as possible were back ported to 2.10, even though the 2.10 series now goes into maintenance mode and is expected to concluded by the end of 2014 with version 2.10.5.
The announcement of its release states
The Scala 2.11 series targets Java 6, with (evolving) experimental support for Java 8. In 2.11, Java 8 support is mostly limited to reading Java 8 bytecode and parsing Java 8 source. We will be expanding Scala's (experimental) Java 8 support and interop throughout the 2.11 series.
The list of highlights of Scala 2.11 starts with the fact that it is smaller, with a fifth of the bytecode or the core Scala library moved to separate modules. Next it is faster, partly thanks to optimization of the batch compiler's performance will continue to be worked on this during the 2.11 cycle, partly through generating faster code using an experimental GenBCode back-end, by implementing branch elimination through constant analysis and an experimental way of compiling closures. Various operations on collections have also contributed to improved speed. Finally it is claimed to be stabler with the announcement stating:
Code that compiled on 2.10 without deprecation warnings should compile on 2.11 (we do not guarantee this for experimental APIs, such as reflection)
the experimental reflection API underwent breaking changes, which luckily have an easy fix that is source compatible with Scala 2.10
Many classes and methods in the collections library have been slated to become final in 2.12, to clarify which classes are not meant to be subclassed and to facilitate future maintenance and performance improvements.
In this 50-minute webinar Jason Zaugg of the Typesafe Scala team introduces the changes in this release, provides tips for upgrading and shares plans for the upcoming releases..
If you know a few computer languages and a little history you probably have some ideas about how they relate to one another. If informal ideas aren't quite what you want, how about a full taxonomy der [ ... ]