It is fascinating to read thoughts of fellow Scala programmers about backward compatibility. What I was trying to say when I brought that issue up was that the backward-incompatibility caused by the transition from Scala to Dotty is so high. And, I pointed that out to explain how I got the impression that Dotty is a separate language. I read that’s not what the designers had in mind.

IIRC future releases of Scala 2.x will be getting closer to what Dotty represents to ease the migration.

Hossein:

Now, back to the pluses of Scala over C++: As we were comparing the two type systems, I expressed my concern about the Scala one building on erasure. A number of chaps tried to defend that design choice – implying richer type system for Scala. From what I can see, that claim remains unsubstantiated. The alleged benefit was facilitation of making Scala multiplatform. In order for that, however, to really be assessed, one requires comparison with unerased languages targeting the same platforms as Scala, which we at the moment don’t have.

Truly so. And, I am not about to substantiate that because I never claimed it in the first place. I was only rejecting the alleged superiority of the Scala type system over the C++ one in presence of erasure in the former.

tarsa:

Is there something useful you can do in C++ using templates, but you can’t do in Scala using implicits?

There is. But, I’d rather not open that in this thread (on the pluses of Scala over C++ and not vice versa). I might even not open it up on the Scala list either for I’m not sure this is the right place.

But, if you’re really interested, there are periods in my history on the old Scala mailing list when I pick that up when the occasion shows up itself. The Scala community doesn’t seem to be ready to learn from that and I have given it up.

Well, it would be nice to see a specific example of what you’re not able to do in Scala because of erasure. Hopefully on the simpler side. We know there are plenty of type-level tricks that are possible in C++ but in my Scala experience problems with erasure are usually a sign that a redesign would help.