Richard Searle


The future and promise of Scala is it's killer app

04 Apr 2012

Essentially every framework and library for Scala is based on or provides extensive support for asynchronous processing. The title is thus something of a pun, referencing the future and promise functionality that form the the basis of such processing. NIO was introduced back in Java 1.4, but has remained a niche technology. Even the introduction of netty and grizzly did not bring it into the mainstream. This progression essentially started with Tuxedo and CICS, very complex and expensive products. JEE containers, ESBs and other variants on the theme reduced the cost and complexity to some extent. It is perhaps hard to remember that Spring first came to life as a way of dealing with the complexity of J2EE. Scala has now reduced this complexity to a library, largely seamlessly integrated into the language. What was previously a complex and specialized middleware project is now something that "mere" application developers incorporate as a matter of course. The provision of flags in spec2 and sbt to turn off concurrent processing is an indication of the ubiquity of concurrency in the Scala ecosystem. These facilities are arriving just in the nick of time to allow effective utilization of multicore processors.