Unnecessary complexity has a cost
Unnecessary complexity has a cost.
Take this blog for example. I’ve tried to keep it as simple as possible, both design-wise and in how it is built.
It uses a simple, custom HTML and CSS Hugo theme.
Really, nothing else is necessary for such a simple website. Anything else would be unnecessary complexity.
By keeping the technology for this website light, avoiding unnecessary complexity, it frees me to worry about what matters: the writing.
Plain HTML and CSS have much slower “code rot” compared to JavaScript frameworks, which require updates all the time. (Yes, I understand it’s necessary and desired to have frequent updates, but I’m making a point about unnecessary complexity here.)
How often do we ask if a simple HTML and CSS page wouldn’t work better for what we’re trying to accomplish? Is the end result worth the complexity we’re introducing by using a JavaScript framework?
Not to pick on any one JavaScript framework, but I think in some cases people misuse Next.js. For a site with no interactivity and not a single legitimate use of the framework’s strengths, (except maybe navigation toggle which could be easier handled by vanilla JavaScript), it doesn’t make sense to use Next.js.
Unfortunately, the added, unnecessary complexity does have a cost. The updates of the framework ultimately take up bits of your time as well as mental headspace.
All that could be saved if the framework was dropped altogether, or in favor of a static site generator which has fewer updates and is far simpler.
I’m not sure about other developers, but even if I have automatic updates for a website enabled, I’m still keeping tabs on the changes and deprecations. Honestly, it’s just another thing I shouldn’t need to worry about (and neither should you) in many cases.
Perhaps what I’m looking for in terms of phrasing is: “ask whether the complexity is necessary and useful.” If it is, then go ahead. If there’s a doubt, keep it simple, because unnecessary complexity has a cost.