|
Hahaha, everyplace everywhere. I think two things play into this: Layers.. it is just easier for people to add layers around something, not touching and understanding the original code and doing it right there. And then profs or someone else always says layering is good!
(It may sure be, or also sometimes such "hacks" are the right thing to do, but if that is always the default mode... uhh oh). And second, university training: OOP, design patterns, software layers, all claimed to lead to structured good programming automatically still taught in 2023, which is just not true. By untrained or unexperienced personnel leads to worse than 80s spaghetti code.. Just yesterday I exercised with relative who is in university for exam.. Java, design patterns, arggh. Imo it just makes no sense at all to try to teach students inheritance and design patterns with Cat/Dog/Animal et al, it is so backwards. You need to program for a while bigger real systems to see some patterns emerge and their usefulness, and then can relate to the formal way and maybr use some patterns reasonably. But starting with those on toy examples just leads to what you describe:
People going in with their trained knowledge and applying that to everything without rhyme or reason. What could be a simple five liner function already becomes a convoluted abomination. Just one concrete example, but this then on many levels of software engineering. Who or what will save our future? :D No, it won't be ChatGPT.
(Second lol btw, relative really showed me how likely all of then may use ChatGPT i. their online exams...) |
Most people do not have the memory span to work with mutable state, so something simpler should be the default.