29 ms·
The hoops people are going through to justify this are crazy to me. The comparison is not no-JS vs a business-capable website. They could serve a static image t
by danShumway 7y ago
The hoops people are going through to justify this are crazy to me. The comparison is not no-JS vs a business-capable website. They could serve a static image tag that would load quickly, and then load the comments/content around it. Progressive enhancement has been a well-known development pattern on the web for a very, very long time.
The comparison here is, "serving your content, and then doing whatever the heck you want", and "dynamically fetching all of your core content on the fly after synchronously downloading and executing all of the auxiliary content that >85% of your users do not care about."
I think Youtube is overengineered as well, but at least Youtube has the good sense to prioritize loading the video first, and the recommendations/comments second.
It is surreal to jump from a thread with a Google dev telling me that user-agent scraping is necessary because progressive feature detection would require shipping unnecessary polyfills to modern browsers, to a conversation with an Imgur dev telling me that because 5% of their users need a special feature, everyone should wait twice as long to get core content served to them.
I realize these aren't the same people, and the web development community is diverse, but... I don't know how to reconcile those perspectives. We will jump through so many crazy, horrifying engineering hoops to get bundle sizes down: using statistics/user-behavior to calculate dynamic bundles on the fly, user-agent sniffing, compiling Javascript frameworks, prefetching URLs, HTTP2. But serving an img tag with our core HTML is a bridge too far?
- zzzcpan 7y agoIt goes deeper than that. They actually do have plenty of tags in the generated source directly linking to an image, like twitter:image, og:image, image_src, they just don't want you to load the image before you load all their javascript crap.
- jacobolus 7y agoModern Google apps (Gmail, etc.) are incredibly bloated and buggy compared to the ones from 10 years ago, without any (to me) useful new features, so while I laud one engineer’s principles, it’s not clear they are succeeding at following them as an organization.
- folkhack 7y agoThe new Gmail was a slap in the face vs. what they had. The older version was so much quicker and performant.
- Felz 7y ago> I think Youtube is overengineered as well, but at least Youtube has the good sense to prioritize loading the video first, and the recommendations/comments second. One extremely annoying thing about this is that if your internet is slow, it can take a minute to load the title of the video you're watching. So if e.g. you get linked something without context and you may not actually want to watch it but do want to know what it is, too bad.
- folkhack 7y agoIt's cargo cult development. I've seen it everywhere I've worked, and have been a huge offender myself. It's the engineer interjecting themselves vs. doing what's best for the end-user: KISS (keep it simple stupid). As a webdev I actually target older methods in order to get my work done. Is it as "sexy" as a ton of stuff you mentioned? Nope. But I can get a lot done with 20-50 lines of jQuery (or maybe a bit more verbose w/vanilla JS) by directly working with the DOM vs. roping in frameworks in every situation I find myself in. I try to build those "business capable" websites you're mentioning in the first paragraph. The biggest thing that bothers me is most of us in the industry are "abstraction obsessed" where we would rather have discussions on the complex tools we use vs. how we solve the problem at hand. God help you if you're that one older dev in the back of the room going, "yeah but can't we just throw some vanilla JS/basic jQuery/simple DOM manipulation at that and be done with this?"
- core-questions 7y agoRight on. I think some newer devs come out of school not actually knowing how to implement their own, from-scratch application using vanilla JS or jQuery, so this stuff seems frightening to them; others are obsessed with the (possibly true) idea that the thing they build with React will be more extensible in the future, while discounting the poor fit in the present. Something tells me that you could probably serve a page with almost no JS on it and accomplish the same thing Imgur does, including the comments and monetization stuff, with "server side rendering", which is what we used to just call "CGI serving HTML" until that wasn't trendy enough.
- folkhack 7y ago> I think some newer devs come out of school not actually knowing how to implement their own, from-scratch application using vanilla JS or jQuery I'll go out on a limb and say that most webdevs (regardless of schooling) can't handle basic "from-scratch" work using a language without a framework... it's terrifying. It's a lot of trend-followers who often can't verbally dictate their decision to use one tool over another (framework, lib, or otherwise). I have a JS interview question which is, "describe to me the the common nodes one would often leverage in a DOM?" Really all I'm looking for is a basic understanding of the document, element, attribute, and text nodes as those are the ones often interacted with. I'd say about 80% don't have an answer/totally BS one. They still totally get hired though (and I'm seen as the big bad wolf who "thumbs-downs" everyone). This is in Southern California in a major city where there are multiple FAANG offices =| Webdev has always been a huge variability of skill. You have WordPress "install 50 plugins" "developers" all the way up to top-level programming talent who are just as technically talented as top C/C++ folks (they just target a browser/web server)... and it's incredibly difficult to weed the engineers out from the "devs" in my experience. > Something tells me that you could probably serve a page with almost no JS on it and accomplish the same thing Imgur does Yep - and I'll even argue it'd work better (more performant), and be a much more predictable product to develop on and ship! > which is what we used to just call "CGI serving HTML" until that wasn't trendy enough. 100% agree and actually had a good chuckle at this =)