Hi Burk,
thanks for the interesting link. I'm going to read up on this ;-)
All these discussions about "low-level concurrency" in Java is something I don't really understand. Of course Java has all the things like the wait() or notify() methods or intrinsic locks etc. But do you really have to use it? At least starting with Java 5 there are a lot of higher level utilities, too. In my opinion most people who complain about the low-level support just use the wrong tools. What's easier than using a ThreadPoolExecutor for example which takes care of managing a
thread pool for you? Of course you always have to be careful with shared state and all of its implications for concurrency. But that doesn't mean that it wouldn't be possible to create immutable objects and methods without side effects. Most programmers just don't care about concurrency issues because for a lot of traditional applications concurrency errors at runtime may be rare.
That said I really like the concepts and possibilites of Scala and I'm definitely going to put more effort into learning Scala. I just wanted to point out that a lot of the "advantages" could be achieved in Java, too. Maybe some things are harder, but not impossible. On the other hand I'm sure there are good reasons for all the hype about Scala's concurrency features, which I'd like t hear!
Marco