How Serious Is Scala?

Stephan Schmidt has blogged about whether Scala is a language for developers seeking to code for profit, and whether Scala 2.8 is really Scala 3.0.

Is Scala unfit for serious development? This question was posed
by Stephan Schmidt in a recent blog, where ‘serious development’ is defined as
‘for financial gain.’

Based on his experiences with “the version hell that is 2.8,”
his answer is no, and he lays the blame for Scala 2.8 firmly at the
door of the Scala community. In Schmidt’s opinion “the developers
are interested in language research and writing papers, not in
making a language for real development.” This means that classes
disappear and appear, binary and API compatibility are ignored, and
Scala is generally changed “on a whim” between releases. He
stresses that the Scala community should be concentrating on fixing
bugs, and leave the feature-set alone for a while.

However, visitors to his blog have pointed out that his post is
concerning what Schmidt calls “2.8 version hell.” Scala 2.8 is
still in the release candidate stage.

“If you want to do serious development, why do you even use
release candidates? Why not just wait for the final release and
then upgrade?” asked Mirko Stocker, while Thomas Jung draws
parallels between the Scala 2.8 RC’s and OpenJDK 7, which is also
in the process of releasing builds prior to the official release.
“You should correct your title to “Scala 2.8 is Unfit for Serious
Development”. This not news. It’s not released yet. Would you
expect to have a stable OpenJDK 7 now,” he asks.

James Iry has blogged his reply to the original post, and he
too agrees that the issues with API compatibility Schmidt
describes, are to be expected when dealing with RC’s.

“Schmidt jumped into the beta version. A small bit of versioning
hell ensued. From this Schmidt concluded that the Scala development
team do not care and that Scala is unfit for development,” he
concludes. However, he does acknowledge that there is an ongoing
problem with maintaining binary compatibility in Scala, but the
next major release should solve the binary compatibility issue once
and for all.

Another issue raised by Schmidt, which has found unexpected
support within the Scala community, is that the naming of Scala 2.8
is deceptive, and it should have been called 3.0. Iry agrees that
3.0 would better communicate the extent of the changes, and
visitors to his blog have expressed a similar opinion, although one
visitor suggested this decision could have been influenced by
Java’s tendency to have major language upgrading with a minor
version upgrade.