Offbeat: Scala by the end of 2011 – No Drama but Frustration is Growing

Scala

I wanted to put our two cents when Yammers’ personal email was leaked week or so ago but kind of waited to let the dust settle. We are active Scala developers with several years and production code behind us – and so we have this rare “real live” experience with Scala…

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.

Having said all that – I still love Scala and that’s what I use almost exclusively when I write code for GridGain (still do!). Heck – we even use one trait from Scalaz! Despite the numerous growth problems – I still can’t resist Scala elegance and almost an algebraic simplicity and pragmatism that is so rare these days. It’s the combination of simplicity of the language and the power it gives to developer that attracts me to Scala.

My wish list for Scala in 2012 thus is pretty simple: stop the bleeding, no new boneheaded features, and plenty of bug fixes and core hardening.

Follow

Get every new post delivered to your Inbox.

Join 1,362 other followers