29 ms·
A day without JavaScript
- rightnow 9y agoWould be intresting to see what would happen if we turn of HTML.
- brightball 9y agoSay what you will about jQuery, but it made graceful degradation easy (and encouraged). I do miss the days when people considered JavaScript an enhancement and not a dependency.
- pmlnr 9y agoIt was called progressive enchancement[^1] back in the days and it was good for you. [^1]: https://en.wikipedia.org/wiki/Progressive_enhancement https://en.wikipedia.org/wiki/Progressive_enhancement
- robin_reala 9y agoIt still is?
- sametmax 9y agoVue.js allows to do just that. But also allows to do things like react and angular 1. And is only 30k.
- rwmj 9y agoI found that Google actually works better without Javascript. It's much more like the Google of old (c.1998). One significant enhancement (w/o JS) is that you can type something in the search bar without losing your current results while you're typing.
- to3m 9y agoIf you hadn't noticed: can switch this off in the search settings (cog button, I think). Expect to have to do it again every couple of weeks though...
- dougb5 9y agoTo do this without turning off JS, under Settings > Search Settings > Google Instant Predictions, select "Never show Instant Results"
- est 9y agoI turned off cookies and js for encrypted.google.com, used it as default search engine. works like a charm.
- russdpale 9y agoI generally agree with what he is saying, but the web has moved beyond the point where its reasonable to expect websites to have JS fallbacks. It is just too prominent now a days. I've always been a JS hater, though I have to code it frequently.. However, with that said I find the arguments against the language becoming more and more obsolete as the years go on.
- sametmax 9y agoIt's not becoming obsolete. Because of legacy code, docs and the fact the old behavior is still valid JS, beginners are still completely lost because of this bad design that never been fixed, only compensated by adding things. Now add the fact that: - the ecosystem is exploding like a holy grenade, only not as funny - having to learn what "rebinding this in the closure's callback" is still core to the path to the language understanding. - you have so many ways to do things, especially asynchronously, and yet no simple way to do simple stuff like removing an item from an array - pre-processors are used everywhere and you have so many of them - safari is becoming the new IE6 We are still very much paying the price of the terrible language that is Javascript.
- kevin_thibedeau 9y agoIt's not unreasonable to expect hyperlinks or images to work without JS. Fancier stuff sure, but basic navigation through a content only site should be functional without it. This is what HTML does and you have to be profoundly lazy to screw that up.
- scaryclam 9y agoThis is really the problem I think. It's not as much fun to create something that functions properly. The best FE devs make sure that they create functioning web pages first. Then they go ahead and make them better with some JS. Only the least competent/laziest developers create JS only sites (this is discounting things like JS games etc where there's no text or images, or pretty much anything that can be done in HTML). I find it frustrating when these devs try to paint the web as something more advanced, or somehow different (seriously, it's not a special snowflake) in order to try to validate their preferred way of working. It's unprofessional to their employers, it's a disservice to themselves and it's a big "screw you!" to their users.
- spiderfarmer 9y agoOne of my clients loads a 4.5 Mb bower.js (including Angular with a lot of components and jQuery), they also include an extra jQuery script, a full jQuery UI and several other scripts on each pageload. Nothing is minimized. The bower file alone has 300k in comments. The CSS file is also nearly 1 Mb. It's just a simple website with some forms. They have 2 developers working on the site, a scrum master, a project manager and 2 testers but somehow they can't find the time to find out which legacy code they can remove. It's only after I pointed out that they have an exceptionally high bouncerate on their (expensive) Adwords traffic and the slowest pageload time of all their main competitors that I managed to get some priority to optimize their site. Serious question: are there any tools that can scan a full website for unused code and unused CSS?
- JepZ 9y agoNot really an answer to your question, but this might be useful: http://youmightnotneedjquery.com http://youmightnotneedjquery.com
- sametmax 9y agoYeah. Except you need to do Ajax and fetch doesn't cut it. So new lib. And manipulate the dom with something better then the browser API or you loose your mind. So new lib. Then normalize browser events. Oh wait, you can do that manually. But you are writing a new lib. Eventually the code will grow to be the size of jQuery anyway. Only not as well tested, documented and cached.
- shakna 9y ago> Yeah. Except you need to do Ajax and fetch doesn't cut it. So new lib. Why doesn't fetch and its polyfill cut it?
- sametmax 9y agoPolyfill. So new lib. And even then. You need to encode params manually. And of course no middleware, so for special decoding or repeating headers, you end up writting a wrapper.
- JepZ 9y agoWell, while I like what you can build with JS, I often don't like what people build. For example, npm makes it so easy to import megabytes as a dependency to your project while you might only need a few kilobytes. And some devs simply do not seem to care about that. On the other hand, JS allows us to build great user interfaces which better to use than our old school point and click adventures we use to have. And if you do it right the performance is also ok, but it is also not so hard to fail and ruin the whole user experience by rendering the scene twice every frame ;-)
- marssaxman 9y agoI actually liked the old point and click adventures better, because you always knew exactly what to expect. There was a fixed suite of tools provided by the browser and that was that. Now... well... every dumbass designer with a bright idea is free to inflict some bit of novelty on you. Fads sweep through the design community and suddenly old sites which worked fine have to be "updated" to work differently, and you have to learn them all over again, for no benefit.
- progx 9y agoA day without my car: https://www.google.de/search?q=horse&source=lnms&tbm=isch&sa=X&biw=1758&bih=1152 https://www.google.de/search?q=horse&source=lnms&tbm=isch&sa... ;)
- scaryclam 9y agoA day treating JS like a car: https://www.google.de/search?q=horse&source=lnms&tbm=isch&sa=X&biw=1758&bih=1152#tbm=isch&q=toy+car https://www.google.de/search?q=horse&source=lnms&tbm=isch&sa... ;P
- shakna 9y agoThe fact that so many sites fail to even make use of a noscript block (like [0]), boggles my mind. [0] https://www.google.com/chrome/ https://www.google.com/chrome/
- TeMPOraL 9y agoRe [0], note that Google Maps on the other hand seems to handle lack of JS very well. I guess it can be blamed on different teams in the same big company.
- tombrossman 9y agoIf by "seems to handle lack of JS very well" you mean "does not work at all", that makes sense. Not being sarcastic either, it seems they decided to take an all or nothing approach and force the user to enable JS to use Google Maps, or instead see this page: https://i.imgur.com/Qc156Ds.png https://i.imgur.com/Qc156Ds.png Maybe the maps product wholly depends on JS for all functionality?
- TeMPOraL 9y agoYeah, my point is that they put actual effort to show you a nice-looking page when viewing Maps without JS enabled. Compare to the Chrome download page, which blanks out. This is orthogonal to whether or not a service can/should work without JS enabled.
- peteretep 9y agoNoScript plugin keeps JS off by default and you can turn it on as needed or whitelist certain sites. Highly recommended
- digi_owl 9y agoDunno how well it will work after Mozilla drops support for XUL extensions...
- tombrossman 9y agoNoScript definitely works without XUL support and is the fourth most popular extension listed on the compatibility page here: https://www.arewee10syet.com/ https://www.arewee10syet.com/ Tested and working, for a while now.
- blowbaybestban 9y agoe10s is multi-process, I thought, which is a different animal to the new plug-in framework they are pushing. I'm pretty sure I read no-script will have problems, but that might have been with regards to tree style tabs instead (which is shown to work in the multi process branch)
- scottmf 9y agoIt's 2017. All modern browsers support JS and it's no longer reasonable to expect all websites to work very well without it.
- pjmlp 9y agoThere are more places to have a browser than on desktop computers, also not everyone wants to waste battery with JavaScript junk, the <blink/> tag of the 21st century.
- majewsky 9y agoIt's also not reasonable to require JS when you're just displaying static content.
- onion2k 9y agoAll modern browsers support JS While that's true it's not reasonable to assume the user has JS enabled. Ad-blocking plugins that also block JS are increasingly common. and it's no longer reasonable to expect all websites to work very well without it. The question should be "what does work very well" actually mean? For a closed application that requires the user to log in I don't really care. Users won't use the app if it doesn't work for them, so it's entirely up the developers to build something the users want. Talking about web applications is silly. For a public-facing website though, I would expect it to at least work without JS even if it doesn't necessarily present as good an experience as it would with JS (which is nothing new, it's just progressive enhancement). The problem is web sites that present an essentially a meaningless page (blank, no content, populated but broken, etc) to users who have JS disabled. That's where work needs to be done.
- HappyTypist 9y ago> That's where work needs to be done. Why? Instead of building for 0.5% of users that can just enable JavaScript, why shouldn't I invest the time into building a new feature, writing more unit tests, or writing an app for Windows Phone?
- 9y ago
- nigma 9y agoI turned off JavaScript and Cookies for all sites a few months ago and only whitelist (or open in another Chrome profile) when they refuse to display or need an authenticated session. There are some sites that require JS to render, but the great thing is that majority of pages I visit work just fine as plain html/css. In general I feel less distraction from popups, overlays, ads, etc.
- TeMPOraL 9y agoI use uMatrix as a substitute for NoScript + uBlock, and while it's a pain to get some sites working manually without bulk-enabling everything on them, I'm mostly happy about it, and the web looks better for me.
- nerdponx 9y agoI use Noscript and uBlock Matrix together. It's a little annoying to have to double-whitelist pages, but they offer some non-overlapping functionality. uBM has finer whitelisting control, while NS has finer control (and better visibility) over specific kinds of objects on the page. However, neither offers a UI for whitelisting specific scripts, which I see as an important feature in the Year of the CDN. I think NS has that feature but it's hidden away in the preferences.
- aninhumer 9y agoI tried using uBlock (EDIT: uMatrix) for a while, but I felt like it was a lot of hassle, and most of the time it still wasn't granular enough to actually block the things I wanted to without breaking sites. It seemed like usually all of the bullshit javascript making sites sluggish came from the same domain as the few bits I might actually want. (Or at least needed to make the site useful.)
- gorhill 9y ago> wasn't granular enough to actually block the things I wanted to without breaking sites I don't understand the criticism: it's no less granular than NoScript. If considering only the dynamic filtering panel[1], it can be argued it's more granular given that one can block inline-script tags only, and also one can block/allow on a per-site basis. Static and dynamic URL filtering of course allows you to filter on a per-URL basis. [1] https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium-mode https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium...
- mstade 9y agoThe verdict comments on this page are golden. I especially like the NYTimes verdict: > Verdict: Failing… to not work. Sad! Delicious.
- 12345678qwerty 9y agoPeople should realise that most sites today aren't websites, they're web applications. HTML is just the template/output language. Without JS you would have to download an even crappier, probably Windows only desktop app since it wouldn't be possible to implement the logic.
- TeMPOraL 9y agoNo, most websites are still websites, and one of the biggest problem on the web is the plague of people who think their website should be an application instead. Actual web applications, like e.g. office suites, map applications, ect. are obviously extempt from "should work fine without JS" rule.
- pharrlax 9y agoAre you really trying to say there's no argument to be made that SPA + prerendering is a design pattern with advantages over flat html, even for static content? Obviously there are disadvantages as well, but it's a tradeoff, and if executed correctly it's one that, as fewer people turn off JS and browsers become better at running web apps, is increasingly becoming worth the complexity for certain use cases.
- scaryclam 9y agoI think he may well be saying that, and it's actually true. Want to make an SPA for static content? That's fine, but don't kid yourself that it's not worse in every single way. It's not a design pattern either, it's an anti-pattern.
- TeMPOraL 9y agoIn theory, maybe there is an argument. In practice, most of the time it'll be a pretty bad one. For me it's about how user-hostile those decisions are. I can understand SPA-s when e.g. the service would be infeasible if all the processing was done server-side. But more often than not, it's just laziness. The devs can deploy a sleek-looking SPA in 5 minutes with their JS toolchain, forever dooming users to download tons of pointless JS that adds nothing valuable to their experience. But who cares, today's zeitgeist is "privatize the profits, socialize the costs". Think of all those sites with articles and blog posts that blank out if you have JS disabled. There's no reasonable argument to be made that they should be SPA. That's just a case of user-hostile laziness.
- godinaa 9y agoOne thing to consider is that at larger companies, we already have a difficult enough time testing all of our site with JavaScript enabled. Netflix building a version that works without JavaScript is like asking them to build a second website, especially from a QA perspective. When you look at your users and find that .5% of them are not running JavaScript, how do you justify spending the money for that few of people?
- scaryclam 9y agoTry doing some automated testing, it'll take care of most of the non-JS testing and a lot of the JS enabled testing as well. Explority testing is another thing, that QA really does need to be involved with, but if you can't test static content without human intervention, you have other problems that are nothing to do with whether you have JS turned on or off.
- zaphar 9y agoThe reason is mobile. While only .5% of your users may be non Javascript users it's highly likely a significant percentage of your users are on mobile and not optimizing for progressive enhancement means a significantly degraded experience for all of them at various times when it fails to load or loads too slowly on a mobile connection.
- wruza 9y agoI can stand slow loads, my phone has wifi after all. But js bloatware doesn't even allow me to scroll without seconds lags and random misclicks due to delayed event dispatch. Me turned js off not because of security concerns, but because most js-only sites are not scrollable beyond the first screen anyway.
- specialist 9y agoTo help our (internal) customers better troubleshoot, we're adding HTML responses to our HTTP (web) services. Add a header, a footer, maybe some HATEOS... Starts looking like a barebones web site.
- megous 9y ago
- WorkLobster 9y agoHaving browsed nearly JS-free for the last two-ish years, aside from a bit of tweaking at the start, I have to say that it has made things a lot faster, more stable, and just much more of a pleasure to navigate. If anyone is interested, I have found that two tools make life a lot easier: - NoScript, which blocks execution of scripts save for those you whitelist. This means sites that reasonably require JS (e.g. YouTube, Google Maps) can remain functional. - A bookmarklet that redirects you to the Google text-only cache of the current page, which is great for text-based articles that inexplicably require JS to show content.
- deleted 9y ago[deleted]
- pmlnr 9y agoWould you mind sharing that bookmarklet?
- WorkLobster 9y agoSure: javascript:(function()%7Bvar%20loc%3Dwindow.location%3Bif%20(window.location.protocol%20!%3D%20%22https%3A%22)%7Bloc%3Dwindow.location.toString().replace(%2F%5Ehttp%3A%5C%2F%5C%2F%2F%2C'http%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3A')%3B%7Delse%7Bloc%3Dwindow.location.toString().replace(%2F%5Ehttps%3A%5C%2F%5C%2F%2F%2C'https%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3A')%3B%7Dwindow.location.replace(loc%20%2B%20'%26num%3D1%26strip%3D1%26vwsrc%3D0')%7D)() Glancing at it, it just seems to drop the webcache URL in front of the current page location. Credit to http://www.localseoguide.com/easily-check-the-text-only-cache-of-a-page/ http://www.localseoguide.com/easily-check-the-text-only-cach..., if I recall correctly.
- bitwize 9y agoNoScript doesn't actually work half the time; even when you whitelist a site through it the site could well remain busted. Source: bitter experience.
- 9y ago
- FLUX-YOU 9y ago>Verdict: Cartography catastrophe. As much as I hate JavaScript, Google Maps gets a pass. I'm pretty sure the code behind it is thoroughly tested. We can just suck it up and turn JavaScript on for one of the most useful tools from the internet -- how hard is it to find something that whitelists domains to run JS anyway?
- digi_owl 9y agoFirefox has Noscript, and perhaps another tool i forget the name of (never tested it). Not sure if there is anything similar for Chrome (and the various offshots/rebrands) or Edge, never mind IE or Safari.
- nerdponx 9y agouBlock Matrix has very fine whitelisting controls.
- mythrwy 9y agoGoogle maps is a useful tool. It also had a habit of freezing an older (core2) laptop I was still using completely (with Firefox). Not just the browser, the whole OS. Had to power cycle. From time to time I'd forget and go back to Google maps were the cycle would repeat. Why was I still using a core2? Because it worked fine for almost everything else. Got a better second laptop and no more issues but still... there wasn't anything wrong with the first.
- jerf 9y agoIt's probably WebGL-related. Some Firefox update seems to have fixed it for me recently but for quite a while I could only visit Google Maps in a brand new Firefox instance, because any attempt to use it in a well-aged process would crash firefox and emit graphics errors to dmesg. You may have a poorly-supported WebGL stack.
- s_m_t 9y agoAgreed, I just dusted off an old laptop with 14.04 ubuntu (or maybe it was 14.05) and tried to run a webgl app I'm making off of local host and the whole computer nearly locked up (after updating firefox too). Chrome ran it at 60fps easy with whatever version was installed on the computer three years ago. Now that I've updated to 16.04 firefox runs better than it did but chrome still blows it away.
- VMG 9y ago> For me it’s a matter of elegance and simplicity over unnecessary complexity. Simplicity is having one place where the DOM is created and managed, and optimizing for the 99% use case. Complexity is splitting up DOM rendering over two networked systems for servicing a 1% use case. Browsers are JS runtimes now. Get over it.
- hobs 9y agoNaw, I will keep running noscript and blocking script by default. If your site doesn't work, I don't care, I will go to a different one. I may be the minority now, and while there is some great use of js out there; most of it is bloated, slow, insecure, and often privacy destroying.
- saltedmd5 9y agoI honestly think the security/privacy arguments are the only valid argument against requiring JS as standard. The idea of browsers sending data that the user has explicitly elected to send (in addition to, if we're being pedantic, that the server put there in the first place) is very compelling in this day and age - only problem being that in order for that to have any meaningful impact on web security in the general case, you'd have to more or less universally deprecate JS support, which would set the web in a very different direction indeed.
- pasta 9y agoWhat about power consumption as another valid argument? Your battery will last longer without Javascript.
- VMG 9y agoIt will last even longer without CSS
- 4c2383f5c88e911 9y agoAnd most websites that work without JS also work fine without CSS. Almost like a pattern that can be found in properly built websites.
- dmitriz 9y agoIronically, this articles confirms that investing into the no-JS functionality is becoming less and less important, with those major sites already forcing the user into JS. Why then would you invest your time and money to cater to the "eccentric" 1%?
- IncRnd 9y agoThe article gave the answer to your question as speed.
- robin_reala 9y agoBecause of those 1% the large majority don’t choose to turn it off but don’t have it available for a multitude of reasons outside of their control.
- Ajedi32 9y agoSuch as... ? If you're referring to screen readers, I was under the impression that pretty much all of them execute JS these days. Am I wrong?
- robin_reala 9y agoYou’re not wrong about screen readers, no. I wrote a blog post about this last year[1] but I’ll copy and paste a list of possible reasons from it here: - script hasn’t finished loading, or has stalled and failed to load completely - application route is up, but the route to the Content Delivery Network is broken - user has chosen to install a plugin that interferes with the DOM - user has been infected with a plugin that interferes with the DOM - user’s company has a proxy that blocks some or all JavaScript - user’s hotel is intercepting the connection and injecting broken JavaScript - user’s telecoms provider is intercepting the connection and injecting broken JavaScript - user’s country is intercepting the connection and injecting broken JavaScript - JavaScript code has functions not implemented by your user’s browser (older browsers, proxy browsers) [1] https://gdstechnology.blog.gov.uk/2016/09/19/why-we-use-progressive-enhancement-to-build-gov-uk/ https://gdstechnology.blog.gov.uk/2016/09/19/why-we-use-prog...
- stupidcar 9y agoLooking forward to the author's follow up: "A day without a CPU". I am sick of lazy, profligate coders assuming that my computer is a von Neumann machine. And that just because I run their software, I am happy with it spending billions of my CPU cycles. How did we, as an industry, get to this point!?
- nilved 9y agoWhat a dumb comment. "A day without JavaScript" is to websites as "A day without a CPU" is to paper books. Documents are not software.
- howard941 9y agoAnd I was looking forward to the author finishing the slogan. Because she left it up to the end user, how about "A day without JavaScript is like a day without a brain bleed"?
- perilunar 9y agoI spent the first 6000+ days of my life without a CPU, and it mostly worked fine thanks. Even now I spend the occasional day without one.
- madsbuch 9y agoSimplicity matters, correct: What is simplest: A full website in Elm, or a website developed in a plethora of HTML, CSS each with at least a handful of libraries? Well, Elm needs javascript.. All in all: there is not need to be religious about the tech stack.
- cousin_it 9y agoHTML isn't just simple to the programmer, it's also simple in other ways which gives it unrivalled accessibility (to disabled folks, different browsers and devices, web crawlers). Not sure any SPA framework can compete.
- SquareWheel 9y agoWeb crawlers and screen readers have supported Javascript for years. This is an outdated argument. SPAs can also support traditional URLs for bookmarking, indexing, etc.
- cousin_it 9y agoHave you tried relying on SPA crawling in practice? As far as I know it's still messed up and hasn't changed in half a decade, but maybe I'm missing something.
- shirian 9y agoDisclaimer: I am, and have been for the last 5 years, a JavaScript developer My current off-work project is a web application, that is built with Elixir. I've written 0 lines of JS. It feels really good. This is my way of internalizing some of the points made here[0] [0] http://idlewords.com/talks/website_obesity.htm http://idlewords.com/talks/website_obesity.htm
- mikegerwitz 9y agoThird-party scripts aren't just a performance problem---consider privacy/trackers as well. I gave a talk at LibrePlanet 2017, where one of the things I showed is the drastic effect disabling JavaScript has on third-party scripts, graphed by Lightbeam: https://mikegerwitz.com/talks/sapsf.pdf https://mikegerwitz.com/talks/sapsf.pdf (slide 60 / pg 115, "The Web---Mitigations & Anonymity"). There's a bunch of stuff before that slide that's mitigated by JS, including things like ultrasound cross-device tracking and hardware fingerprinting.
- oneeyedpigeon 9y agoI just did the same experiment and, coincidentally, also checked feedly, only to receive a totally blank page. However, a little digging revealed an intent on feedly's part to handle this case. They have a 'feedlyBlocked' element, with content, that is simply fixed to "opacity: 0"; obviously, without javascript enabled, they can't then dynamically display that content. Another approach required. As an aside, it's very difficult to contact feedly directly, but they do have a uservoice account (https://feedly.uservoice.com https://feedly.uservoice.com).
- linkmotif 9y agoWhat is the motivation behind this mentality? Sure there are still webpages on the web, but there are also web apps. Why or even how would you expect a web app to work without JS? Why would you expect developers to spend time writing a non JS version of their app? Before taking on this endeavor, I would prioritize native apps, optimizations of all sorts, adding features, etc. Unless your app is gmail, why would you ever spend time on creating an HTML/CGI based web app? I keep seeing these posts and I just don't get why anyone cares about this.
- carussell 9y agoWhich of the sites mentioned in the article would you expect JS to be necessary to use?
- tcfunk 9y agoI find JS requirements perfectly acceptable for maps, twitter, youtube, and netflix. Particularly maps.
- scaryclam 9y ago- Twitter, is quite literally, a text based feed. There's no reason for this not to work without JS - Netflix would depend on what you're doing. Much of it can work just fine as text, images and forms - Youtube has a lot of text and the videos could be played without JS if they wanted to bother (HTML5 ftw!) - Maps can also work OK without JS (just without the additional stuff, which is fine for progressive enhancement). Google "google maps without JS" for examples of what other people have done. I'm pretty sure you could also get around JS with pure HTML5 + CSS3, but I have no examples of it
- linkmotif 9y agoSo easy to write this in a comment but none of this is true. Twitter is not a text based feed. If it was, people would still expect it to be iteractive w/o full page reloads. Same goes for all your examples. DHTML happened, and for a reason. It's not going to unhappen.
- sevensor 9y agoI negotiate the javascript issue by using two web browsers -- w3m for reading hypertext and Firefox when I want javascript. I'm fine with my bank or an online store expecting to use my browser as a thin client, but if you require javascript to present your blog, I'm going to find a different blog to read. This policy makes it pretty much impossible to use social media, because social media is basically blogs-that-require-javascript. I see this as a beneficial side-effect.
- awiesenhofer 9y agohttp://mbasic.facebook.com http://mbasic.facebook.com if you ever do miss social media this gets you a javascript-free, minimalist version of facebook. I use it all the time on mobile and get hours more battery compared to their app or standard mobile site.
- gpderetta 9y agoI switched to mbasic the first time the FB application crashed on me on android.
- jaclaz 9y agoIf I may, it seems to me like there are several possible points of discussion: 1) Javascript is bad (vs. Javascript is good and variations thereof) 2) The use a lot of websites make of Javascript is overcomplex, gratuitious, uncalled for, intrusive, etc. 3) Sites should provide some (even minimal) functionality to people browsing them without Javascript #1 is largely a matter of personal opinions #2 is a known, undeniable fact #3 is where everyone could contribute Personally I browse normally with javascript turned off since years (and I use another browser with the capapbility to display the site "fully" when really-really needed). Particularly when browsing HN, I follow given links and often avoid a lot of pop-ups, ads, and what not, and from time to time, when I find a site that won't load AND I really think that the linked to site is worth it, I use the "other" browser. What is curious is that most "new" products, Saas, whatever simply fail, showing just a blank page, that is exactly what the site shouldn't do. I would gladly accept a "You need Javascript enabled in order to fully appreciate the site" kind of message, but only if some (basic, simplified how much you want it, even text only, etc.) content is shown nonetheless. I simply cannot bear the "blank page" or the "Your browser is not supported, please download Chrome, Firefox, Internet Explorer and try again". This makes me sure that the people behind the site in the best case have not understood the "showcase" nature of a website and in the worst case care nothing about user (please read as customer) experience. So, if you create a site, consider how a part (even small) of the visitors may have not javascript enabled but they are anyway potential customers, they are somehow anyway interested in your site contents, by making their no-javascript experience so miserable you are turning them away from your site, sometimes forever, which is the perfect negation of the reason why you put the site together in first instance (to make your whatever content visible to the world).
- linkmotif 9y agoI simply will not spend time tailoring a nascent or even mature product to 0.0001% or whatever minscule percentage of the population turns off JS. If you turn off JS, you get a blank screen. Why should I accommodate your cohort? Why write unit tests for someone who takes a standardish client with above 1% market share and does something completely unstandard with it?
- 9y ago
- pwaivers 9y agoWhy don't you try browsing the web without CSS enabled? Or just go straight to blocking all HTML? JavaScript is a core part of website development, regardless if it is not the only way to do it. It is unfair to judge websites on whether they can run without JS.
- taypo 9y agoI too could not get my wife to watch Star Trek Next Generation with me.
- thinkxl 9y agoIt's funny how devs feel threatened by a non-JS trend. Even when their favorite frameworks are providing tools to accomplish minimal functionality when JavaScript is off. Server side rendering has been a big priority in React, Vue, Redux, ReactRouter, etc.
- BaronSamedi 9y agoAs a rule, people tend to support the status quo--even when the status quo is problematic. I would argue that there are good reasons for thinking that the current widespread use of JS is problematic. How, for example, is allowing the execution of arbitrary code in your browser not a major security flaw? Didn't we learn anything from Java applets and Flash? Usability is also a problem. JS heavy sites often break standard web expectations such as the back button. They are often overly complicated, favor design cleverness over usability, and don't work on mobile devices. Sure JS is great for web applications but is really needed for every single site? Whatever your view it is at least worth discussing whether or not the status quo is misguided.
- mattgreenrocks 9y agoTwo reasons: * existential: questioning the zeitgeist is taboo, especially with the amount of momentum the web has * personal: it implicitly devalues the skills some are investing large amounts of time However, once a new platform emerges (and one will), devs will have to deal with both of these issues anyway, so they might as well start.
- joshstrange 9y agoI'm not threatened but no-js but I also am not going to maintain 2 code bases or thoroughly complicate things for such a small percentage of people. Yes if you have a news/blog site you should probably support noscript but for web apps I'm sorry, it's just not worth the time and effort.
- thinkxl 9y agoThere are ways where you don't have to maintain 2 code bases. For example with react, when doing SSR, you can import your components from the client and use them in the server, allowing you to keep minimal functionality (links, text, images, etc.) when the JavaScript is off. There is one function on the server that you need to use to render any component you imported.
- gorpomon 9y agoI surfed without JS on for a long time. I found that it made the web very very pleasant! What totally breaks is when you do a complicated bank transfer or work on some older site. They often transfer you across multiple domains, so whitelisting doesn't work, as you can't anticipate what site to whitelist (when you check your points, bank.com redirects you to bankrewards.com, things like that). What's really needed is a chrome extension to let you turn JS off and on, and if you turn it on, it can be set to auto-turn off after some time. What would be even better is if Chrome offered this behavior in an easily accessible way.
- marssaxman 9y agoMy credit union's web site hilariously misinterprets my browser's portrait-mode aspect ratio and lack of Javascript as evidence that I must be using a phone, and serves me up a "mobile" site which is lighter, simpler, faster, and generally more pleasant to use than the normal one. Yes, there are a couple of extra pages to click through when transferring money from one account to another, but the pages load so quickly that it's still actually faster than the Javascript-based menus in the desktop site. Every time I set up a new browser, NoScript is the second plugin I install, after uBlock Origin. Between the two, the web is far less annoying than it used to be.
- ojr 9y agothe best pleasing ui to users is a website loaded with javascript
- onli 9y agoFeedly being completely blank might be bad, but I had that debate with me when building my feedreader: Do you actually want to use a feedreader without js? Things like marking article as read would be really cumbersome, and marking automatically what was read on screen just now would not be possible.
- blunte 9y agoThis is enlightening. Now I'm going to test each of my commonly visited sites, and the ones that work well enough without JS will get js-blocked - https://support.google.com/chrome/answer/3123708?hl=en https://support.google.com/chrome/answer/3123708?hl=en
- CoryG89 9y agoFor me, the main take-away is: > …it’s a sad indictment of things that they can be so slow on the multi-core hyperpowerful Mac that I use every day, but immediately become fast when JavaScript is disabled. > It’s even sadder when using a typical site and you realise how much Javascript it downloads. I now know why my 1GB mobile data allowance keeps burning out at least… As a developer, I understand not wanting to devote a large amount of time, catering to some insignificant portion of your audience who disables JavaScript. And I love JavaScript, but I cringe at the thought that we are needlessly slowing things down with MBs of JS that change too often to be meaningfully cached. If you are serving MBs of JS after gzip, please make sure that I am not going to have to download all of it every time I pull up your site on my phone every week or so.
- gtramont 9y ago> "(…) but I just can’t get down to less than 30 in any one window" Just like me! I also suffer from the same disease, but on a much more serious level… lol! Everything just crashed yesterday and the count was on 270+… :-o
- sdomino 9y agoI lol'ed at the part about tabs/One Tab, because I have that exact same problem... I have something like 300 tabs saved in One Tab, which is a huge improvement on what it used to be (> 1000).
- emodendroket 9y agoWhat benefit could Google possibly get out of making Google Maps work without JavaScript? The main takeaway I have here is that older applications are more likely to support a no-JS scenario, and I'd imagine that's because they can just fall back to older legacy code.
- andrewfong 9y agoAre there any JS frameworks that make it easy to build SPAs that degrade gracefully when JS isn't available? I know there's a lot of work done on making server-side rendering work with React / Vue / whatever, but I'm wondering if there's a framework available that asks for some tradeoffs in how your SPA is structured in order to maximize the amount of functionality available when scripting is off (similar to how Redux asks you to make state-management tradeoffs in order to get hot-reloading, dev tools, etc.). For example, you'd probably want, at a minimum: * By default, all code related to fetching or subscribing to data from a server is tied to URL routing. * By default, all code related to sending data to a server works with standard webforms. The closest analogue to what I'm thinking about is Turbolinks and Ruby on Rails, but I'm curious if there's some equivalent in JS-land because you'd get less context-switching when adding extra JS-only SPA interactions on top of the core JS-optional form-based interaction.
- brut 9y agoI don't have a specific answer to your question. What I think would be much more sensible is to design your website without JS, and then sprinkle it here and there. Ex: Make a request to an API upon page load. Populate tables or whatever you want. Then if JS is enabled, load a script that makes AJAX calls to the API to update the data every x seconds. That way your site gets "enhanced" by JS and is completely usable without it.
- andrewfong 9y agoYes, the issue is then that you have to write two pieces of DOM rendering code (some view code in erb/jinja/whatever to populate a template on the server, and a piece of JS to update the table afterwards). And if you want to allow JS-enabled browsers to transition between views (and different data subscriptions) without having to reload the entire page, then you'll have to write two pieces of routing code (one route in Rails/Django/whatever and another in JS). And if you want to allow JS-enabled browsers to post form data back to your server and make minor changes to the page (e.g. edit one field in a table) without reloading the entire DOM, then you'll have to write two different routes on your server -- one that processes the form data and returns the HTML for a newly rendered page, and one that processes the same form data and returns only what's changed. You could, of course, use server-side-rendering JS to DRY things up for issue one. I'm more curious if anything reduces the boilerplate for issues two and three.
- mnm1 9y agoThis is everyday for me. Just whitelist the few sites that actually need it and most of the rest are fine. This should be the default. What do I care if some images don't load or CSS is slightly off? The main content is there. For sites that won't do anything without JS, I can consider whether I want to use them or not. Mostly not. Fuck other people running code unnecessarily, without my permission, on my computer. Especially Javascript. It was an extremely stupid and costly decision to have a scripting language like this run by default in browsers... though great for doing things against the user's wishes and making money off of it. And security holes. And privacy issues. Etc etc. The irony is that AJAX and SPAs were created as a response to the request/response model that was seen as too slow. Now it's these SPAs that are unbearably slow and buggy while the request/response model has only improved as hardware and networking have gotten better. I think if more people understood how the Internet works and what is actually happening, they would also turn off JS. No chance of that happening though.
- ZeroClickOk 9y agoI fully agree. Do you stop to think flash/action script was "obsolete" because all this? and now we have the exact same problems...
- slice_of_life 9y agoMay very well be the case. All things flash are permanently disabled on my browser. If a site requires flash, I would much rather ignore the content altogether no matter how juicy it is.
- Touche 9y agoflash was obsoleted because 1) iphone didn't support it, 2) iphone didn't support it, 3) iphone didn't support it, and 4) JS replaced the non-DRM use cases (and now even replaced that).
- abritinthebay 9y agoWell that and Flash was a massive vector of security problems. Plus it wasn't very good on mobile, even when it was supported (ie - on Android it was still bad and never got out of beta anyhow)
- seangrogg 9y agoI guess I should expect that an article about not using JavaScript is written on a page with standard Google Analytics tracking and a JS bundle of... partially-minified code that is primarily used to apply styling.
- textmode 9y agoI have not used Javascript in years. I boot to textmode and use a text-only browser. There are exceptions when I use JS. When I have to use someone else's computers or manage certain accounts using the www. The later not being by choice. In the 90's, there was an attempt to allow web developers to run their code on the user's computer via the user's web browser. This was called Java applets. There was no limit to the pie-in-the-sky promises that developers were making back then. All based around the web browser and Java. Not surprisingly, Java applets failed. I think there were some security issues. Maybe. Not sure. Javascript reminds me of Java applets. I am not sure if there are security issues with Javascript. From discussion surrounding this language, today we are asked to believe there is nothing that cannot be accomplished with a web browser and some Javascript. Unlike Java applets, this time, it is real. I think. But, as far as I know, I too can do anything I want to do without using Javascript. And without using Java applets. If there are websites that truly require Javascript (see below) in order to access data, I cannot find them. 1. require Here, "require" means that the data could not be served to the user via any other e.g. more direct mechanism than through a series of steps that includes Javascript being run by a web browser. Here, "require" does not mean the choice by the website owner to use Javascript in this way or a message displayed to users that suggests "Javascript is required". The meaning here refers to technical capabilities not design choice.
- vortico 9y agoI can see the desire to disable JavaScript, but I think it's more useful to disable CSS on most sites. I'd be interested to see this article except without CSS instead of JavaScript.
- ultim8k 9y agoWhat if you have serverless spa's?
- w8rbt 9y agoI wrote a chrome extension to disable js. It's pretty simple and it works well: var contentSettings = chrome.contentSettings; contentSettings.javascript.clear({}, function() { contentSettings.javascript.set({ primaryPattern: '*://*/*', setting: 'block' }); });
- wikiwatchme 9y agoWe regularly advise all our clients to disable javascript. http://www.bbc.com/news/technology-35821276 http://www.bbc.com/news/technology-35821276
- dreamcompiler 9y agoMozilla is partly to blame here by taking away the "Disable Javascript" control, which effectively told websites they could go crazy with JS and ignore the "no-JS" users. What might be helpful now is something like a MAX-JS-BYTES=n header that tells site owners that the useragent will ignore any JS beyond the first n bytes on the page, and will not request more once that limit is reached. (I know this is a terrible idea; hard byte limits could never work. But somehow site owners need to be made to feel more immediate pain when they screw their customers with too much JS bloat because they've hired lazy developers, or because their idiot VP of marketing is all about TEH BLING.)
- bobwaycott 9y ago> What might be helpful now is something like a MAX-JS-BYTES=n header that tells site owners that the useragent will ignore any JS beyond the first n bytes on the page, and will not request more once that limit is reached. I love this idea. Web development seriously needs some discipline. Myself included.
- smitherfield 9y ago>Mozilla is partly to blame here by taking away the "Disable Javascript" control, which effectively told websites they could go crazy with JS and ignore the "no-JS" users. One might say, for other reasons, that Mozilla is 100% to blame for all of it.
- b0rsuk 9y agoUh oh, but that would mean frontend developers have to reason about their resource usage, and have a vague idea how many programs they are even using! Javascript usage is simply out of control, things load themselves automagically, asynchronously, unpredictably.
- twhb 9y agoI think it's pretty critical to note that, with only one exception, every website that works well without JS is what HTML was built for - static documents - and every website that doesn't, what HTML is famously bad at - apps.
- 801699 9y agoThere is a famed quote that goes something like this: "An engineer is someone who can do with ten schillings what any fool could do with a pound." By this definition one could argue Javascript developers are not engineers. If the user can get the desired data from a website without having to run 4.5M of js in a large browser, but the developer "needs" 4.5M of js and a team of people to deliver the data, then who is the "engineer"?
- kabes 9y agoExcept the schillings usually are days. And it might take JS to build the requirements in 10 days. 'Support the 0.1% of people without javascript' usually doesn't make it beyond the bottom of the backlog.
- 801699 9y agoThis reasoning i.e. "supporting" people who are not using Javascript make little sense. It is the Javascript and website complexity, the embellishment of data with needless garbage, that necessitates "support" i.e. work for developers. It creates more work. Serving text without embellishment requires less work, not more. At some time or place in every website development project, data exists in plain text or some other raw form. Some users might just want that data as it is, without embellishment, before web developers even start working. This requires little if any "web development" work. Basic HTML can be autogenerated with ease. <a href=http://example.com/data>Data</a><br> <pre> Description: blah, blah, blah </pre> Or the user can just use a link to json file and generate the text/html themselves. # usage: $0 section # sections: world, etc. curl -4o .$0 https://static01.nyt.com/services/json/sectionfronts/$1/index.jsonp exec sed '/\"guid\" :/!d;s/\",//;s/.*\"//' .$0 For those who "want" and "demand" it (the 99.9% as you would have us believe), web developers can also create a whiz bang version of the site that encapsulates this data in a cutting edge "web app". Meanwhile we are having this discussion on a web site that does more or less exactly what I am suggesting. It can be easily autogenerated. The HTML could have been written in the 1990's. It is trivial to remove the tags and have plain text. I guess we are the 0.1% that would ever access a website that did not need Javascript? The fact that the popular browsers run all manner of javascripts and process all sorts of tags does not obligate anyone to use them. Whether it is web developers or users.
- achikin 9y agoIt's like taking gasoline off the car and using horses to drive. Well, sometimes it works.
- dzonga 9y agoNoob question? Always wanted to know is possible to build a functional web app without JS and what would be the approach ?
- Profragile 9y agoNext, try electricity.
- b0rsuk 9y agoMore people should be aware of static blog generators. It's a kind of software used to make websites where you write your posts in a markup language like reStructuredText or Markdown, and once done a script transforms it into HTML and CSS. Various plugins exist, including for comments, although this tends to sacrifice your "staticness" in varying degrees, especially if you just use Disqus.