2. If a site is content focused, no need for a SPA. The web already works for it as is.
3. If a web app is a forms based application, still probably no need for a SPA. (The web was designed to support forms almost from the beginning.)
4. If a web app has complex user interactions (e.g. drag and drop, etc. Think, word processor, photo editing, etc.) on a "Single Page". Or jumping between different views of the same data from a single page. Then, logically, that is a real single page application! And a SPA fits the use case.
Otherwise, a SPA is too much engineering to solve a trivial software engineering problem.
Agree with what? OP is no making any point, just a joke.
And if I am to take the joke more serious, it would mean that there is no defense whatsoever for using SPA. It just indefensible. Which is a different argument of ”SPA for everything is ridiculous”.
So either there is no point for you to agree with or you disagree.
The bemoaning of them in absolute terms is absurd. The examples of "here is an app with a few lines of javascript so you don't need an SPA" / "I wrote my blog without using a framework" is even more absurd. And the more complex "just server side render it then" is a hell of "idea guy who doesn't have to do the thing" problem.
The whole ordeal is now more drama and than worthwhile IMO, and I don't think anyone reading this stuff is making these decisions.
That in no way negates the fact that the ratio of "justified use : poor use" is probably 1 : 10. It is a widespread, serious problem that deserves to be continually called out.
"I feel so validated and seen now that people are writing plain HTML again... with a build script, multiple CDNs, automated SSL certificates, load balancers..."
Some blog is posted here. The site happens to be a SPA. Most of the comments are about Javascript being bad, not about the content. The blog or site authors don't even know it's being discussed on HN. What does this accomplish?
If, as I'm guessing, this is meant ironically, and the spinning wheel and "loading article" is what everyone sees, then I'm amused. Actually, I guess I find it amusing either way, intentional or not.
I have a feeling this is more to do with developers being lazy than a problem with SPAs.
I wrote my own SaaS product a few years ago as a SPA, using php backend and basically jQuery front end. It runs on a namecheap shared hosting server for $5 a month. It loads faster than 95% of the internet because as I was learning from YouTube and stack overflow, my #1 goal was to be fast. So it was.
Done my usual ritual of temporarily enabling JS with uBlock Origin to view the page, and was trolled heavily. Bravo!
SPAs have their place. They fail when a webpage that can be done with HTML & CSS alone is 'appified' and requires JS to view.
Many webmasters over-engineer a website with JS bells and whistles, which is terrible for accessibility, often adding fake loading spinners to give the illusion the page is loading new content, when the content is already there.
Also you see artificial delays & animations when you scroll, AKA 'scroll spying' with content jumping onto the screen, because, hey, you can do that, but it doesn't mean you should!
How is the day-to-day experience of browsing the web with JS disabled by default (genuine question)? I feel like I would attempt to browse JS-free and then get frustrated with the number of pages that don't function without it. Possibly similar to using DDG and constantly having to !g every second search.
You end up allowing first-party scripts from most sites that you frequent (except the ones that don't actually require it for basic functionality, but use it to implement anti-features), leaving third-party scripts disabled most places. After you've been browsing this way for a month or two and your ruleset is reasonably populated, the annoyances are almost entirely with clicking random links on HN and Reddit; often, I decide a poorly-accessible site probably wasn't worth my time anyways, but I'll reconsider if the comments indicate otherwise.
Well most articles on HN work fine with JS disabled by default, apart from /show which usually has JS SPAs.
To be honest, it is a pain sometimes having to temporarily enable JS with uBo just to make a website work, but it's the price I pay for a modicum of privacy (and accessibility) on the web.
I have good muscle memory though, and the act of enabling JS with uBo is so ingrained in me, that I often do it without much effort.
Not long ago coindesk.com updated their website with whatever JS framework and then behave exactly like OP joke. You had to wait nearly 15s with a loader before being able to see the front page. How is it even possible that nobody in the management and dev team realized that this was an absolute failure for a news site ?
They reverted back to some more traditional behavior some times after, but common!
Can I use this space to complain about Confluence? The jarring loading of divs and navbars and content - plaintext content mind you. And we have over 15MB of javascript to display Confluence articles. How did things get so bad? Is it inexperience product owners, product designers?
I timed a Confluence load, and it didnt finish grabbing and executing JS for like 17 seconds, which is -insane-
I recently did a qualification and we had to use an e-learning website for reading the course material and writing answers.
It was the slowest, buggiest piece of crap I’ve ever used.
Aside from the random freezes and glitches, they hadn’t bothered to implement proper URL routes so if you were in a task detail screen and reloaded the page or came back to it later it wouldn’t remember what content you were looking at and just show a blank page.
A simple templated site in PHP (or Rails if you’re feeling fancy) with a bit of JS here and there would have been much better.
The company had clearly either heard that SPAs are all the rage and demanded one from their devs who weren’t up to the task, or had it foisted on them by an agency or senior dev who again wasn’t up to the task.
Either way they’ve ended up with a thing that doesn’t work right and probably never will without a serious amount of cash or burning to the ground and starting again.
It’s an extreme example, but there isn’t a single SPA that I’ve ever used that I haven’t had to reload at least once or twice in a session as it’s glitched or got stuck somewhere.
Just because it’s possible and shiny doesn’t make it a good idea.
The arguments for and against SPAs feel a bit like ground hog day and a bit beside the point now that we have a third option: native code compiled to wasm that completely bypasses the DOM/JS/CSS combo in favor of just rendering straight to a canvas or webgl.
I care about two things as a user:
I want to receive content in a convenient way and I'd like the web experience to be as good or better than the mobile experience. It seems that very few web developers are capable of doing that. I blame DOM/JS/CSS for this.
I don't particularly care about "native" as a user. I do care about non stuttering and smooth animations if they need to be a thing, slick design (I appreciate good design). The competition on mobile is so fierce that a lot of content gets presented using native apps because that seems to be the best way for developers to deliver the best possible experience to users.
I don't see why a desktop web browser should be any different. Give me the best experience, not some javascript developer's watered down version that works around gazillions of limitations imposed by DOM/CSS/JS. Browsers now have all the means to do other things. If it can run Unreal at 60fps, there's really no good reason for that browser to do a worse job than a native IOS/Android app.
Take Hacker News as an example. A fine example of old school brutalist design and intentionally so even. It works and I understand why this is and even respect that. There are many apps in the appstores for IOS and Android that attempt to deliver a native experience for HN content. Some of these apps you might consider to be superior in how they deliver the content. You get to swipe content, there are slick material design things, etc. Popular with some people. There are good reasons to use native UI frameworks for that.
Now here's the kicker: there's no technical reason for a browser to provide you a worse experience than a natively developed application. Basically with wasm you could do whatever and you can have it 3D accelerated with web GL. Package it up as a SPA and you get to bypass the Apple and Google app store censorship too. Win win, you'd say. Not a lot of websites seem to be going down that path yet though but it's not that hard to pull off. Take Figma for example. Very slick and it's mostly C++ rendering to a canvas.
There are of course a few reasons to prefer spas or html+css over wasm with some kind of native thing for delivering content: SEO, loading speed, accessibility, etc. But rendering quality, fancy design, or slick features are not among those reasons. That's what you sacrifice to get those other things. The web always was a bit of a compromise.
There's a reason native applications are popular with users and developers. Users like them because they are slick. Developers like them because they know it results in the best experience for the user. So, why is that different on the web? Same content different rules? Aside from the above reasons, there's very little reason to hold back on the web. We've all just gotten used to believing that we have to. Challenging beliefs like that once in a while is not a bad thing.
This is great.
Agree. SPAs for everything is ridiculous.
My opinion below.
1. The web was designed for content. Thus...
2. If a site is content focused, no need for a SPA. The web already works for it as is.
3. If a web app is a forms based application, still probably no need for a SPA. (The web was designed to support forms almost from the beginning.)
4. If a web app has complex user interactions (e.g. drag and drop, etc. Think, word processor, photo editing, etc.) on a "Single Page". Or jumping between different views of the same data from a single page. Then, logically, that is a real single page application! And a SPA fits the use case.
Otherwise, a SPA is too much engineering to solve a trivial software engineering problem.
Agree with what? OP is no making any point, just a joke.
And if I am to take the joke more serious, it would mean that there is no defense whatsoever for using SPA. It just indefensible. Which is a different argument of ”SPA for everything is ridiculous”.
So either there is no point for you to agree with or you disagree.
The SPA meta discussion is so tiring.
The bemoaning of them in absolute terms is absurd. The examples of "here is an app with a few lines of javascript so you don't need an SPA" / "I wrote my blog without using a framework" is even more absurd. And the more complex "just server side render it then" is a hell of "idea guy who doesn't have to do the thing" problem.
The whole ordeal is now more drama and than worthwhile IMO, and I don't think anyone reading this stuff is making these decisions.
What is tiring is this middle ground fallacy.
Yes, sure, for some things SPAs are appropriate.
That in no way negates the fact that the ratio of "justified use : poor use" is probably 1 : 10. It is a widespread, serious problem that deserves to be continually called out.
yea I agree, you should pick the right tool for the job but SPAs are probably overused
Well we're talking about an HN submission here with a loading icon... there's not a lot of insight here.
I don't know what you mean by middle ground fallacy when "Yes, sure, for some things SPAs are appropriate." is pretty much what I'm saying too.
I don't buy into your numbers if only because I have zero clue where they come from.
2 replies →
"I feel so validated and seen now that people are writing plain HTML again... with a build script, multiple CDNs, automated SSL certificates, load balancers..."
eye roll
Fair enough, but the beatings must continue until the attitudes improve.
It's the only way.
Some blog is posted here. The site happens to be a SPA. Most of the comments are about Javascript being bad, not about the content. The blog or site authors don't even know it's being discussed on HN. What does this accomplish?
1 reply →
If, as I'm guessing, this is meant ironically, and the spinning wheel and "loading article" is what everyone sees, then I'm amused. Actually, I guess I find it amusing either way, intentional or not.
> My argument for why we need the Singe Page Applications(sarcasm inside) [0]
[0] https://williamkennedy.ninja/posts/
I have a feeling this is more to do with developers being lazy than a problem with SPAs.
I wrote my own SaaS product a few years ago as a SPA, using php backend and basically jQuery front end. It runs on a namecheap shared hosting server for $5 a month. It loads faster than 95% of the internet because as I was learning from YouTube and stack overflow, my #1 goal was to be fast. So it was.
Done my usual ritual of temporarily enabling JS with uBlock Origin to view the page, and was trolled heavily. Bravo!
SPAs have their place. They fail when a webpage that can be done with HTML & CSS alone is 'appified' and requires JS to view.
Many webmasters over-engineer a website with JS bells and whistles, which is terrible for accessibility, often adding fake loading spinners to give the illusion the page is loading new content, when the content is already there.
Also you see artificial delays & animations when you scroll, AKA 'scroll spying' with content jumping onto the screen, because, hey, you can do that, but it doesn't mean you should!
How is the day-to-day experience of browsing the web with JS disabled by default (genuine question)? I feel like I would attempt to browse JS-free and then get frustrated with the number of pages that don't function without it. Possibly similar to using DDG and constantly having to !g every second search.
You end up allowing first-party scripts from most sites that you frequent (except the ones that don't actually require it for basic functionality, but use it to implement anti-features), leaving third-party scripts disabled most places. After you've been browsing this way for a month or two and your ruleset is reasonably populated, the annoyances are almost entirely with clicking random links on HN and Reddit; often, I decide a poorly-accessible site probably wasn't worth my time anyways, but I'll reconsider if the comments indicate otherwise.
Well most articles on HN work fine with JS disabled by default, apart from /show which usually has JS SPAs.
To be honest, it is a pain sometimes having to temporarily enable JS with uBo just to make a website work, but it's the price I pay for a modicum of privacy (and accessibility) on the web.
I have good muscle memory though, and the act of enabling JS with uBo is so ingrained in me, that I often do it without much effort.
Not long ago coindesk.com updated their website with whatever JS framework and then behave exactly like OP joke. You had to wait nearly 15s with a loader before being able to see the front page. How is it even possible that nobody in the management and dev team realized that this was an absolute failure for a news site ?
They reverted back to some more traditional behavior some times after, but common!
Brilliantly trolled, sir.
And people say HN can't appreciate things for comedic value.
The best thing about this is that it's entirely statically rendered and works with JS disabled.
Can I use this space to complain about Confluence? The jarring loading of divs and navbars and content - plaintext content mind you. And we have over 15MB of javascript to display Confluence articles. How did things get so bad? Is it inexperience product owners, product designers? I timed a Confluence load, and it didnt finish grabbing and executing JS for like 17 seconds, which is -insane-
What's an example of a bad SPA that gets people up in arms?
There's been a lot of ink spilled on the topic, but in my experience, most SPAs I run into (ecommerce stores mostly) are....fine?
Sure there's a "Loading..." content skeleton animation sometimes as the content populates, but otherwise it's perfectly usable by end users.
I recently did a qualification and we had to use an e-learning website for reading the course material and writing answers.
It was the slowest, buggiest piece of crap I’ve ever used.
Aside from the random freezes and glitches, they hadn’t bothered to implement proper URL routes so if you were in a task detail screen and reloaded the page or came back to it later it wouldn’t remember what content you were looking at and just show a blank page.
A simple templated site in PHP (or Rails if you’re feeling fancy) with a bit of JS here and there would have been much better.
The company had clearly either heard that SPAs are all the rage and demanded one from their devs who weren’t up to the task, or had it foisted on them by an agency or senior dev who again wasn’t up to the task.
Either way they’ve ended up with a thing that doesn’t work right and probably never will without a serious amount of cash or burning to the ground and starting again.
It’s an extreme example, but there isn’t a single SPA that I’ve ever used that I haven’t had to reload at least once or twice in a session as it’s glitched or got stuck somewhere.
Just because it’s possible and shiny doesn’t make it a good idea.
Wonderful. I love it. Thank you.
The arguments for and against SPAs feel a bit like ground hog day and a bit beside the point now that we have a third option: native code compiled to wasm that completely bypasses the DOM/JS/CSS combo in favor of just rendering straight to a canvas or webgl.
I care about two things as a user:
I want to receive content in a convenient way and I'd like the web experience to be as good or better than the mobile experience. It seems that very few web developers are capable of doing that. I blame DOM/JS/CSS for this.
I don't particularly care about "native" as a user. I do care about non stuttering and smooth animations if they need to be a thing, slick design (I appreciate good design). The competition on mobile is so fierce that a lot of content gets presented using native apps because that seems to be the best way for developers to deliver the best possible experience to users.
I don't see why a desktop web browser should be any different. Give me the best experience, not some javascript developer's watered down version that works around gazillions of limitations imposed by DOM/CSS/JS. Browsers now have all the means to do other things. If it can run Unreal at 60fps, there's really no good reason for that browser to do a worse job than a native IOS/Android app.
Take Hacker News as an example. A fine example of old school brutalist design and intentionally so even. It works and I understand why this is and even respect that. There are many apps in the appstores for IOS and Android that attempt to deliver a native experience for HN content. Some of these apps you might consider to be superior in how they deliver the content. You get to swipe content, there are slick material design things, etc. Popular with some people. There are good reasons to use native UI frameworks for that.
Now here's the kicker: there's no technical reason for a browser to provide you a worse experience than a natively developed application. Basically with wasm you could do whatever and you can have it 3D accelerated with web GL. Package it up as a SPA and you get to bypass the Apple and Google app store censorship too. Win win, you'd say. Not a lot of websites seem to be going down that path yet though but it's not that hard to pull off. Take Figma for example. Very slick and it's mostly C++ rendering to a canvas.
There are of course a few reasons to prefer spas or html+css over wasm with some kind of native thing for delivering content: SEO, loading speed, accessibility, etc. But rendering quality, fancy design, or slick features are not among those reasons. That's what you sacrifice to get those other things. The web always was a bit of a compromise.
There's a reason native applications are popular with users and developers. Users like them because they are slick. Developers like them because they know it results in the best experience for the user. So, why is that different on the web? Same content different rules? Aside from the above reasons, there's very little reason to hold back on the web. We've all just gotten used to believing that we have to. Challenging beliefs like that once in a while is not a bad thing.
Oh, the disappointment every time this is what went into a web archive!
Clever but not really appropriate for HN.
You're lucky! I'm still waiting for the thing to load!
What? It loaded for me.
C. Norris
I think its perfect because you could assume the hug of death is what causes it to get stuck in loading