Hacker News new | ask | show | jobs
by kokada 499 days ago
I don't know, if anything the Scala situation seems much worse than the Python situation. The language looks completely different and there is no easy migration path (not that Python had one, but at least the language was almost the same and you could with some effort write code that worked in both versions).

We are in Scala 2.13 and while there are talks about migrating there is no actual plan. Looking at this blog post the situation seems to be more dire than I initially expected. I think we will only end up migrating when the situation becomes unsustainable (libraries stop supporting Scala 2).

3 comments

Odersky forcing through major syntax changes for Scala 3 was such an unforced error. It's baffling add new syntax on top of major semantic changes to the type system.
Stroustrup said "There's two kinds of PLs, ones that people complain about and ones that nobody uses."

Odersky made Scala3 become a language that nobody uses and people complain about!

Problem is he’s a full time academic.

So he doesn’t care if this amazing feature he’s invented has no IDE support.

Or if the Scala tooling ecosystem is so ridiculously poor.

But did it provide a gain in power and soundness? There issues with the 2.x system.
It did, which makes it all the more frustrating that you can't adopt it separately from the syntax and tooling changes.
But the new syntax is optional, right? So you could upgrade and keep the old syntax? (I'm not a Scala dev, so this is just my impression.)
Some of the syntax changes are optional, some of them like the _/* change aren't.
Most programming languages have unsound features.
I don’t use Scala but it will always be better than Python 2/3 because of compile time type checks. If it compiles it should work. In the case of Python 2/3 you could often encounter upgrade issues during runtime !
That can happen in Scala as well because of shared binaries, as is reported in this thread.
It’s a completely different situation compared to Python.

With Scala 2.13/Scala 3 they both compile down to an intermediate format called TASTy which allows binary code to be shared. You don’t get the same binary incompatibilities you do with other languages.

That is why I said it “should” work. There are always some really weird edge cases. My broader point holds true. Scala upgrade is not even close to Python 2/3 debacle
Python had 2to3 and 3to2.