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