This is a post I should have written yesterday, actually, since it is already June, ready for the next “Language of the Month“. Still, let’s finish off this May Edition.
Taking score
First, I should have spent more time on practicing Scala, as I haven’t actually finished anything in the end. It is probably an excuse, but after using Python for such a long time, getting used to a compiled language with its own weird path-, naming- and import conventions, was just a little bit too much. Mostly I was reading the Pragmatic Bookshelf: Programming Scala, practicing the examples within. That book uses Scala 2.7.x and the current version is 2.9.0.1, so there are a few things that work differently and I ended up having strange error messages with little to no clue how to fix them (mostly imports, and some method signatures must have changed as well). So it was a limited but exciting success.
All in all, I liked the language even if I don’t have a clear usage case for it in my mind (just yet). Some bullet-points of my experience:
Good
- Different way of thinking about “batch” operations (i.e. foldLeft)
- Once I figure out the Actors that well that I can write related code without referring to the tutorials, that’s going to be a very powerful tool
- Pattern matching, pattern matching everything. This is one thing that blown my mind in the little Haskell I checked so far, and missing from Python a lot.
- Flexibility with class definitions, they can handle so many different situations in a very logical and powerful way
Bad
- Length of compilation and program start. Will have to get used to it, though I read some hints that this can be improved.
Ugly
- Pretty frequent need of using things directly from Java, so one is never quite independent
- Special methods that have reserved name for certain functionality (act, apply, …) that are non-obvious, and not easily distinguished from the arbitrarily defined methods.
Future
Definitely will come back to it and learn it in more detail. It looks like a fine language to do parts of larger projects in. In the meantime I will update the link collection in the previous post with new links that I find. I certainly notice more and more Scala posts on Hacker News these days.
One reply on “Language of the Month: Scala, part 3”
[…] this time taking on Haskell. I think years ago I’ve touched upon it when I was digging into Scala, but recently it showed up in more conversations with workmates, so can’t really resist it. […]