Hello! This article is part of a Death by 1000 Cuts series that shines a light on glaring software development industry failures. I'm confident you'll return to 1000 articles someday.


Mike Tyson is known for his deadly punches. He was the undisputed heavyweight champion of the world from 1987 to 1990. One might think that heavyweight is good, it’ll pack a better punch. However, when it comes to software solutions heavyweight solutions are bullshit.

Just Don’t

I get it, you know Java with Spring Boot. However, don’t use it to render a single web page.

Did you know you can serve a web page with a single line of code in Python?

python3 -m http.server 9000

Add an index.html file in the same directory and you can view it in your browers.

If you don’t like Python, you can use Node.js.

npx serve

Hell, you can even use netcat.

echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l 9000

Moar Dependencies

I love cloning a repository to test what should be a simple solution only to see something like this:

(node:5575) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)

Puny, indeed.

Solutions

  1. Use the right tool for the job. If you need to solve a simple problem, use a simple solution.
  2. Don’t over-engineer. You don’t need a full-blown framework with fourty-two packages to solve every problem.
  3. Keep it simple. Simple and readable solutions are easy to maintain.

Conclusion

Over-engineered solutions are rampant. It’s only going to get worse as programmers copy paste code generated by GPTs run by Co-Pilots.

Think before you deploy a heavyweight solution or you’ll ++(dystopian digital hellscape) for your kids.


Other Deadly Cuts