DEV Community

Discussion on: Am I the only one who thinks we've made software development way more complicated than it has to be?

holywar20 profile image
Bryan Winter • Edited on

I think your 100% correct.

I'm at the point where I am extremely careful about the things I include in my projects. I spent way to much time trying to hammer tools together than I do solving problems.

That isn't to say we have lots of bad tools. I think the tooling in modern web development is good. The problem is we try to use every tool for all things in pursuit of mythical re usability, but we aren't factoring in the overhead cost of dealing with the extra complications in our tech stack, and the way it can hide bugs from us we didn't even know existed. I'd much rather have a type error in hand-written vanilla java-script than an NPM error because a package 3 levels of dependencies deep forgot to consider a corner case.

Tool use is 'deep' complexity, which prevents 'wide' complexity. But it's all complexity, so I avoid using at tool, or a framework until I need to solve an actual problem, rather than creating a tool chain of a million tools just in case I need it later. When I do, I include the tool or library in a service, at a high level and make it part of the root requirements. So in JS, you need a good CSS framework, a good SPA framework, and then libraries for specific problems. Moment for time handling, or paper.js for graphics, etc. OTher than that, I keep my hierarchy of dependencies as flat as possible.

I do think the current eco-system is over-engineered and we would benefit from focusing on the basics. If you can't easily reason about what is going on under the hood, it's probably got to much abstraction, and it's a good thing to remove abstraction that isn't required.

There is no better feeling in the world than deleting code you don't need and having your stuff still work.