4 ms·
The official announcement is quite an understatement. This release is big, especially the changes to the collections standard library and compiler performance w
by dotdi 7y ago
The official announcement is quite an understatement. This release is big, especially the changes to the collections standard library and compiler performance will have a lot of positive impact overall.
Now onto 2.14 and Scala 3!
- type0 7y agoI heard that some are fearmongering that Scala 3 will be as big of the change like Perl 6 and as a result no one will ever use it. I'm not familiar with dotty but somehow it doesn't make sense that Scala core devs would be stupid enough to repeat the same mistakes that Perl did.
- dotdi 7y agoScala 2 and 3 are fundamentally the same language, which weakens the comparability to Perl5 => Perl6. The compiler is new and tooling will change but they do ensure Dotty can handle Scala 2 artifacts. Scala already doesn't offer binary compatibility between major releases, which in itself is a bit cumbersome but it allows them to innovate the compiler. So the change will not be as drastic as it might look. In addition, 2.14 is meant to be a release that eases the transition to Scala 3.
- aphexairlines 7y agoA few differences between Scala2-to-3 and Perl5-to-6 or Python 2-to-3: * Scala 2.14 and Scala 3 will be binary compatible (via an intermediate form called TASTY) * The Scala 3.0 compiler will accept most Scala 2.14 source minus some deprecations that have been coming for a while * Scala is a compiled language and a statically typed one at that, so any source incompatibility or library API incompatibility will be caught by the compiler; fix the issues pointed out and you're migrated.
- lizmat 7y agoFWIW, The Perl 6 Module "Inline::Perl5" allows you to use any Perl 6 library inside Perl 6. After having installed "Inline::Perl5", you only need to add ":from<Perl5>" to your -use- statement, e.g. "use Benchmark:from<Perl5>".
- dtech 7y agoThere's a large amount of effort going into backwards compatibility. Except for some really well motivated very advanced language features (eg view bounds) most code should be source compatible, and Scala 3/Dotty is able to use Scala 2 libraries and there's plans for forwards compatibility with Scala 2.14 (2.14 being able to use Scala 3 dependencies) The big exception is macro's, because they depend heavily on Scala 2 compiler internals. A lot of things you require macro's in Scala 2 will become language features in 3, but for other cases the macro system for 3 is still in active development.
- vvillena 7y agoScala 3 is all about baking common Scala patterns into the language, while making everything a bit nicer to use. It's an evolution and pretty much everyone in the Scala community is eager to adopt it. The fact that it will be binary-compatible with Scala 2.14 will make adoption much faster, too.