Tell HN: Thank you for not redesigning Hacker News
I’m currently in a country with low speed internet and the entire ‘modern’ web is basically unusable except HN, which still loads instantly. Reddit, Twitter, news and banking sites are all painfully slow or simply time out altogether.
To PG, the mods and whoever else is responsible: thank you for not trying to ‘fix’ what isn’t broken.
397 comments
[ 0.29 ms ] story [ 271 ms ] threadImgur for instance isn't a site that I visit daily or even weekly any more. I really enjoyed the site, but after a redesign it just stopped being enjoyable. It's way to slow, to much Javascript. It's the only thing that will reliably force my MacBook to ramp up it's fans. How is it possible for a website to make a laptop heat up more than doing development work?
What makes you say this?
https://text.npr.org/
for this as well.
Well, OK, that's actually NOT lightweight.
But this is:
https://duckduckgo.com/lite
Fine by me, but I wish HN would offer the same privilege to its users and allow us to delete our old posts
Though he's still a major shareholder of YC which owns it. He tweets quite a lot these days.
[1]: https://i.postimg.cc/jjBSVmCX/Screenshot-at-2019-09-01-15-23...
That annoyance is considerably less than all the others a full-JS Twitter imposes. Including the motherlovin' account-creation nag that shows up all the motherlovin' time.
One click through at entry rather than random annoyance in the midst of reading? A net win. And an incredibly sad commentary on the state of the Web.
I wish there were more.
Edit: All my lovely responders, I appreciate the feedback, but I don't want to install addons/mods/hacks to fix line-height.
It's smart enough to remember the zoom level the next time you open HN too.
We're talking about just 1.5x line height. Which is a perfectly reasonable default for nice reading. The browsers have a lower default line height because of historical reasons, doesn't mean it's the right one. People don't use the Times font very often either.
https://addons.mozilla.org/en-GB/firefox/addon/styl-us/
i recently started keeping dev tools's console open when i am using chrome. i have some JS to collapse comments here on HN.
i have seen some interesting things in the console, i just keep it opened now:
- some sites have st tons of JS errors and yet function as normal
- some companies put job ads in there for JS people (medium is doing it right now)
- some libraries show off their awesome ASCII logos in the console
- debug statements are left there unintentionally (i wonder if there is no tool that could strip these out)
And text has nothing to do with pixels, it's not raster.
I suppose if you have e.g. a 720p screen and do 200% zoom you might run into some problems but that's got little to do with zoom and more to do with the lack of space on your screen to put content anymore.
Lack of space is not really a thing for html, rarely a page fits on screen without scroll and wrap.
For Firefox - no extension needed. Press alt to show the main menu. Go to View -> Zoom - then select Zoom Text only.
Now, zoom will only increase font size, instead of the whole page.
I have, but it's a mark of frustration for me. It definitely falls under the heading of, "The user shouldn't have to do this."
The line-height looks perfectly fine to me. AFAIK the HN CSS doesn't force any specific height but uses the defaults. In fact I'm sick of the "modern" absurdly-low-density design trend that just makes me need to scroll more to see less.
My browser has a zoom function, and so should yours. I don't understand the resistance against customising a site --- it is a user agent working for you, and the CSS spec even mandates a user-stylesheet (which I know some browser(s) blatantly disregard). Different users will obviously have different preferences.
https://mbasic.facebook.com/home.php
The basic shift back to pre-rendering + delivering only what's needed on the actual page is a big deal which hasn't got enough attention yet IMO. We went completely in the other direction for over a decade because we thought networks and browsers could handle it, but it was too easy to abuse and mobile took over.
There's no reason even very advanced websites can't load quickly, without having to fully compromise back to the 90s non-interactive websites.
News sites and marketing teams still ruin it regardless with all the crap they add on top. But it's far far better than loading a giant blob of 20 jquery libraries plus a big old angular.js or backbonejs app (sometimes both at the same time) encompassing a whole site in one file, even though you just wanted to visit the contact page.
I also blame Themeforest type developers because they're still stuck in the "let's add a hundred JS files so I can parallax and animate two divs" mindset.
Getting rid of unused css helps but the additional markup would make the page 4 or 5 times larger.
The Bootstrap stuff you seem bothered by is better for splashy big-headline marketing sites not high-density content like HN.
A lof of web designers cut their teeth designing marketing websites, not app UIs, so it's not surprising when I see it mindlessly used on sites like Reddit's new redesign.
It's really a sad state of affairs when an industry with such a strong historical connection with publishing is now reasonably cited as an industry worse at publishing than most others.
They regularly fail on basic UX. Their ability to turn a kilobyte of text into 10MB of trash is astounding, as is their ability to cripple modern computer hardware, or simply readability, with their latest 'innovations' in totally unnecessary JS/CSS fuckery.
uMatrix blocking all JS, including first party, helps. But you've still got bullshit like floating headers that follow you when you scroll down the article to contend with. I find myself creating cosmetic filters to remove pointless floating clutter on news websites more than any other sort of site. The industry seems utterly incapable of presenting a clean and readable article online.
But regardless of our personal work-arounds or workflows, those websites shouldn't be like that. The general public is still subjected to the default experience and that bothers me.
I don’t understand how online ads are as big a business as they are, other than the troll stuff on Instagram. The rest is pretty unremarkable and ineffective.
I can probably count on my hands they number of times I intentionally engaged with an ad in the last 25 years.
For one, they're on-line, = cheap to make and pretty much free to serve.
Two, with the amount of tracking done, on-line ads are attractive to advertisers because they can evaluate their effectiveness real-time, and often tell what ads are responsible for what real sales.
Three, with all the accrued complexity, it's a wonderland for third parties who help the advertisers navigate through on-line advertising landscape, and divine attribution. Now the trick is, if your customer (the advertiser) doesn't have even basic competence in statistics (they most likely don't), you can bullshit them with data to your heart's content. Which is what you're probably doing if your team doesn't have much statistical competence either. I've seen this happen.
I dont think people have really seen what server-side rendering (ala Next.js/Nuxt.js), decoupled components, modern treeshaking, minification, and chunking can do for performance. We've yet to have a full web framework designed entirely to encompass this from day one but they're coming and getting better at it.
Outside of the endless 3rd party crap the 'business' guys add, if anything, it's no longer the JS framework size and library cruft I'm worried about it's how many object watchers I've got at runtime via Vue.js and reactive style programming (which automatically adds Object.observe style watchers to all data) + component initializers (which can add overhead to simple HTML templates). Fortunately with the new Vue 3 function API there is a clear distinction between observed values vs static/immutable/config data. The amount of observers per page dropped dramatically. Otherwise looking at a Vue project in the performance tab shows it's highly async and efficient.
The new Vue functional API (allegedly) is also going to be far easier to treeshake so you really only ever get the library features you're using. Even for something like Lodash or Ramda where you might use only 10% of the functions it's a big deal.
I'm sure React is making similar progress in this direction and it was already smaller than Vue.
CSS Frameworks have some ways to go and PurgeCSS isn't perfect but using a functional CSS framework like Tailwind or Tachyons also helps in this regard, so all of the stuff isn't intertwined and can be stripped out.
This type of tooling really does massively improve the state of things automatically, even with poor coding practices or large applications spanning multiple pages. SSR, treeshaking, chunking, stripping unused CSS, etc is a 'zero cost' type optimization that I've seen turn 700-1000kb dev assets into loading 100kb base + a few 5-10kb js/CSS files dependent on the page.
The parent commenter remembers a time when websites were server-rendered by default. The server would send down HTML, along with a small amount of CSS and JavaScript to style it and add interactivity. You didn't need an elaborate chain of compilers and bundlers and frameworks and chunkers to make sure you didn't ship several megs of dead code to the client; you just didn't ship several megs of dead code to the client. That's their baseline for web performance.
Your comment, on the other hand, seems to use the current giant-JavaScript-framework sites as the baseline for performance. And yeah, you can get a lot of cheap wins if you start from there. (For starters, you can break up your JavaScript execution into tiny slices so that, even if you're using 80% of a CPU core and draining the user's battery for no real reason, you're at least not blocking the browser UI thread.)
I basically rebuild past era bootstrap style Rails HTML views with some jquery into modern Vue components for a living on a B2B app.
I'm very familiar with the old way and how much better a proper modern replace could be. I can pack a ton of information into smaller flexible places and integrate action-relevant help boxes and only showing the parts of forms as needed.
Page render times to first action are about 10x faster on average (no joke) and our users use 1000's of objects on a single HTML form. I'd love to see someone try rendering that pure SSR framework with partials in a performant way and usable way.
This type of interaction extends well outside of my business/B3B domain as well. I'm quite excited for the future of web development after a decade of fearing more JS everywhere (which I was contributing too).
Another great HN style site is Basketball Reference, I personally love these information dense designs but it's not very scalable with tons of information, elements, and what it could really achieve if it was a desktop application or fully flexibly UI wise.
https://www.basketball-reference.com/teams/TOR/2019.html
This site could massively improve with real time filtering, multi-select forms, interactive data exports tools, multi-team/page comparisons, information highlights on hover, inline math tools, etc. On the site currently it looks great on the surface but once you engage with any JS-y stuff or imagine what's possible if it was a desktop app, and the previous tools would be extremely limited in scope.
You can do this very powerful stuff now without clogging up performance and load times. That's a big deal. We've been dealing with slow clunky JS components forever now and it can be way better.
> I can pack a ton of information into smaller flexible places and integrate action-relevant help boxes and only showing the parts of forms as needed.
> This site could massively improve with real time filtering, multi-select forms, interactive data exports tools, multi-team/page comparisons, information highlights on hover, inline math tools, etc.
I guarantee that it is possible to write any of these features in traditional HTML, CSS, and JavaScript without relying on today's frameworks or build infrastructure. I know this because even the most advanced build pipeline in the world must eventually compile down to traditional HTML, CSS, and JavaScript; that's all browsers run, no matter how many layers you add to try to abstract yourself away from it. I also know this because websites existed that had these features prior to React becoming popular.
> We've been dealing with slow clunky JS components forever now
That's the thing -- there was a time before slow, clunky JS components. (They used to be slow, clunky Flash components :P)
"All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection."
I tend to think “but what about making the web enjoyable for the end user?”
But more importantly, the fact that the page loads 2 seconds longer is a drop in the bucket compared to the insane processes our business people dream up.
I understand where they're coming from having dealt with a few legacy frameworkless spaghetti code bases that have no documentation. Give me bad code to maintain in a known framework over bad code without a framework anyday. Adding features and debugging in those conditions are no fun at all.
https://mobile.twitter.com/codinghorror/status/1049082262854...
Stop blaming the modern web. There are plenty of slow PHP and rails sites and plenty of slow React based sites. Of course speed is second priority, I'd much rather have users using my app with a mediocre experience than nobody using my app. However, as the web supports more tooling and frameworks continue to evolve towards web assembly, I believe will start to have web apps approaching native speed.
The reality is that requiring a server to render every page limits what you can do with your app. Even if modern tooling is overused, developers will always move towards what allows you to do more.
I'd much rather focus on making modern tooling faster than complaining about the modern web.
I always strive to keep the client side stupid. I should be sending as much of the final document as possible from the server and any interactivity needed should also produce as little work for the client as possible.
In contrast, many sites seem to think that 1MB of JavaScript, or even 5MB, are acceptable, and they can't even show simple static content when client-side JavaScript is disabled. On a slow link, 1MB of JavaScript means that the user has probably given up. And it's not just the size. 200KB of HTML is far far faster than 200KB of JavaScript; web browsers are highly optimized for handling HTML, while processing JavaScript is necessarily much slower. JavaScript is great for some things, but like a sledgehammer it's not always the best solution. Too many people aren't considering the real end-user experience. "Pretty graphics, but it takes 5 minutes to download" is usually not a worthwhile tradeoff.
To paraphrase Goldblum:
Your web designers were so preoccupied with whether or not they could use JavaScript, they didn’t stop to think if they should.
If the companies hiring web devs changed their mindset and listing a dozen different frameworks on your resume was perceived as the negative trendchasing architecture-astronauts that such developers often turn out to be (at least in my experience), and valued simple JS skills and experience instead, I suspect websites would end up being a lot different than they are today.
I bet HN will look almost identical 10 years from now, too. I wonder how many popular websites can boast such a consistent design from their beginning?
https://gist.github.com/1player/85d146a4aa0c2afc78bab63582f5...
Some things like the login page are not styled correctly, but works good enough to browse and post comments.
reddit.com -> old.reddit.com
facebook.com -> mbasic.facebook.com
cnn.com -> lite.cnn.com
npr.org -> text.npr.org
twitter.com -> twitter.com (with JS disabled)
gmail.com -> gmail.com (HTML version)
gmail used to have an option to set HTML as default, but it seems like it's gone.
Only way to get HTML is to click on a link that's available during loading, nothing in the settings to make it permanent.
It's gone. That's why I'm posting about it.
https://pastebin.com/raw/kHyZXcTY
https://greasyfork.org/en/scripts/389680-google-mail-gmail-b...
*As for reddit though, if you log in with an account you can set it to always use old reddit in preferences.
https://old.reddit.com/prefs/
There is no "always use old reddit"
Are you saying you have that checkbox you pointed out unchecked, and still get new reddit by default?
I basically never ever want to be there. I've specifically not enabled JS for 'www.reddit.com' so that the site won't load, but I still have to fix URLs manually when directed there.
What I'd like is for any 'www.reddit.com' I encounter on the site to be rewritten to 'old.reddit.com'.
So maybe this is a misfeature on old.reddit.com, or you don't have the box unchecked?
https://old.reddit.com/r/AskHistorians/wiki/index
Not sure if you're saying that setting's not working for you or you're just annoyed that it doesn't explicitly link to https://old.reddit.com../blah/..
1: https://www.reddit.com/r/AskHistorians/comments/b7rums/why_d...
I personally wound up using an extension[1] to keep old Reddit active, which so far has taken care of the weird behavior.
[1]: https://addons.mozilla.org/nl/firefox/addon/old-reddit-redir...
[1] https://github.com/eminentspoon/chrome-extension-useragent
I have it set up to handle Reddit and Wikipedia. News sites and Twitter don't get to run JS thanks to NoScript, so I usually don't have to do anything extra to get a lightweight experience there.
* amp link -> non-amp version of same link
while you're at it, please!
I personally wish HN attracted a bit of a fresher, younger crowd as the conversation here has become more stale over the last few years.
I'd argue that having simpler markup and some sane, well-designed css would enhance performance further.
That was written two and a half years ago now, and things have only continued to get worse since then.