The Scala debate rumbles on

Just as the embers of last week’s flame war between advocates of
Java and Scala appeared to be fading away, the debate was soon
reignited as a leaked email conversation detailed the enterprise
social network Yammer’s early plans to shift
their infrastructure stack away from Scala back into Java.

Coda Hale mentioned in passing last week in a
tweet that even though Scala was a cool language that they’d be
shifting to Java in the near future. He was asked to clarify his
position by Typesafe CEO Donald Fischer why this was the case in a
private email, which soon found its way onto back onto Twitter and
then Hacker News.

The self-proclaimed ‘Mr Anti-Scala’ Stephen Colebourne, whose
controversial blogpost debating Scala’s worth sparked an
community-wide debate over the language, was
quick to pick up on the email and used it to back up his
previous argument, stating that this was much more concrete
evidence of Scala not working than his minimal experience with
using it.

Hale’s honest opinions are detailed within the email – which he
soon deleted once it was viral. But in broad terms, he outlines the
reasons for the switch:

Complexity: He
was suprised at how he had to explain some of the simplest tasks to
new team members picking up Scala for the first
time.

Lack of community practice
awareness: The most vocal
members of the Scala community would often try to reinvent the
wheel.Rather than participate in
discussion, the internal advice was therefore: “Ignore the
community entirely.”

Lack of best
practices: Without the
backing of a supportive community, the team didn’t know what
constitutes ‘good’ Scala and were often led to fend for
themselves.

Long learning
times: The infancy of the
language meant that there is hardly any develope with Scala skills
available. The time taken to get a new developer
up to speed in Scala is longer than in Java, thus creates
productivity and time to market. Hale adds ‘Even with services that
only used Scala libraries, the choice was never between Java and
Scala; it was between Java and Scala-and-Java.’

Tooling
defects: Build Tool SBT
proved not to be particularly stable: “We ended up moving to Maven,
Which is not pretty but works.” A wide palette of
alternative tools like in Java were not
available.

Backward compatibility
issue: Any new version of
Scala breaks backward compatibility: Developers are encouraged to
use the latest libraries, source code must be
revised.

Performance
problems

It wasn’t long before Hale blogged a reply entitled The Rest of The
Story, setting everyone straight on the private email,
insisting that the views were not that of his
employer.

I wrote that email for a very specific reason: Donald asked me
for my opinion. If someone asks me for an honest opinion of them or
their work, in private, I feel morally compelled to be as honest as
I can with them.

But it’s simplistic and naive to assume that I wrote what I did
in an unguarded moment and that somehow this represents a more
truthful account of what I’d say in public. The most that you can
possibly know about this is the text of my email to Donald and
Martin (Odersky), not the context.

The most salient point of his response was this –

Yes, that email is not what I would say in public. The Scala
community needs another giant blog post about ways in which someone
doesn’t like Scala like I need a hole in my head, and I’d rather
suck a dog’s nose dry than lend a hand to the nerd slapfights on
Hacker News.

It was interesting to see that Colebourne missed the key point
that Hale did say ‘despite the fact we’re moving away from Scala, I
still think it’s one of the most interesting, innovative and
exciting languages I’ve used.’

And here lies the most obvious point within the mire of
anti-Scala ramblings. There is potential for Scala to grow into one
of the most sophisicated languages within the JVM but it isn’t
there yet. Only through ironing out flaws detailed within Hale’s
private email, can it truly suceed and the best way to do this is
to take this positive criticism on-board. Now is the time to answer
the critics with actions. They seemed to have done that by
announcing their migration
to github forthwith and it should be interesting to see
what this week-long debate has done to Scala’s standing.

As for those against it, and those seemingly on a vendetta to
destroy it, perhaps looking closer to home is a much better option.
This argument is getting us nowhere.

Some of our team’s negative experiences with Scala was
misrepresented by some as constituting an official Yammer position
or announcement. It was not; it was a private
email.

This is Yammer’s official position on the subject:
our goal at Yammer is to revolutionize the way modern workers
collaborate and we’ll use whatever tools will allow us to iterate
faster on that goal. If Scala is that tool, we’ll use Scala; if
Java is that tool, we’ll use Java; if INTERCAL is that tool, we’ll
use INTERCAL. (We don’t expect to have to use INTERCAL; don’t
worry.)