Yesterday she12 found a simple way to inject JavaScript into their theme on the Midnight Pub [1]. It's only a few lines, no dependencies. They randomly show an ASCII logo she12 created on each page load to those who have added the script to their theme. The pub doesn't have that script by default, but those who chose to add them can enhance the atmosphere without breaking it. It's purely aesthetic. The place works well without it. But with it, it's a little more fun. It's been a while since I haven't been so excited about a tiny bit of JavaScript.
Lately I decided to remove JavaScript from most of my projects. It's an added constraint that brings a ton of benefits like simplicity, maintainability, robusness, speed and much more. Without JavaScript there's no way (well, actually there's CSS...) to trick a behavior, to fake an element on a page. What you see is what you have. And what you have, if designed correctly, is much more portable. Chances are you can even run it on 20 year-old browsers and it would work. But I don't worry so much about 20 year-old browser. What's more important to me is browsers 20 years in the future. If we stick to a subset of HTML and CSS, then there's a good chance they would be able to support our site. I couldn't speak with so much confidence over an SPA written today. There are so many moving pieces.
So no JavaScript at all? Well, not necessarily. I'll still continue to ship my project without JavaScript, and I encourage you all to do it when possible. But to alter your own experience on a site, JavaScript can be great, just like she12 did on Midnight. People could decide if they want a JavaScript snippet to be added to the page or not. Those snippets can be shared through bookmarklets. We just click on them and they are installed on the site. Anyone could write those bookmarklets, including the site's creators themselves. The core site stays simple HTML+CSS, and the experience can be gradually improved in an opt-in way for anyone that wants to.
EOF
From Dusk's End, Nightfall City
m15o@posteo.net