Fear, Uncertainty and Doubt in Scala land

skyler.jocelyn
2 min readFeb 7, 2016

--

Scala has come under attack multiple times these past years but its biggest threat is coming from a very unexpected direction.

This threat is called Dotty.

Dotty is a new language inspired from Scala and designed to streamline Scala’s syntax and semantics. The language is based on a formalism called DOT calculus. Dotty is a very interesting initiative that is taking the language toward a very promising direction, so what’s wrong with it?

For starters, Dotty was created by Martin Odersky himself and this is where he’s spending most of his time these days. Not only is Odersky hardly involved in any Scala compiler work these days, he also took with him all the previous top scalac contributors with him to work on Dotty. I’m a bit puzzled why a company like Typesafe which was built on top of the Scala language would allow most of its employees to work on something that benefits neither Scala nor the company itself. And obviously, this means that while all this work on Dotty is taking place, bugs in scalac do not get fixed.

To make matters worse, Dotty has increasingly become an alibi to refuse work on Scala and more and more, I see responses to bugs or behaviors simply summarized as “This is fixed in Dotty”. How does this help struggling Scala developers today?

This is bad news for Scala and its future. While there are plans to unify the Dotty and Scala back-ends with a project called TASTY, neither Dotty nor TASTY are expected to have anything ready for a while, and even when they do, this will still not fix any of the hundreds of bugs that plague Scala developers every day.

As a Scala developer, this makes me nervous. Both practically (some of the bugs I filed three years ago are still not fixed, and actually, some of them were simply deleted during the transition to Github) and more importantly, from a leadership perspective since the creator of the language himself doesn’t seem to think Scala cannot be salvaged in its current form.

--

--