Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Very relevant is the timing. The first stable version of Scala 2.12 won't be released until Jan 2016.

Also, no source compatibility breakage is considered without a migration tool available, also mentioned in the timeline.



Migration tools aren't panacea they don't fix stackoverflow answers, pdfs, blog posts, existing tutorials, talks, slides, examples, mailing list posts, or irc logs.

They also require locking a codebase and making massive changes all at once.

It should be preferred to just add them as -Xlint:XXX warning / -Xlanguage:XXX features that can be opted into, along with a tool that will automatically update the code to best practices.

This way no legacy codebase has to undergo the massive cross-cutting refactor required when running a migration tool, instead they can opt into the features they want, and new users copy pasting in code will see that code work.


I completely agree. We'll try to make the boundary between old and new versions as flexible as possible and both lint tools and language imports will be an important part of that.

Note also that the rewritings we consider are in their majority rather trivial. E.g. insert a ": Unit = " every time you used procedure syntax, or wrap every XML literal in xml"""...""".

The one thing that scares me a bit is experimental features. These will not port cleanly, and my advice right now would be: If you want your code to survive transitions without major rewrites, don't use experimental features. They might be tempting, but they can well be a trap down the line.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: