Scala first impressions
June 29th, 2008Scala’s a funny-looking bird, a marriage of convenience between a quite clever type system and a syntax intended to be not too off-putting to Java “refugees”. It just isn’t going to replace Java, because Java programmers in general have enough problems dealing with things like wildcarded generics, but it’s a respectable attempt at a multi-paradigm language targetting the JVM, and that’s definitely a good thing.
The following things definitely suck, however:
i) SUnit. For pity’s sake. This is the best you can do? I don’t expect, when moving from Java to something with a legitimate claim to represent the next generation of “real world” programming languages, to have to deal with a default unit testing framework that makes JUnit 3.x look snazzy and convenient. It’s not even as if it’s that hard to improve on.
ii) IDE support. I expect this to get better when IntelliJ decide it’s seriously worth their while. The Eclipse plug-in is a noble endeavour, but it has a looong way to go. I don’t underestimate the difficulty of doing it right: Scala’s an inherently complex language, and needs some dedicated type theory fiends to work on its tooling. Refactoring in particular is going to be fun. Fun for somebody else, I mean.
iii) So far, nothing else particularly sucks. I suspect the ersatz Erlang features of sucking somewhat, just because of the impedance mismatch between the Erlang-platform-specific assumption that we can have gazillions of “processes” without breaking into a sweat and the awkward realities of making something sort-of resembling that happen on the JVM. But I could be surprised, even pleasantly.