Rumblings in Scala

1 minute read

Here are some thoughts I posted about Scala on Mastodon.

There is quite a bit of talk about Scala and it’s future it seems. There are thoughts about academia driving the language for its own noble goals but losing sight of the consequences for industrial size codebases in the wild and the ecosystem as a whole.

It’s a justifiable opinion. For example, the IDE support has been a long struggle and is pretty good for 2, but it has taken a big step backwards for 3. It’s become a tiring and unnecessary impediment to just getting things done for the average programmer who doesn’t want to repeatedly quit the IDE, killall java, or reimport projects because “something weird has happened”. We don’t have time for that crap.

Now you might all say I don’t know what I’m talking about, that with some clever solutions to X and Y and using a proper editor, everything will be great. Maybe, but having worked hard at trying a lot of these tools and IDEs, I’ve found little joy with Scala 3. I’ve also tried migrating systems to Scala 3 several times and gave up because it is a herculean task with considerable risk to the systems.

I’m not a type astronaut or contributor to libraries like the type level ecosystem – I’m not smart enough. But, I think I can say I’m not bad at building systems by leveraging the work of those geniuses. And, I am pretty happy working with Scala 2 and enjoying the improvements around the ecosystem that are happening all the time.

I’m enormously grateful to all those really smart people working very hard, for free, to make it possible for me to have an enjoyable career.

The success of the language depends critically on an ecosystem sustained by very smart people giving up their free time, and so it is imperative that changes to the language do not exhaust their good will and patience. I fear that Scala 3, whilst having many great features, was too much too fast for everyone.