Open b612lodger opened 10 years ago
I would love this too. Planning on taking a look to see if going through Caja (as suggested in the last comment of #416 ) is possible
I'm sure parts of it would work with some work but certain features are not possible.
So, it all depends on what features you are using. Take a look at the generated code and see what runtime functions it depend on and what those runtime functions do.
I'll try this out with the language features I'm interested in and see what works in IE 8 and what doesn't.
@amaltson Please report back on what you find! I'm very interested in the Traceur/es5shim combo for IE8 support, but it would be great to have some idea of what the pitfalls are.
but we still have people using browser < ie8. in fact, they're 20~30% of desktop traffic.
Never trust a statistic which you haven't forged yourself. According to Stat Counter, IE8 has about 5% browser market share.
On the sites with full IE8 support which I have access to the analytics, all versions of IE sum up to 10.5% browser share, from which only 9.7% are IE8. That is, 9.7% of 10.5% is about 1% IE8 browser share.
Of course, these stats will vary greatly depending on your target public. Nevertheless, only uninformed people use IE, and to use such an outdated version of a browser is simply unreasonable and unacceptable -- they are harming their own security and experience, let them be exploited and have broken pages if they wish so.
The Web is the land of evergreen browsers. Our job as Web developers is to push the web forward, not waste our time holding back the web to support ancient buggy pieces of the history.
And guess why people still use such outdated browsers? Yes, because developers still choose to waste their time supporting those cachectic browsers. Drop ancient browsers support and move the web forward -- it is better for your users (which are forced to update), and even if you lose a few % of users, your code base's maintainability will easily pay it off.
Now, I'm not advocating that you should blindly drop support for old browsers. But don't throw random % as a excuse to support them. Analyze your own user base, and judge whether it is worth paying any attention to ancient browser users. In the worst case, I'd suggest to start spreading awareness (e.g. linking to Browser-Update.org or Browse Happy), and then progressively drop support for older browsers as their usage decreases.
</rant>
@UltCombo I agree 100%. Unfortunately, for my current project, that analysis has been done and the result is that the single-digit percentage of IE8 people using the site are indispensable. The vast majority of the scripting we do is for simple interactivity features that don't really rely on cutting edge JS, but even the syntactic improvements of ES6 would still give us real productivity and maintainability benefits. I guess it would just be nice to know what features are safe.
@acjay yes, I understand that many big projects can't take dropping browser support easily, but it is nonetheless hard to make use of the latest technologies while still concerning older browsers -- even more so on a project such as Traceur, which consists mostly of experimental implementations of non-final specifications, subject to change anytime.
I believe the development cost to apply progressive enhancement, or to even keep track of which features are ES3-safe, weighs way more on highly volatile projects such as Traceur than in the usual common use cases.
Well, my previous post just advises developers to weigh the complexity/error-proneness vs benefit of supporting older browsers, and I believe the Traceur team will have to do the same (if they didn't already).
Best of you luck on your endeavour. =]
yes. as some of you have talked about it already, It may be not traceur's goal. supporting yesterday's browsers.
but we still have people using browser < ie8. in fact, they're 20~30% of desktop traffic. You will know It is a huge number.
so why don't we let traceur have option to targeting es3, which works what it can be done safely, and issues transpile error on impossible features(getter/setter, enumerable property...) like typescript does.