Why do people consistently recreate a "new way to build a static site" or "a new way to build a front-end UI"?
From my point of view, I thought it was about ergonomics - I want developer tooling that matches the way I'm wired, so I made it myself.
But I don't think that's the whole picture - not even for myself. This is a general pattern with people. Why do we do this?
Any insights?
Could it be a form of procastination? It's not that difficult, but nor is it that meaningful. I think about it like a DIY workshop, homelab or shed. Do people consistently make their own tools? Like, you don't make a new hammer, or screw driver, or drill, do you?
Why do we recreate basics like this in software? Because we can? Are we procrastinating?
I'm asking because I think there's probably insights in the general pattern of others' experience.
austin-cheney•1d ago
As for myself I have learned to avoid certain things that only induce complexity and as result feel confident I can build almost anything in JavaScript/TypeScript. Here are my zones of avoidance.
* DOM abstraction. Working with the DOM is stupid simple, so don’t use unnecessary abstractions to make it something it isn’t. Sometimes I do find the DOM is missing important features so I will extend the DOMs API with original methods, such as getNodesByType.
* No OOP. I avoid classes and inheritance as entirely unnecessary. Functions and objects are all I need for architecture.
* Know your platform. In the browser it’s the DOM and Web APIs. In Node it’s their direct module APIs. Get comfortable working as close to the platform as possible. It’s less to troubleshoot later.
* Avoid unnecessary string parsing. This includes things like querySelectors, innerHTML, and a lot of insanity from framework template systems. This is by far one of the two biggest performance boosts.
* Preference WebSockets over HTTP. This also dramatically boosts performance and significantly reduces application complexity.
keepamovin•1d ago
I also have a purity or “web grain” mindset towards the web platform. It’s nice to see someone else share that sensibility, even though I know it’s not a super uncommon thing to appreciate and utilize the design of the web system as is.