The next Java isn’t

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com, or follow me on Twitter.

A year ago the hype surrounding Scala was red hot. Some programmers, like Colin Steele, didn’t like it, but many others argued that it was the next Java, Java 2.0. But now the backlash is setting in:

In two years we went from having Scala as a very strategic choice to have it simply as an interesting (and mostly enjoyable) technology that we use to develop some (and rather small) parts of our platform. I still think, as I always did, that Scala is wonderfully elegant and relatively simple language. For the first time someone has combined OOP and FP in a extremely practical general purpose programming language.

But our team’s enthusiasm significantly decreased over the last 12 months as it became obviously clear that Scala won’t be the eventual Java replacement for most of the enterprise Java development. Moreover, more and more people are starting to painfully realize that Scala won’t even make any significant dent on Java eco-system at all – remaining forever in 1-2% territory for very specialized projects where FP focus or DSL capabilities override any other requirements. With Java 8 coming up quickly, with Kotlin, Ceylon and Clojure nibbling on the edges (even if some of them don’t yet exist!), Groovy going strong – Scala simply doesn’t have much room to grow or maneuver.

Not being widely used means little interest for us, independent ISVs, to provide support and integration for it.

2011 was yet another clear indication that Scala eco-system is experience growth pains:

Typesafe perceived troubles and lack of direction
Ridicule about parallel collections in 2.9 (one of its major new features)
Public “I’m fed up” email leaks
SBT vs. Maven, Lift vs. Play, Scalaz vs. common sense…
Scrutiny of few larger projects exposing rather alarming ineptitude in: scala.io, scala.xml, scala.actor, parallel collections, scaladoc implementation
Glaring performance holes in the compiler known for years yet still ignored
Compilation speed, binary backward compatibility woes continued (year after year)
Utter lack of attention to API documentation – “read the source code instead” mantra
IDEs integration
Some of this can be, of course, explained by the fact that most of the Scala eco-system was originally developed by University postdocs and students that lack non-academia experience in building commercial software (of that size and magnitude). Be it as it may – most of us would still expect the better outcome… On the other hand Typesafe seems to be pushing the language development and maintenance onto the community again and that scares me (read above) – preferring rather to concentrate on the Stack.

And then – there is a community… Oh – how I wish sometimes that Scalaz would never exist (along with some of the idiot savants behind it)! This Scala-wannabe-Haskel library is probably single-handedly responsible for a big share of “Scala is too complex” syndrome that sealed the fate of Scala at least for now. Having almost zero engineering applicability in the real world – it somehow inexplicably defined the public’s perception on Scala’s usability. While being interesting academically (and written by very smart guys indeed) – I wished it would never exist. Really.

Post external references

  1. 1
    http://www.teamlalala.com/blog/2010/04/29/scala-earns-a-fail/
  2. 2
    http://gridgaintech.wordpress.com/2011/12/11/offbeat-scala-by-the-end-of-2011-no-drama-but-frustration-is-growing/
Source