Scala 2.10.0 Milestone 3 lands
The latest milestone for the JVM multi-paradigm language, Scala has emerged, gifting avid fans a glimpse into some of the new tidbits for the language expected to arrive imminently.
Calling them tidbits though is perhaps understating the release. Big plans have been afoot for the Typesafe team for Scala 2.10.0, after Scala 2.9, which made progress on IDEs and parallel libraries. Milestone 3 shows how much progress has been made in a short period of time.
A number of features have been targeted within the Scala Improvement Process such as several modularising features in SIP 18, some of which have caused contention within the community. The inclusion of features flags was chastised by some - so much so that SIP 16 for Macros was postponed and made an experimental feature. Type Dynamic stayed though (SIP 17) providing further methods to escape the 'straitjacket of the type system', as creator Martin Odersky puts it.
Existing features under the control of the flag system include postfixops, reflective calls, implicit conversions, higher kinds and existentials. Within SIP 18, Odersky notes:
The feature flags in language control certain language features that are typically very powerful but that can have hidden dangers or future compatibility implications. It’s intended generalize the scheme to other classes of features as well, but those classes should then not go into the language object itself but into some other object.
Other areas targeted for renovation include Futures and Promises (SIP 14), Implicit Classes (SIP 13) and finally String interpolation (SIP 11). Be sure to check out all the relevant Google documents to stay in the loop over Scala changes and to look at them in meticulous detail. The Scala community is very receptive to ideas, we've noticed in the past, and has altered plans dependent on user feedback. It's a difficult balancing act trying to generate newcomers to the language whilst appeasing seasoned veterans, but Typesafe have done a fine job with this.
Away from the SIP, there's a significantly faster optimiser, improvements to RedBlack tree, some progress made towards reification and it should now be possible to implement a combiner using a concurrent (thread-safe) collection. Check out the full release notes for all the issues resolved and changes made.