Debate: Does Scala need to sell out?
Rod Johnsons recent Scala Days keynote has provoked a strong reaction from the community. Does Scala necessarily need to become Java?
The Scala programming language has seen unprecedented
growth in the past year or so, successfully shifting from a
specialist JVM language to a viable Java alternative that
enterprises should at least take a look at.
Although in the production environments of Twitter, The
Guardian and LinkedIn, it hasn’t yet found its way into the
mainstream. However, the winds of change are on their way. In
August 2012, Typesafe, the company behind the object-oriented
language, received $14m funding, which has been used to fuel
development in the TypeSafe Platform.
For a language to blossom, it needs a supporting cast of
frameworks alongside it and Scala’s related projects, such as
toolkit, web framework Play and
relatively new data access project Slick, all add
extra value to the language. The recent arrival of Activator
should help newcomers too, providing a local web and command
line tool for the TypeSafe Platform. Although not yet on a par with
other mainstream languages, Scala is on the right tooling
At the same time, the community behind Scala (or
specifically those showing an interest in it) appears to be on the
rise as well. According to
January’s RedMonk Rankings, which uses GitHub and
Stack Overflow figures, Scala was clearly the Tier 2 language
closest to joining the established order of Java, C and
Yet, there is still a stigma that dogs the Scala
community; that they are seen as a group of arrogant elitists who
want nothing to do with Java. This is one of the areas which Rod
Johnson discusses in his recent Scala Days keynote “Scala in 2018”
(below), discussing the community’s openness to new Scala
The man behind the Spring Framework became of a convert of
the Scala language last year, and liked it so much that he
joined the Typesafe board in October.
Johnson says that he hasn’t loved a language like Scala since C,
due to its “profound elegance” and for its flexible yet strong type
Johnson believes that in 2018, Scala will have “found its
niche” as the leading enterprise language, for demanding
applications that require scalability. He doesn’t believe Scala
will be as big as Java was in its heyday, nor will any language
ever come close to that. Johnson also believes that Java’s
lingering presence in 2018 will ultimately be a good thing for
Scala, thanks to the “robust and performant” JVM.
But in order for this to happen, the Spring founder
believes that the community needs to learn a trick or two from the
“pragmatic” individuals using Java, namely favouring regularity
I think that we actually need to see more
evolution in the community than in the language itself. I think the
community needs to become more pragmatic, more focused on real
It needs to be more welcoming of new adopters. So what
when they adopt if they’re very naive and unsophisticated in their
knowledge of Scala - isn’t it great that they’re using Scala?
Because over time they will learn.
Throughout the keynote, Johnson appears to suggest that
the community itself is a huge turnoff for newcomers, due to some
bristly and unwelcoming contributors. He points to some
list discussion as examples of those potentially
alienating to the community and says Scala devs could learn
something from Groovy, where there is “a culture of
But is it entirely fair to look at isolated incidents?
Especially those that are a few years old. Only a select group of
Scala developers come across this way and the community at large
has done a great job recently to make sure there is a healthy
culture, introducing a Code of
Conduct to nip behaviour like this in the
Just by looking at
the comments under the keynote, it’s clear to see
that many feel this is a tired and false representation of the
current Scala community, which doesn’t focus on the good developers
who are having a positive impact on the ecosystem. Josh Cough
points to Johnson’s bashing of the Dispatch library, which goes
against his point about being more accepting of others and their
The Spring founder’s insists that Scala developers need to
have defined coding standards as well.
There is definitely a danger that if you have a language
you can write poetry in, you will write poetry. But sadly, the vast
majority of us are not paid to write poetry. Even very
few poets are paid to write poetry. We are paid to solve real
problems and a degree of discipline in the kind of code we write in
Scala is really, really important.
But would the introduction of coding standards create even
greater and more heated debate, over what is acceptable and what
Johnson perhaps is being deliberately provocative to bring
about the important questions. Scala is at a crossroads in its
lifespan – should the Scala team and community it continue to place
precedence on new features over the importance of
He is bang on the mark in regards to the warm embrace of
the Java ecosystem, as much as Scala developers may disagree. The
functional language’s future is intrinsically tied to the JVM and
being on the platform gives Scala a glorious advantage over other
The real danger is that Scala moves too closely towards
Java ideals that it may lose its “elegant” identity that made it so
popular in the first place. As with any modern programming
language, the community should be heard the loudest. Maybe you can
still be a pragmatist and a poet?
Does Scala need to become more like Java in order to become
the leading enterprise language in 2018? Is Johnson right in his
assertions about the community? Let us know below what you