2 ms·
Smooth upgrades between major Scala releases is one of our[1] two top priorities (the other being compiler performance). I disagree that "nothing" has happened
by adriaanm 13y ago
Smooth upgrades between major Scala releases is one of our[1] two top priorities (the other being compiler performance).
I disagree that "nothing" has happened since 2.8 to improve Scala's enterprise readiness (the Scala team at Typesafe does just that).
Binary compatibility is one (desirable) way of making upgrades smoother (but certainly no panacea).
We haven't reached the point yet where we're willing to freeze the whole library across major releases, but we're working towards this.
In Scala 2.11.x, we've slimmed down the library (by deprecating more aggressively and modularizing),
so as to reduce the core to something that we're comfortable enforcing binary compatibility for.
In the mean time, we're working on mitigating the upgrade pain with tooling and "community outreach".
We're working with the developers of core Scala projects to assist them in cross-building their projects,
and we're investing in tooling to automate this. With every 2.11 milestone we're working to get the eco-system
in shape for the final 2.11.0 release, so that your dependencies will be available when you upgrade.
We're also working on gaining engineering experience in enforcing full backwards and forwards binary compatible,
albeit only between minor releases of Scala 2.10.x (enforced with https://github.com/typesafehub/migration-manager https://github.com/typesafehub/migration-manager).
This means code compiled against Scala 2.10.x is guaranteed to run on a Scala 2.10.y run time
(you're free to pick x -- a different one for each dependency, even -- and y).
Scala 2.10 gets a bugfix release every 3 months, and a lot of the features we're developing for 2.11 (as modules)
will be available for 2.10 as well.
Happy to hear your thoughts and experiences in upgrading! Several of our clients and other big Scala users
have reported successful upgrades from 2.9 to 2.10, though others are still happily running on 2.9.
Doesn't that make us more enterprisey?
[1] I'm the Scala tech lead at Typesafe.