Bright future for Scala or is it really the next EJB 2?

Last week, Scala creator Martin Odersky presented Scala 2.10 to
the delegates at Devoxx, showing off many of the latest edition’s
new features to much applause from the Scala community that had
descended upon Antwerp.

Odersky
revealed that it would arrive in early 2012 – complete with a
new reflection framework, reification, improvements to the Eclipse
IDE and promises of faster builds and a new type Dynamic. You can
peruse through Odersky’s visions for Scala in the slideshow – but
he looked mostly at the challenges of scalability and concurrent
programming. After all ‘Scala’ comes from Scalable. Other
interesting revelations included the alliance with the new Play!
Framework

What’s been most interesting to follow since this presentation is
the backlash towards Scala in general. Stephen Colebourne, creator
of the Joda Time Library and certainly a prominent member of the
Java Community wrote
a fairly scathing piece defending his use of phrase ‘Scala
reminds me of EJB 2′ dicussing Scala’s attitude towards other
languages, decreeing that ‘the Scala community is not tolerant of
dissent.’

Colebourne was quick to say that it wasn’t a Scala-bash (although
it certainly read that way) and that he sees the merits in many
languages within the ecosystem but that Scala should be open to
criticism and also allow more self-reflection as opposed to
arrogance. He dissected the piece up into key areas for discussion
– the lack of a module system in Scala, concurrency issues,
the community’s attitude, type system, syntax, quality and that EJB
2 statement. All which deserve your full attention to
digest Colebourne’s arguments.

Opinion on social networking sites appears to be mixed – some
saying Colebourne may have overstepped the mark but making some
valid points whilst Scala defenders were quick to point out errors
in his thinking. Some pointed out that this squabbling ultimately
harms the already fractured relationship between Java and
Scala. Alex Blewitt was
quick to write his response to the post saying in conclusion
that

Scala had a chance, when it was new, to capture the imagination of
a large set of Java programmers. It still initially tempts those
who want to learn about functional programming aspects and to
provide concise code. But by consistently ignoring what makes a
language stable over time, and following the same path of bloat
that Java had done years before (whilst ignoring Java’s
compatibility between releases) has kept Scala in the sidelines of
major enterprise projects.

Even Java is providing both modules and lambdas in the next
release; and even though it’s been delayed a further year, is still
likely to bring functional programming to the Java masses far
quicker than Scala will stabilise. It may be too late for Scala to
put its house in order before Java overtakes it.

The battlelines are now for all to see after such a high profile
Java committer spoke out against their vision and their way of
doing business. It seems that this squabbling has no end in sight –
with neither side willing to embrace ideals of the other and
certainly the flame war will continue for a few months
yet.

Perhaps today’s blogpost may open the eyes of some Scala and Java
developers to stop being so tribal and stop bleating on about how
good their language is and take onboard ideas from the other,
although this seems very unlikely to occur now.