Does Scala deserve a defense?
Why cant there be peace between Scala haters and Scala lovers? Hartmut Schlosser weighs in with his take on the rationale behind programming language battles.
It’s always refreshing to see cool and rational
techies dropping their poker faces and exposing the true passions
that simmer beneath. Case in point: When it comes to the defense of
a cherished tool, whether that be Eclipse, IntelliJ or NetBeans,
tempers often run high.
Evangelists can find themselves drawn into charged
duels when it comes to promoting “their” solution of choice – from
Spring versus Java EE, to OSGi versus Jigsaw, and DSLs versus ULM.
And when it comes to arguing which programming language rules them
or Scala- all reasoned, factual arguments can go out of the
Perhaps we should take a note from sociologist Pierre
Bourdieu, who brilliant surmised in “Distinction: A Social Critique
of the Judgement of Taste” how seemingly genuine personal traits
such as gestures, pronunciation, aesthetic taste, eating habits or
preferred music serve to reinforce social groups, to the field of
The betting would be that many of those offering
seemingly “objective” arguments for the use of a technology are
often hiding “subjective” attempts to exclude something or someone.
This would go a long way to explain all those negative blog posts
slating a competing technology, and why there are so many Scala
hate posts flying around.
Scala has just turned ten – and, over the past
decade, Martin Odersky’s programming language has become one
of the most important JVM languages behind Java, along with
Groovy and Clojure. The success of Scala is remarkable, and the
number of Scala projects productively employed in the industry only
continues to grow.
Do you remember?
There was a good deal of euphoria about Scala in its
early years – finally, innovation had returned to the JVM platform!
Scala was, to us Java people, a language that was envied by
adherents of other platforms (weren’t PHP Traits inspired by
In the midst of this Scala hype though, obviously
there were also plenty of critics – people who didn’t especially
like the often broken backward compatibility, and the less
convincing tooling – certainly legitimate points, which have
been much improved upon today.
Emotionally, the debate about Scala started no later
than 2011, when Stephen Colebourne used the withdrawal of
enterprise social network provider Yammer from Scala to drive
a real campaign against the language.
Since then, blog posts weighing up the relative pros
and cons of Scala pop up frequently. Nikita Ivanov (Grid Grain)
wrote one recent example “In
Defense of Scala“, chiefly in response to a recent post by
Bozhidar Bozhanov titled “I
Do Not Like Scala”, which railed against the steep learning
curve, cryptic syntax, and slow compilation of the language, among
In his opinion, the poor quality of the SBT build
tools and the Scalaz framework have contributed to the negative
experience of many Scala newbies. Moreover, the Spary.io project
wasn’t an example of the good engineering that one is accustomed to
with Scala itself and in projects such as Scala test, Akka and
In defense of Scala
Well, this “defense” is not very convincing, mainly
because it attributes the supposed “bad feeling towards Scala” on
to relatively minor side projects and does not otherwise entertain
The real question however is answered aptly by Ivanov
in his follow-up post “In
Defense of Scala, part 2“. One commenter raised this
point: “Does Scala need a defense at all?” No, says Ivanov. Scala
needs no defense! Scala is still a brilliant technology that speaks
for itself, and one of the biggest enrichments to the JVM in many
And, the really amazing thing is probably not the
number of critical blog posts about Scala – other new languages
have to deal with similar phenomena after all (see
criticism by Clojure developer Alex
Miller). As a neutral observer, one
wonders just why so many friends of Scala feel the need to make
unwarranted apologies for it, again and again.
Scala in 2014 and beyond
Scala has left its days of hype behind and
professionalized with the Typesafe Stack. In the Technology Radar
by ThoughtWorks, Scala is now in the highest category for languages
The language’s cultural profile is not as a Java
replacement for everyone, but as a highly-scalable language which
provides a great complement to the Java technology stack. Or at
least that’s how Spring founder Rod Johnson, who, since 2012, has
sat in the board of directors of the Scala company Typesafe,
characterized the language at Scala Days last year.
According to Johnson, in five years Scala will have
found its niche, and will mainly be used in traditional enterprise
apps, often in conjunction with Java, as well as in
high-performance consumer apps à la Twitter. What Scala won’t find
however is a level of adoption comparable to Java, with its
millions of users.
Johnson’s recipe for Scala success for better
integrating it into the mainstream was for it to become more
integrated into the Java ecosystem, and to slow the pace of
innovation in terms of new semantic extensions in favor of backward
compatibility, compiler improvements and tooling expansion. More
pragmatism, a greater focus on real-world problems and a more
welcoming attitude towards Scala newbies is what’s required.
These are the screws Scala followers need to readjust
to convince the wider community of Scala’s benefits – on both a
technological and emotional level. What’s not required are any more
all-guns-blazing blog posts rising to its defence.
This is a translation of an article which was
originally published in German on JAXenter.de