As was returning from Scalathon 2012 I’ve decided to pen down some of my thoughts on state of the Scala land by the mid-2012. My last “report” about 6 months ago has received a fair amount of attention and I think it’s a good occasion to provide another 6 month look back.
As many of you may know we are old time Scala users and have Scala in production usage for almost 3 years now. I think there may be just a few dozens of other products/projects that can claim the same and just may be a few that are not some type of internal IT systems but rather something that you sell as ISV – and we are almost alone in a serious distributed middleware category. So… we have a pretty good vantage point.
Things Calmed Down
In my last note about Scala I have really complained about some erratic “moves” in Scala world – whether it was purely technical (parallel collections) or business related (growing pains with Typesafe, etc).
I think in 2012 Scala’s advance has been a lot more steady and less erratic. 2.9 transition (at least for us in GridGain) was painless. 2.10 is coming alone and many glaring (performance) issues are started to being addressed. I don’t remember when was the last time I got a compiler crash (fcs doesn’t count)… IDEA plugin has matured A LOT in the last 6-9 months to the point where it minimally works in most cases (why people even touch Eclipse for Scala development at this point is beyond me).
StackOverflow is getting more and more useful for Scala folks. More (and better) books got published. Even Scalaz fascination has settled down to healthy levels (thanks, in part, to sobering attitude from Martin Odersky) and things like Lens (and their implementation in Scalaz) is something that actually usable in real life projects. Akka’s futures are migrating to 2.10 standard library – long time overdue (we’ve had that in GridGain 5 years ago – our entire implementation is practically Future-based). Java Futures (even those developed by us) make me cringe when I look at Scala counterparts – Java is so crippled comparing to the elegancy of Scala expressiveness.
An hey, new MacBook Pros helped with compilation speed a lot :)
Scala 2.10 new features are mostly welcome (at least IMHO). I have even warmed up to disabling some of the “advanced” features by default, and requiring and explicit import to enable them. Macros, or more appropriately a compiler plugin support, is extremely interesting capability and really is a differentiating feature among other languages in the JVM eco-system. Kotlin – are you listening?
Scala documentation – is still a poor state of affairs. But I guess I’m slowly overcoming it by simply remembering a lot and not consulting it as often. Newcomers are still suffering though (and I see it in our team first hand).
I believe the Josh Suereth’s (@jsuereth) influence (personal and the book) has been very positive on the inner circle of Scala fun base. Whoever made that hiring decision at Typesafe deserve a credit. Right individuals have a surprising level of influence on early stage adoption technologies like Scala.
I believe a new head coach at Typesafe is a clear sign of getting the house in order. Yes, Typesafe is still just a bodyshop today but they apparently invest more and more into maintaining Scala language eco-system – and that’s a very positive sign.
I hope they can maintain a healthy balance between “cheap” consulting/training revenue and “expensive” product development (and not only for Akka!). The more adoption Scala gets – the better it is for GridGain (my skin in the game) as we are practically the only distributed middleware with native Scala support that exists today.
Scala as a hiring tool
This actually has emerged as a clear standalone concept: if you want to filter out the “noise” resumes – put “Scala” as one of the key requirements. You’ll be amazed on the quality delta in resumes you’d be receiving (and how less of them too).
I firmly believe that for some companies that alone is worth having Scala in their software stack. Just ask Novus about that…
So, what am I unhappy about?
My biggest gripe is the same as last time – seemingly slow adoption of Scala. May be that’s meant to be this way, may be not – I don’t know. I’ve stopped long time ago trying to parse the reasons behind why small percentage of Java folks utterly in love with Scala (me included) and much, much larger percentage is either indifferent and downright hostile towards it.
In the end – I think Scala is moving in the right direction. Typesafe is very close to raising their round B – how I wish they’d amass some $50M+ valuation, raise $20M-30M and spend good chunk of it on a smart marketing strategy for Scala. We could have all benefited from it – along with Scala adoption!