I've been thinking modern programming feels increasingly shaped by ecosystem fashion. Frameworks change yearly, build tools get swapped like phone wallpapers, and even language choices feel driven more by vibe than need.
My concern is are we optimizing for what’s "new and exciting" rather than what’s appropriate and sustainable?
What are some signals that we’re solving tooling problems instead of real ones? Have we trained a generation of devs to chase abstractions instead of understanding fundamentals?
Curious what others think, is this a natural evolution of software... or are we just collectively procrastinating with better toys?
I don't see change being as rampant as all that. You hear about the change on places like HN, and people talk about it, and startups try many new things. But the bulk of coding is quietly being done on corporate systems that are slow-moving and relatively stable, often on legacy systems. There just isn't much to say about that work, so we don't talk much about it.
Brutal truth: most software engineers engineer for the sake of it. Experienced and not.
For the art (more complex system you create - more fun and challenges you will get) and for the money (more complex system you create - more work you create for yourself and colleagues, job security).
Playing with new shiny toys fulfills both desires.
That doesn't mean toys are not getting better. They do. Slowly. Because business keeps the pressure on shipping the results, not spending time fighting another js bundler configuration hell or SuperFancyNewAbstractFactoryBuilderSpringKillerWebFramework.
We don't think about business and don't like to think about it. We want to feel very important, we hate to realize that most of the time we are just tools to reach business goals.
Job security
I agree with your sentiments: https://benwheatley.github.io/blog/2025/02/26-14.04.07.html
I've been in the Apple world for the last decade or so, but everything I've seen with SwiftUI feels like it's only been done to attract web developers who are used to React; the "magic" observables etc. seem to be just a bit unstable and a pain to debug when they do go wrong, but even when they're working as intended they still make it harder to work with than the old UIKit way of doing things, where manually observing changes to state could be as simple as a `didSet {}` block, or using NotificationCenter.
All that stuff about how SwiftUI is supposed to make it "simple" or "easy" to make a UI is nonsense: we had "simple" with Interface Builder. And with VisualBasic's cross-platform cousin, Xojo.