Everyone has JavaScript, right?
kryogenix.org
kryogenix.org
[citation needed]
> Does their ISP or mobile operator interfere with downloaded JavaScript? Sky accidentally block jQuery, Comcast insert ads into your script, and if you've never experienced this before, drive to an airport and use their wifi.
Ever heard of HTTPS?
> Do they have addons or plugins installed which inject script or alter the DOM in ways you didn't anticipate? There are thousands of browser extensions. Are you sure none interfere with your JS?
If the user installs an extension that breaks the web, it’s the user’s fault, and the developers should not cater to them.
Ever heard of SSL MITM Proxy? Required by law (and corporate compliance departments) in many industries.
Also, cloudflare. They are the MITM for what, like 80% of the internet now?
They provide the device(s), they have access to it. Countless ways to mess with the trust.
If anyone thinks they're safe from their employer due to SSL, lol.
> Does their ISP or mobile operator interfere with downloaded JavaScript?
In any case, if some rogue corporate proxy breaks your website, then either they pay you to fix it or you tell them to get lost.
Could you please provide details about this?
And in that case, the proxy can both, manipulate the JS as well as the HTML, so the argument of the linked page is still faulty.
I have no idea why this works so well, but I haven't found another way (other than getting off of my VPN) to get past this screening page.
Please give source for that claim where Cloudflare implements man-in-the-middle attack.
Police states and "internet security" mal^H^H^Hsoftware may MITM stuff. If you're actually doing business with customers in those police states, you probably have someone local who can test. "Internet security" software is unlikely to break things just to insert ads (as the ISP mentioned in the post did over plain HTTP).
The articles point seems to be: if you're writing a webapp or anything interactive, then a mere 99.999% of visitors will be able to use the content.
It does not break the web. It may break single sites that were written on naive assumptions; I see a lot of sites break because my extensions do not allow loading analytics libraries. This means their js was dependent on this libraries being actually active.
I'd say this is case a case of _unbreaking_ the web.
Some users send me email that they cannot see images on my website. They have adblocker rule where they block all images which contain ad.
So dsa231dfsaade.jpg is blocked. And you say that is website developers fault?
Can you reword your comment?
In the real world, anyone who is as dismissive as you is likely in a position where they’re going to have a boss telling them to pull their head in. The reality is the vast vast majority of users won’t know have a clue how ‘disrespectful’ the browser extension they’ve installed is of ‘the wishes of the developer’ or whatever, and a poor customer experience is a poor customer experience, no matter whose “fault” it is.
I don't think that point it falls under "written on naive assumptions"
https://github.com/facebook/react/issues/11538
the issue says closed but you can easily catch it in various sites and use cases.
Likely so. My normal default is to browse the Web without JavaScript enabled, I've worked the Web this way since the 1990s. The reasons are:
(a) The web runs just so much faster without JS, also those jitters, pauses and delays caused by JS simply disappear. If people knew how much faster the non-JS mode actually is then many more would partake of it.
(b) These days, many web pages are enormous, it's not unusual to see pages that are over 7 or 8MB in size, they're so slow that one can just about have a coffee break before they load. Disable JS in one of these pages and its content can be well in excess of an order of magnitude smaller.
(c) Without JS, ads are almost a thing of the past. I don't bother to run ad-blockers simply because I don't have to. Without JS ads simply don't download.
(d) Without JS much of the online spying and tracking simply disappears. Those who want to track users can't help themselves from using JS (it seems to go with the territory).
(e) Without JS, annoying audio and videos don't start automatically. That's good because if I want to watch the content I can just copy its link to say NewPipe and have a much more pleasant experience.
(f) Without JS, pop-ups and messages such as those that ask for permission to accept cookies don't appear, similarly so for those asking for donations. Many web operators wait for a few seconds before displaying these messages, by that time one's already reading page content so the message is aimed to deliberately distract the viewer. Notable offenders are the Guardian and Wiki especially during its money drives, but there are thousands more just like them.
(g) Web browsing sans JS is more secure, there's less chance of receiving nefarious scripts etc.
It's not JavaScript that's the problem, rather it is web developers who actually abuse it to end users' considerable disadvantage. Turning off JS is my attempt to level the playing field.
People ask how I manage with sites that have key functions that require JS to work and without which the sites are useless. Several answers: first, sometimes I do have to turn on JS but it's certainly more the exception than the rule. To turn JS on/off I just hit a toggle button on the browser that invokes say the QuickJava add-on (and I never bother using 'cantankerous' browsers such as Chrome, Edge, etc.).
Second, when I come across a website that only displays a blank page if JS is disabled and or requires JS for some key function to work then I simply move onto somewhere else! If any web developers who adopt such practices are reading this then let me tell you categorically that there's nothing else that will get me off that site faster than that, in a sub-second I'm out of there. QED!
Third, people say I'm missing out on many web enhancements by turning off JS. Often that's true but in most instances I just do not want them. I find most pages that use these visual enhancements distracting and or outright annoying. When I read a book I do not expect everything on the page to be continually popping in and out, same goes for webpages. What's nice about HN's website is that its pages are static and they carry no superfluous junk. That's how I like it. In my opinion prerequisite training for web developers ought to be a compulsory course on human ergonomics (they'd then perhaps better understand what Web surfers actually want to view and then design their pages accordingly).
Finally, I'd add that I've noticed repeatedly over the years that websites with the largest size pages and those which include the most superfluous amount of junk are also the sites whose content I find least interesting. The fact is there's just so much content on the web that if 99% of websites were of the type that I've no interest in visiting then I still wouldn't have time to visit all the others in my lifetime (I can afford to be very choosy).
In essence, on the Web it's easy to set one's own rules and be choosy about what one views. And I'm sure the reason for why not more act as I do is that many have been forced into using the narrow webcasting as offered by the big internet giants. They of course all require surfers to have JavaScript enabled.
Many of the arguments are just plain stupid. The JS hasn't loaded yet? So what about images? If your HTML document loads, your JS will too. If you're unsure about that, don't load from sources you don't control.
And if a MITM injects code into your JS, then they inject that into your HTML as well...
My dad is an avid reader of news articles on his iPhone. That's mostly text with some photos here and there, ostensibly anyway.
Whenever I happen to see how much traffic he downloads over the better part of a working day, somehow he racks up almost if not over a gigabyte. And that's with iOS set to data saving mode.
1GB. For what should be mostly textual and static image content. What the sincere fuck?
The only reason people need phone data plans with sky high data speeds and caps, aside from streaming, is because malvertisements and JavaShit waste away most of it. This is fucking cancer.
Use of react and fetch is not unreasonable in 2024 folks.
Most websites are inherently text, most interactions are form-like. Unless the website is a web application, which does complex and dynamic things, JS seems like it makes websites worse. JS riddled sites are slow, have poor usability, and often are over-animated to the point of visual distraction.
I'd say that most interactions are link-like, but that proves your point even further.
As a developer, I don't have the authority to decide I'm going to spend resources on making the site work without javascript. I can sneak in some extra hours, but continuously testing if the site works without it, and getting other developers to do the same is not a small task.
Managers? They are not going to read this.
As an experiment I tend to disable JavaScript periodically. It is amazing how fast and responsive applications become. The amount of cruft that is downloaded is insane! Typically my experiments end after a month or so, because a lot of website don’t work _at all_ with JavaScript disabled.
To achieve this I make use of uMatrix, with the global default being JS disabled, and CSS disabled. Then for sites where I consider it worth the cost, and value the content, I selectively enable JS.
Now one other reason I could give for why not JS would be screen readers, I imagine in content does not render without JS being active, those readers may well be rendered inoperative. Or at best very poor to interact with.
The answer is no. Absolutely not.
If you do not have javascript then I don’t want you as a user. I don’t care why. Javascript or no service.
I wonder how they even manage to browse web daily. Or they have to send daily hate mail for developers...
That's all I'll support - if any user has a problem because they are on an old version, they should use some other website instead of mine.
Lack of JavaScript or latest web browser is a user problem.
It means not supporting 11% of iPhone users and 18% of iPad users [0]. That's aggressive.
Adoption of evergreen browsers is also slower than that. Chrome 124 was released this week and even though 123 has been out for a month, the majority of desktop users are still on 122.
Hacker News is a very good example of that done right. I have JavaScript disabled and I can use the site just fine. The only thing I can't do is collapse comment threads.
JS came out a year before CSS for Pete’s sake. It just turned 28. It’s finishing its residency and can rent cars. I get why people didn’t like it nearly 30 years ago. I didn’t because it didn’t run well on the Amiga I had back then. But complaining about it today makes me imagine someone complaining about “why don’t these so-called ‘web’ sites gracefully fall back to table layout for those of us who can’t or won’t use CSS?” I understand the fundamental difference. I just don’t think it matters anymore.
as a user i like websites that are interactive and fast to respond. from my experience that works better if the site is done in a frontend framework and built to reduce roundtrips to the server.
i am on a slow connection, and when on hackernews for example on a slow day half the time the pages don't even load. so i sit there wanting to reply to a comment and i can't because first the reply link fails, and when it finally loads, submit fails.
had hackernews been written with a frontend framework, then i could click reply and submit without internet access, and the page could store my comment until internet is back and send it without me having to babysit it.
even just plain reading would would be better. with js new comments could be loaded in the background and they could be added to the page and marked as new without reloading the whole page. a much smoother experience than having to wait for a reload.
i don't know what kind of sites you are building. maybe in your domain this kind of example doesn't apply, but claiming that javascript is bad for users across the board is just plain nonsense. most users do not care whether something is done in js or not. they care that it functions well, and there are cases where javascript provides the better functionality. (submitting this comment took 1.3 seconds + another 300ms to load the updated page. and that's fast. with js it could happen in the background.)
> had hackernews been written with a frontend framework, then i could click reply and submit without internet access, and the page could store my comment until internet is back and send it without me having to babysit it.
Which websites do this? I have never seen nor would expect such a behaviour. Would you expect it to still post if you close the tab? What if you close the tab, but open some other page on HN? Would you expect to see it in your profile?
> even just plain reading would would be better. with js new comments could be loaded in the background and they could be added to the page and marked as new without reloading the whole page. a much smoother experience than having to wait for a reload.
So when you’re on a slow (and possibly traffic-limited) connection you would want the site to hog the channel with update-fetching? Loading the new comments, shifting everything as you read it? This might be OK for linear flat comments, but for discussion trees this just sounds like a nightmare, again - who does this?
if you have a fast connection then it is hard to imagine how grating it is that every click takes a second or two to resolve.
i hate waiting for stuff to load. when reading hackernews i frequently reload the page to get the new comments. and that always takes more time than i am comfortable with. it takes long enough for me to often end up focusing on something else. preloading comments does not take much bandwidth. less than reloading the whole page. even if i end up not reading the new ones. and it doesn't have to happen more than once a minute. maybe even less.
stackoverflow is another example that could be improved. it hides some of the comments under each answer, and when i click to reveal them it takes 1-2 seconds for them to show up. i don't know why they do that. they could load all the comments at once and hide some of them so that they'll show up instantly when i click.
Links to an 11 year old article.
[1] https://web.archive.org/web/20240000000000*/https://www.kryo...
So +1 to substack for working fine without JS enabled (even for subscriber-only posts) but if someone from there is reading this, can you take a look at what's causing the problem in the first place?
At least once per day, it's insane. I am not a front dev, so I never really thought about it. I often just click a news website, and stop the connection manually to read it, instead of continuously waiting for the "proper" response
i browse the web with firefox + ublockOrigin with 3rd-party {scripts,frames} blocked by default. it is a shame how many websites will show their main asset (text) not until i allow some (or all, if in a hurry/impatient) foreign site java script.
The post touts for an 'escalator' pattern, which is a good pattern to follow (for many things unrelated to web as well).
Your average JS engineer needs to have all the browsers stripped from their machine. They need to be given the following VM's: 1. tool bar riddled version of windows that only has 8 gigs of ram and at lest one unreliable key. 2. A chrome book, but with all the filters of the nearst school system. 3. Chrome, on linux, 512mb of ram.
And they get what ever the low end Samsung J series its a phone that makes calls as their cell (cause no cheating).
I give that about 3 months till the web is fast again.
"Just get an iPhone"
Like... my dude, you rolled out of uni and started your own business and started out making at least double every month than normal people and you buy a new phone every 2 years. This is not normal.
Our target customer is very literally the "average consumer", so this is the dumbest take I've ever seen.
I try to minimize garbage collection and optimize React rendering but React is honestly quite difficult to get right when it comes to details in performance, even after a few years of experience :(. It doesn't help that I explicitly don't get time to focus on these kinds of details.
I'm using a motorola android i bought three years ago for around $200 and it's absolutely fine for browsing the web and messaging. I could justify buying an iPhone (after all it comes down to a dollar a day over two/three years), but I don't feel like I have to.
Try to access the Internet on modern Germany while crossing through the country on train.
I can assure that Apple's RF engineers working around here are suffering the same issues.
What could possibly be so important to be done that can not wait until I am in a place with a faster connection?
Not everyone is you, and some people like to keep themselves busy reading stuff online.
OP was saying about devs needing to build their product/applications/websites on underpowered hardware, presumably as a way to have the same experience as most people. That's reasonable, provided that this is the context where people will use your product/application/website. The context you are giving (slow phones on spotty connections) is so specific that becomes irrelevant for any project manager that could be interested in evaluating the merits of the claim.
So, yeah, I don't know why you seem so upset about my question, but if you detach yourself from the case, you'd see that your response to "are slow phones really an issue?" does not make a strong argument.
so no, adapting my website so that it works on a german train is not an important goal. i would even argue that if germany is my audience it is counterproductive. demand better internet.
but if my target audience is germany, i will probably not focus on the tiny fraction of german train travelers.
https://news.ycombinator.com/item?id=39729057
Most people don't live in the first world countries, don't have cheap access to high-end devices like a half a decade old android flagship (and 8.4% of people live on less than $2.15 a day), and any website relying on JavaScript for basic features literally won't be able to LOAD for them.
Citation needed.
RTFA
(the one I linked to)
where internet is available it is usually not that slow either because it doesn't make sense to build a slow internet. i mean, it may be slow compared to what we are used to but even 1Mbps is enough to load at least text oriented websites, even with javascript. those companies do need to offer a service quality that people are willing to pay for. slow internet is a problem of old infrastructure, but developing countries tend not to have old infrastructure to begin with.
Walmart can’t afford to design their website to Louis Vuitton’s audience.
I wouldn't go as far as making the language German but.....well actually.....yes put the phone in German as well!
1. Use of JS to reimplement standard HTML widgets. This has broken my screenreader more times than I care to remember. 2. All of this user-irrelevant garbage, like the dialogs, the social media buttons, and so forth.
I remember a few years back trying to pay my electric bill. Yes, I was using a JS-capable browser. I couldn't actually pay my bill, but there were plenty of "follow us on Facebook" and similar. Like seriously, folks, I just wanna send you money. Really, this should even be something I could do without JS.
Another example: we do online shopping at https://www.fredmeyer.com. Their website is absolutely terrible, with all of the busyness, some of it user hostile. Seriously folks, I just want to give you money for product, not follow you on facebook.
Some sites get it really, really right. I play chess on lichess.org. That site requires JavaScript. And I don't see any way that it could possibly be avoided. But it works beautifully with my screenreader. It's snappy too, even under Firefox on a Raspberry Pi. I used to be a hard core "screw JS" guy. I've softened my stance, because I know it can be used correctly and to great effect.
Just this little reminder: you do not need a privacy consent dialog, if you don't abuse private data.
No external trackers or 3rd party cookies? No data sales to third parties? No shady tactics of your own? You can skip the dialog.
This post is great in terms of making you aware that even in near perfect conditions JS might be not available, but the impact and solutions should be considered on a case-by-case basis.
i don’t understand the hate for TS. after the initial learning curve, it has only made my life easier. i can’t imagine making a large refactor on a JS code base - the fear of breaking some unknown contract keeps me up at night
I won't defend the mess that are web build systems, but your assertion that things need to be right "for every packet" is false. And while I've had no trouble debugging TS code, you could always just debug the generated unminified JavaScript instead.
And debugging JS is one way of doing things. But when I write code, I want to debug that code. Not the transpired stuff. It just adds a layer of annoying complexity, that otherwise wouldn't be there.