Comment on If you are a software/hardware developer and you think it is ok to make things more and more complicated. YOU are what is wrong in this world.

TootSweet@lemmy.world ⁨1⁩ ⁨week⁩ ago

I’m a software engineer and I can say it’s a huge systemic issue in the whole software industry. (I wouldn’t want to speak to the hardware industry given how little experience I have with it.) Part of the problem is managers. They think more features is better.

A good example is Java web development. (Not directly relevant to your story about iPads, but it’s an example I’m familiar with.) Java 1.0 was released in 1995. In 1996, they released a framework for doing web development in Java called “Servlets”. They definitely made some terrible design decisions when they made Servlets. (The use of XML for configuration. JSPs being impossible to render to strings. The near impossibility of writing your own “Servlet container”. Etc.) But it worked. And many of the issues with it were products of the time and only became apparently “mistakes” a decade later or more.

When people started realizing those were mistakes, they abandoned Servlets and built something bett- just kidding, they built a new layer of way-overengineered bullshit on top of Servlets called “Spring”. It became the industry standard for Java web development. So then in order to do web development in Java, you have to understand both Spring and Servlets. Actually, no you don’t. You just have to be able to throw shit at the wall and enlist the help of the guy who does understand both Spring and Servlets and isn’t afraid to look at the source code of both to figure out why they don’t act as advertised.

Well, of course, that wasn’t good enough. “It’s too cumbersome.” “I have to type too many things.” In true Java fashion, they added another janky floor to the house on the crumbling foundation. “Spring Boot”. It sits on top of Spring and configures a bunch of stuff “aUtOmAgIcAlLy” for you. But if you change the tiniest thing, you better just plan for days of dependency hell trying to get it to JUST COMPILE YOU MOTHERFUCKER.

Java sucks ass in every way and I hate writing Java. But if I have to write Java, I’d rather just use Servlets directly than the house of cards the industry has built on top of it any day. For all its warts, at least it does what you tell it and nothing more. Not to say there are no better alternatives not built on Servlets. But there’s no need for anything on top of Servlets. Any attempt at such could only make things worse.

(Ok. One exception. If I could get Servlets except you can eschew XML with the absolute minimum amount of moving parts strictly necessary to make that happen, I think that would improve Servlets. Also, I’d try to find an alternative to JSPs.)

That’s far from the only example in the Java ecosystem. Java’s just addicted to adding layers of complexity to “fix” the layers underneath.

Outside the Java ecosystem, there are similar issues in a lot of other communities. JS and Ruby developers are known to pull in tons of heavy dependencies without considering the consequences, for instance. C++ is so complex that development teams have to choose a common subset of the language to get anything done.

original
Sort:hotnewtop