Strangely, I do agree with the main idea, but for totally different reasons. Which makes me ambivalent about the article, because some of the reasoning is all over the place while the rest is just off. Here’re a couple of examples:
“components from NPM are brought in to ‘save developer time/effort’, without much thought to the extra kilobytes (or even megabytes)” — most obvious point is that “developer time” is money. Regardless whether it’s an outsourcing / freelance project or your own product, the main idea is that you’re building a product and the outcome needs to account for cost vs benefit, cost (developer time or performance) vs target audience, etc. If your target is rural USA where every kb/s counts, I assure you no developer will get to make the call of blind use of npm packages, at least not without all the splits that webpack can do to optimize size and load. If your target are mobile web apps for urban Romania, where unlimited 4G is ubiquitous, nobody will bat an eye at your extra 2–3Mb. But it’s rarely, if ever, developer laziness — maybe it would’ve been a few years ago, but now with people pushing the project out the door ASAP, you’ll get ass-frying feedback in a second.
“they put flashiness above practicality” — well, both are in the eye of the beholder. Practicality, as in usability, is judged by users. A few years ago people were throwing things ‘just because’ but nowadays nobody can afford the backlash of people shying away from a product (good or bad) on account of not being able to use it. If you don’t deliver early and get feedback and spend years developing something without user feedback then you’re going to be out of a job soon. Warning to developers: if you work in an environment where your stuff doesn’t get on an end-customer facing environment at least every couple of weeks / a month (and are only checked by product management / owner / marketing / design), leave now. Your product team is clearly shooting in the dark without actual data to base decisions on and won’t survive much in the real work (unless they’re damn lucky).
“In other words, the product should make life better for the user, not act as a vessel for its creators to show off.” — nope. Actually your creativity should show off and you should feel good for showing off. But creativity is best shown when managing to deliver originality while also making the customer feel good / making life actually easier / supporting the end goal of the product. Some definition of usability is always part of a product’s goal and that’s how creativity is shown. In fact, your words are illogical vs your premise: you say that devs / designers are lazy when defaulting to a framework / flashy effects / etc and I *totally agree* with that. That doesn’t show creativity and it’s not something to be proud of. Creativity implies a lot of overcoming a set of constraints to deliver something original that satisfies the product design requirements. There will always be constraints on top of that may eventually lead to less than optimal decisions.