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.
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 Scala?).
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 other things.
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 Shapeless.
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 Bozhanov’s points.
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 years.
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 Language 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 beyondScala 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 to “Adopt”.
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.deImage by Chris Gill