Your position is ridiculous. HTML5 was designed in part to make it easier to create applications that run in your browser. So yes some people will be writing applications that run in your browser. It's like expecting flash sites to work when you don't have flash turned on. Either be happy with your choice or turn it back on. Don't expect the rest of the world to cater to your fringe browser settings.
Web pages should use JS only when necessary to enhance the user experience.
Web applications can go hog wild and load 10MB of JS libs.
The problem is that hosts have too much control over client's experience. Frankly, most of the works designers today do on the web is work that should not be done - 90% of websites would be infinitely better if they only sent text with lightweight semantic annotations and a list of available actions. The user should be able to explore the data in whatever way they please, and not be shoehorned into a single prescribed way of interaction.
That said, your point on incentives is spot-on. People making money on the web benefit from any marginal increase of control they can get - so the whole thing turns into a typical race to the bottom. And then, they also can (and do) use their money to influence the development of web technologies to make it easier for them to make more money. This process sadly isn't any different than regulations being influenced by businesses to benefit them instead of society.
Is there a solution? I don't know. Most people don't even realize how much of their own time and potential they waste by accepting the "status quo". I hope someone eventually develops a browser with sole purpose of unfucking the Internet. Some kind of a cross between links, Emacs and the Reader Mode from Firefox.
Search engines typically don't run JavaScript, so relying on it can be bad for SEO, and in some cases accessibility.
Considering iOS devices don't support Flash, and popularity for Flash is waning, I think it's even worse to suggest a website should cater only to those who can run Flash.
Not really. Nobody is expecting JS code to work without a JS interpreter being available/enabled. Instead, they're expecting a page of text + images to work without any JS code being required.
In your analogy, nobody expects Flash objects to work without Flash. Everybody expects text + images to work without Flash objects being required.
<html> <body> <form method="post" action="https://webwewant.mozilla.org/share/"> <ul> <li><label><input name="issue" value="access" type="radio"/> Is available to all</label></li> <li><label><input name="issue" value="freedom" type="radio"/> Promotes freedom</label></li> <li><label><input name="issue" value="control" type="radio"/> Puts me in control</li> <li><label><input name="issue" value="opportunity" type="radio"/> Creates opportunity</label></li> <li><label><input name="issue" value="learning" type="radio"/> Inspires learning</label></li> <li><label><input name="issue" value="privacy" type="radio"/> Safeguards privacy</label></li> <li><label><input name="issue" value="nojs" type="radio"/> Works without javascript</label></li> </ul> <input type="submit" value="Submit"/> </form> </body> </html>
There's no reason why this page couldn't work without JavaScript. It's a poll and a display of the results.
Sure, enhance it with JavaScript: that's great, and it's cool, and it's useful. But don't force people to execute code when all they really need to do is POST a form and then GET a page.
People who do this are wrong.