The next person that starts talking about the “Concurrency Crisis” I will hit over the head with a multi-core frying pan.
I will try to make this brief and to the point: very few applications (note: applications, not games, not huge asynchronous data munching processes that live in some dark and half forgotten data center in the damp and unholy basement of Miskatonic Data Processing, Dagon St, Miskatonic) will benefit from extensive use of things like Scala. Yes, it’s a shiny new toy. Certainly. But listen to me and listen to me well: most applications are IO-bound. The slowdowns that most users react to have more to do with that (or for interpreted languages with crappy garbage collection – IntelliJ, I love you as an IDE but stop fucking around with the deallocation of memory, I hate it when you freeze up on me) than with the 0.1 seconds extra it takes to sort that list. Yes it sucks that we suddenly have to learn new ways of doing things (no, it doesn’t – learning is fun idiots), it sucks that concurrency is really hard. The silver lining? If you’re using it you’re probably doing it wrong and for all the wrong reasons as well. You don’t need Scala to write normal applications. You don’t need it. You. Don’t. Need. It. Sit down for a second and think about it instead. So you have four cores. Or maybe eight. Make sure your application handles I/O efficiently long before you start wondering about whether to split that sorting over several cores.