1. 17

  2. 2

    This seems largely like a new language. I wonder if it shouldn’t have been kept separate as Dotty. Surely this must have been considered.

    1. 4

      No, it’s a big change–and I’m not here to argue about the merits of every difference–but it remains fundamentally the same language. A lot of effort has gone through to avoid a Python 2/3 situation. Compiled Scala 2.13.4 and 3 modules can depend on one another, and a there’s a prebuilt set of tools that can be used to migrate code from 2.13 to 3.0.

      Already, there’s a pretty huge difference between this and the Python 2/3 transition: huge portions of the open-source ecosystem (including almost all the typelevel libraries) have already been migrated, compiled, test, and distributed for Scala 3.

      While Scala 3 has some big changes, it still retains a huge amount of the cruft it needs to in order to make the migration as smooth as it seems likely to be. I think if one were inventing a separate language, a lot of these compromises wouldn’t be necessary.