You mean by deprecate what, exactly?

Web JS is full of var. Making any attempt to migrate a big hunk of it to ES6 require replacing all 'var' with 'let' is a huge tax, since scoping works differently.

Ok, how about saying if you use 'let' in a function or at top level, you can no longer use 'var'? That's less of a tax on average, but for a long program or single function, it's as bad.

On the web, deprecation is separate from obsolescence. You don't remove the bad old thing until the good new thing is out and about and actually in use. You might have to wait for the bad old thing to wither almost to nothing, all by itself.

Sometimes, I wish non-web languages would offer similar
backwards compatibility, sometimes, I wish web languages
were not burdened by backwards compatibility..

One way to help with this problem is automation: we already
accept that compilers translating ES.next to ES.current can
help with experimentation, design, and early adaptation wrt
new features. In the same spirit, compilers from ES.legacy to ES.current could speed up deprecation of unwanted features.

This idea is a generalization of special-purpose refactoring tools that support API migration or schema evolution (as opposed to general-purpose code restructuring). One paper that expresses the idea in more detail is

   Regrowing a Language
   Refactoring Tools Allow Programming Languages to Evolve
   Overbey, Johnson, OOPSLA 2009
   http://jeff.over.bz/papers/2009/onward2009.pdf

Claus
http://clausreinke.github.com/
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to