Hacker News new | ask | show | jobs
by wackget 1633 days ago
Finally. I am so happy someone else noticed how much of a garbage fire Twitter is when you limit (not even block) JavaScript.

I use uMatrix and a hardened Firefox profile so I notice pretty quickly if websites are poorly made. Spoiler: the vast majority are, and the big players like Twitter, Facebook, Google, etc. are absolutely the worst offenders.

But Twitter is so frustrating because of exactly what the article's author says: they re-invent everything, including the text in the Tweet box. As soon as you start typing a tweet it gets converted into some horrific swamp of HTML elements which starts to break really fast if you limit JS as I do.

At some point the concept of "graceful degradation", which used to be taught as an essential part of high-quality web development, was totally abandoned.

I feel like I'm transitioning into "old man yells at cloud" more and more every day, but the web's going down the shitter real fast.

4 comments

> when you limit (not even block) JavaScript

Speaking as a web developer, blocker of JavaScript by default, uMatrix user, and extensive user script writer: limiting is vastly harder to deal with than blocking; your “even” is unjust. “No JavaScript” is easy to detect and cope with (even if it’s just to respond “nah, dude; JavaScript me, bro”), but coping with blocking some JavaScript requires you to consider what could be blocked and what to do about it in each case.

If you’re talking third-party scripts, then sure, developers should handle failure to load scripts/XHR/fetch, simply for normal people’s sake; for analytics especially there are well-trodden paths, though certainly occasionally you encounter sites that don’t tread them. (Note that when I say “third party” I mean the social concept of third party, not “different origin”, because it’s common to load first-party scripts from different origins—CDNs, &c.)

If you’re blocking things at a finer grain than first-party/third-party divide, then you should expect things will often blow up. It’s not particularly reasonable for them to detect and work with your meddling.

A few years ago I had to use Dropbox from time to time. It was always fun whenever it dropped my session (never for any obvious reason) and forced me to log in again, as I had to tweak my whitelists almost every time as they’d have shifted their CAPTCHA thing around or added a new CAPTCHA service (they had three or four going at once!) or something. It would take literally twenty seconds after pressing the submit button before it would decide to actually let me in, even with no intercepted requests. Not sure what was going on with that. And if anything was blocked, then it’d probably just hang indefinitely, often even without any exception ever being thrown in the console! Definitely not a good experience, and they should detect that a necessary script failed to load and notify you, but eh, I reckon I brought it on myself by using fine-grained blocking.

I'm sorry, but the vast majority of websites handle umatrix and ublock plus assorted other privacy tools, just fucking fine, often when I haven't enabled any javascript beyond the same domain stuff.

Then there are the sites that are kinda/mostly broken until I enable a couple of obvious exceptions I should probably have universally enabled. That's fair.

Then there are the sites that it takes a minute or two of messing around to get to work..I have to whitelist 10+ different domains for them. That's irritating.

Then there are the sites that I can't seem to get working properly at all, and eventually give up and just open in a private mode tab in Safari, because I trust that combo the most.

Parent commenter was right: Twitter is a dumpster fire that throws a hissy fit at the drop of a hat, in way very few other sites do; it's almost like they do it purposefully out of spite.

It's a fucking glorified PLAIN text messenger. There is no excuse for the level of complexity and unreliability of the code they throw at browsers, from such a large organization with such supposed high-level engineering talent.

Twitter works fine with JS/XHR enabled in uMatrix for first party and *.twimg.com. It’d be better if they didn’t bring twimg.com into it, better still if they supported operation without client-side scripting, but I don’t observe the problems you’re reporting.
The new YouTube redesign is the best. It now randomly decides you're offline and doesn't bother fetching anything when you click on links.
Imagine going into a board meeting with the senior leadership of any one of these companies and saying "we need a major initiative to make our site more accessible to 20 people who block all Javascript and probably have contempt for us." Then tell them how much it will cost.
This is exactly it - by limiting javascript you are choosing to be in a minority of users and then demanding to be catered to. You're just setting yourself up for disappointment.

These are businesses - they write code to generate profit. Their support of limited javascript has no impact on profit, so they won't do it.

Or as developers we be good stewards towards the web and the feature isn't complete until it's tested to at least not completely bug and give an error message when a script or resource isn't loaded.
If you get to unilaterally make technical decisions in your company with complete disregard for return on investment, then be my guest - but I'd look for other jobs because companies that prioritise developers complaining over profit tend to go bankrupt.

The rest of us don't want to be fired.

I'm not saying make it all work without JS. Provide a noscript tag and actually handle your error states. These are basic best practices. If you get fired for not swallowing errors, I don't know what to tell you.
But that's not what the article is complaining about - they're complaining that most of the UI functionality doesn't work without JS. To make it do so would require a progressive enhancement approach, which is not going to sell well if the only benefit is an extra 0.1% audience reach.
You're not going to delete a dll or not install DirectX then get annoyed when the software fails.
I'm not familiar with Windows but I'm going to assume the OS will at least give you an error. A lot of websites are just blank and/or swallowing errors without giving feedback.
Oh this is true. Rereading your point that an error should be present is something I agree with.

It feels more domain to the browser. Have some sort of required flag.

That's because nu-internet isn't meant for us. It is meant for the consuming masses. The iphone really did kill the free (as in freedom) internet.