Scala is Unfit for Serious Development
codemonkeyism.com
codemonkeyism.com
I sometimes think the problems came from library authors that jumped to Scala 2.8 too soon. Kudos to the Lift framework guys for maintaining builds that work both with Scala 2.7 and 2.8!
I find it hard to take someone with an opinion like this seriously. C#/.NET/CLR is a fantastic platform, and if it does what you want (and Mono is sufficient for your cross-platform needs) then that's all that should matter.
Still pain: the only working IDE is Emacs+ENSIME, documentation is scarce, learning curve is very steep.
On the other hand it will force you to hire only top developers, which is a good thing. :)
I'm still not sure if I shouldn't pick C++0x instead (really). I wish there was a C++ port of Lift.
I've recently started using the IntelliJ EAP X builds for a personal project in Scala and find it usable and useful too.
The maven-scala-plugin is solid and will let you switch between IntelliJ and Eclipse relatively easily. I don't use the maven eclipse plugin but instead "mvn eclipse:eclipse" from the command line whenever the pom changes. Using a pom-based build is useful in a production environment especially if you are using/providing components from/for others. IntelliJ has maven support built-in and seems to work well.
I've only pushed the IDEs to ~40 source files. Things might start breaking as the projects get bigger.
Things are definitely better than they were a year ago and thanks to both the scala-ide and IntelliJ people!
http://news.ycombinator.com/item?id=1438408
http://www.assembla.com/wiki/show/snapimpact/IDEA_9CE_Tip
http://leshazlewood.com/2007/08/01/intellij-idea-on-mac-os-x...
I've put it on the back burner for now though because the job market is still so tiny. If I see more people looking for Scala skills I'll make it a priority again.
I think the big issue is versioning. Learn it! A.B.C
Changes in C denote bugfixes, small changes, etc.
Changes in B denote feature additions/deprecations, non-API breaking changes, etc.
Changes in A denote major architecture changes and/or backwards incompatibility.
THUS:
Everything with "A.x.x" is compatible with previous versions of A.x.x.
Everything with "A.B.x" is compatible with everything else of A.B.x.
As the author stated, Scala 2.8 should have been Scala 3.0. It seems to me the author is less peeved about the change itself, than the confusion caused by not using version numbers the way many people expect, i.e. with meaning.
That's one of my primary issues with Ruby.