@odersky solutions that sound easy when one deals with a local file system become quite a bit more complicated when one deals with multiple Web GUIs backed by multiple backends. For example, no notebook environment has anything remotely related to “take the code in this notebook cell and send it to the server to be rewritten”, let alone the rewriter running a Scala compiler. Same problem applies to using Scalafix, etc.
So, the question is simple: is the removal of
'x so important that Scala wants to either (a) force multiple open-source projects and for-profit vendors used by hundreds of thousands of people to implement substantial and non-trivial changes that span Web clients and backends or, if that doesn’t happen, because Scala is NOT the most important language for the likes of Jupyter, (b) cause significant end-user suffering?
What is the value scale here? An abstract notion of programming language aesthetics? The quality of experience of people using meta programming? It certainly is not the quality of experience of everyone using Scala, as that will include everyone negatively affected by the change whose volume will dwarf the number of advanced developers using meta programming.
It’s easy to turn a nose up at Spark: it ended up using Scala by accident, it’s not functional, it uses a tiny fraction of the type capabilities of Scala and it even stopped code-generating Scala, because the compilation was too slow. Still, it’s wildly successful. It’s even easier to dismiss the plight of newbie Scala developers hacking in notebooks–after all, they are most definitely not like the people engaged in SIP discussions and they hardly care about programming language design–but shouldn’t we be embracing them instead?
With a multitude of choices for syntax evolution, why is it smart to choose a path that hurts the Spark+Scala community and, for example, pushes more people to use Spark through Python or Java or R, all of which are substantially more popular languages than Scala?