Hacker News new | ask | show | jobs
by spoonfeeder006 517 days ago
Isn't using React with a static site generator framework basically the same thing but better?
5 comments

Not remotely! Unless you meant Preact. React ships an entire rendering engine to the front-end. Most sites that use React won't load anything if javascript isn't enabled
Then you'd have to learn React, and for many of us the point is that we really don't want to learn React, or other frontend frameworks.
Yes, if you want to throw up in your mouth.
In theory yes, in practice good luck maintaining that if you are just a solo blogger.

I doubt your blog would last a single month without some breaking change of some sort in one of the packages.

you mean npm packages? why would you need to update those anyhow?
Because at some point it will cease to work? It needs upgrades like any other project.

Every upgrade in the JS world is very painful.

Why will they stop working eventually? Assuming they are all self contained and you don't upgrade even node js for that project

Edit: Oh right, OS upgrades could do it. Or network keys changing etc...

Yeah I guess React + SSG isn't the best choice. Nano JSX might be better

https://nanojsx.io/

Yes, it is. Unfortunately HN has a crazy bias against JavaScript (the least crazy part of the web stack) and in favour of HTML and CSS, even though the latter are worse in every meaningful way.
It isn't crazy, judging by the number of times I've seen posts here and on other blogs talking about a 100k web page ballooning to 8Mb because of all the Javascript needed to "collect page analytics" or do user tracking when ads are included. Granted that may not be needed for personal websites, but for almost anything that has to be monetized you're going to get stuck with JS cancer because some sphincter in a suit needs for "number to go up".
> I've seen posts here and on other blogs talking about a 100k web page ballooning to 8Mb because of all the Javascript needed to "collect page analytics" or do user tracking when ads are included

Perfect example. HN will see a page with 6Mb of images/video, 1Mb of CSS and 200Kb of JavaScript and say "look at how much the JavaScript is bloating that page".

I don't even know where to begin with the pretence that you can compare HTML with JS and somehow conclude that one is 'better' than the other. They are totally different things. JS is for functionality, and if you're using it to serve static content, you're not using it as designed.
I don't particularly care about "designed for". If you've got to serve something to make the browser display the static content you want it to, the least unpleasant way to do so is with JS.
Least unpleasant to the developer. Most unpleasant to the user. It breaks all kinds of useful browser features (which frontend devs then recreate from scratch in JS, poorly; that's probably the most widespread variant of Greenspun's tenth rule in practice).
> It breaks all kinds of useful browser features (which frontend devs then recreate from scratch in JS, poorly; that's probably the most widespread variant of Greenspun's tenth rule in practice).

Nah, it's the opposite. JS tends to perform better and be more usable for the same level of feature complexity (people who want more complex sites, for good reasons or bad, tend to use JS, but if you compare like with like), HN just likes to use them as a stick to reinforce their prejudices. (E.g. if you actually test with a screenreader, aria labels work better than "semantic" HTML tags)

> E.g. if you actually test with a screenreader, aria labels work better than "semantic" HTML tags

Interesting how this is opposite to the recommendations from MDN, such as:

Warning: Many of these widgets are fully supported in modern browsers. Developers should prefer using the correct semantic HTML element over using ARIA, if such an element exists.

The first rule of ARIA use is "If you can use a native HTML element or attribute with the semantics and behavior you require already built in, instead of re-purposing an element and adding an ARIA role, state or property to make it accessible, then do so." -- which also refers to: https://www.w3.org/TR/using-aria/#rule1

Though I can believe that real life may play out different than recommendations.

Also, as I understand it, ARIA is orthogonal to JS, and it doesn't alter behavior for browser users.