Putting the record straight

Scala creator Martin Odersky fends off critics of Scala’s roadmap

Chris Mayer
Scala-logo1

Typesafe’s founder sets the doubters straight on the latest modularity plans for the language.

Recent changes to the Scala language have got some of the
community up in arms, seeing the addition of modularity features as
appeasing those in the mainstream who don’t like Scala in its
current state.

Creator of Scala, Martin Odersky issued a
long response on SIP-18
(Scala Improvement Process) to try and
clear up the confusion over where the language was heading, stating
that
SIP-18
 (which introduces feature flags: macros and
dynamics) was not an attempt to ‘pander to naysayers’ like
some had thought.

Firstly, Odersky said he was hurt by claims that Scala is a huge
language that incorporates ‘everything including the kitchen sink’,
when it was in fact his intention from the beginning was
diametrically opposing this. He said:

I have always tried to make Scala a very powerful but at
the same beautifully simple language, by trying to find
unifications of formerly disparate concepts. Class hierarchies
= algebraic types, functions = objects, components = objects,
and so on. So I believe the criticisms are overall very
unfair. But they do contain a grain of truth, and that makes
them even more vexing.

Many of those unfamiliar with Scala have dismissed it out of
hand for this very reason, which is why Odersky states ideally in
two to four years, he would like to add further
simplication and unifications to really quash this theory. He adds
that by this time, any complex language accusations like
this
 ’would be met with incredulity.’ A pretty
bold statement, but the vision is clear.

As Odersky alludes to, by achieving this Scala
would truly be a big force on an enterprise level, which
is what Typesafe really wants to do. Not that they aren’t already
of course, with The Guardian and Klout singing their praises. He
says that ‘t
heir job will be easier because they will
work with fewer but 
more powerful
concepts.’

He was quick to add that most of the decisions being
taken ahead of Scala 3 were tentative, given that an arrival date
for it hasn’t even been announced yet. Potential simplications
include a new string interpolation scheme to smooth the process of
using XML literals and adding further Java classes to ease any Java
developers coming over to Scala.

Odersky also describes how renovating the type
system to gain higher-kinded types will, in an amusing twist remove
what he calls ‘the worst part of the Scala compiler’. To see
that in full, read his post…

There’s a catch for SIP-18 for newcomers
though, as he details:

First, while we might be able to remove
complexities in the definition 
of the Scala
language, it’s not so clear that we can
remove 
complexities in the code that people
write. The curse of a very 
powerful and regular
language is that it provides no barriers
against 
over-abstraction. And this is a big
problem for people working in 
teams where not
everyone is an expert Scala
programmer…

Second, the discussion here shows
that complex existentials might 
actually be
something we want to remove from a Scala 3.
And 
higher-kinded types might undergo some
(hopefully smallish) changes to 
syntax and typing
rules. So I think it is prudent to make people
flag 
these two constructs now with explicit
imports, because, unlike for 
the rest of the
language we do not want to project that these
two 
concepts will be maintained as they are
forever.

It’s pretty clear to us that Scala
has huge plans in the offing here, but quite rightly is taking them
into consideration with meticulous detail. Even Odersky
acknowledges that whilst he may have attempted to calm the fervency
of some, you can’t please everyone with how you map out a
language’s roadmap. But would you call an artist’s expression into
question?

Be sure to check out the entire
thread because the debate rumbles
on!

Author
Comments
comments powered by Disqus