The hype around the Scala programming language just got too much recently and I decided to give it a go. I’m two thirds of the way through Programming in Scala, a massive but very good tome and I’ve been experimenting with the language and tools, though only a little bit so far. I have also just received the newly published Scala for the Impatient (a deliberately much more compact book) and will be working through that as well.
Scala is an attractive proposition to the adventurous Java programmer (it being a JVM-based language) bringing a wealth of advanced features that promise to cut down on boilerplate and deliver more elegant solutions with less code. Scala is not for the faint hearted though, or anyone who just wants to get some stuff done ASAP. There is a big, steep learning curve and the relative immaturity of the language and the small community means you’d better be used to the pains of the bleeding edge. I thought Ruby was hard work, but Scala is frankly more so in my experience so far.
However the language is somewhat addictive – or perhaps I just like the challenge of learning stuff that takes a bit of grokking. It’s a big language, with many very clever facilities and features. It’s mind-boggling to start with but I think it’s sinking in now. Of course there’s the functional paradigm to understand and master, but I did plenty of that at university so it doesn’t frighten me.
Enough people have written about the frustrations and wonders of writing code with Scala (here, for example), so instead I shall reflect on a few miscellaneous findings, mostly of a practical bent.




