a) has decent browser compatibility b) is not a rat's nest of shims and polyfills c) could be maintained by more than one person
a) has decent browser compatibility b) is not a rat's nest of shims and polyfills c) could be maintained by more than one person
I don't understand the logic that goes from "Modern browsers with fast JS engines make fancy web apps practical" to "let's make sure our fancy web apps run in old browsers with slow JS engines."
Are we saying in order to go fast, we should eschew the progress we've made in compatibility to accomplish it?
If you are committed to doing everything in JS, then you have two choices:
1. Deliver a degraded experience to modern browsers and a terrible experience to older browsers.
2. Deliver a good experience to modern browsers and no experience at all to older browsers.
Depending on your business model, #1 may be the best choice. But if you're trying to compete with native apps then #2 is the only thing that makes sense.
I know it is possible because I have done it. Sadly, few others have done it probably more because of the FUD surrounding mobile web than for any real reason (the best one I have heard is that mobile web can't handle animations well.) The truth is mobile browsers are better at handling JavaScript and DOM today more than ever, and continue to improve. Maybe today mobile web isn't ready for prime time, but tomorrow will be here soon.