3 ms·
While I agree that complexity is bad the fact that we don't really have a shared understanding of what complexity is doesn't help. At worst, it can be just anot
by osigurdson 1y ago
While I agree that complexity is bad the fact that we don't really have a shared understanding of what complexity is doesn't help. At worst, it can be just another synonym for "bad" that passes through the mental firewall without detection. For instance is having multiple files in a project "complex"? If I am unfamiliar with a codebase is it "complex" and I therefore have to re-write it?
- recursivedoubts 1y agoPart of the problem with complexity is that it is very easy for engineers to justify. Yes, there is an important distinction between necessary and accidental complexity, but, to take a point from the essay, even necessary complexity can be reduced by saying "no" to features. This is why I treat "complexity bad" as a mantra to keep me in the right mindset when programming. Complexity bad. Even necessary complexity. We may have to deal with it, but, like fire, it's still dangerous.
- zero_shift 1y agoWhat exactly is complexity? How do I recognise it? When do I tell whether something is complex or I am just not very familiar with it?
- recursivedoubts 1y agoreally hard questions but complexity bad
- osigurdson 1y agoIf Grug sees new code base, sometime Grug get anxiety about learning new code. What in it for Grug? Says Grug. Rather start new project and say "complexity bad" to other Grugs. If other Grug or big brain disagree, create Grug tribe - show bible to other Grugs and big brains. Must convert to Grug way or leave team. Complexity bad.
- zero_shift 1y agoGrog is not Grug. Grog talk like Grug, walk like Grug, obey rituals of simplicity worship like Grug. But Grog secretly just mean: anything he didn't invent, not worth learning, anything not making his resume-weave, not worth doing. So Grog is always saying, boo! complexity here! rewrite time!!
- osigurdson 1y agoGrug like say - No True Grugsman. Only True Grug pure Grug.
- drewhk 1y agoGrug hurt itself in its confusion!
- toastercat 1y agoI think you hit the nail on the head. This article is definitely biased against modern front-end development for example and recommends HTMX as less "complex", but from what I've seen, using HTMX just trades one form of complexity for another. This part: > back end better more boring because all bad ideas have tried at this point maybe (still retry some!) I entered a Spring Boot codebase recently, and it was anything but boring or "simple" -- everything is wrapped by convention in classes/abstract classes/extending layers deep of interfaces, static classes for single methods. Classic OO design that I thankfully moved away from after college. I think the author makes good points, but I don't think the author is any different than your average developer who accuses the thing they are not familiar with to be "complex".
- jbs789 1y agoSeems consistent to me. Does your example fit within his caveat “(still retry some!)”.
- const_cast 1y agoThe main thing with modern web applications is that everyone wants to move complexity away from the backend into the front end. The problem with this is that nobody asks if it can be done, they just start doing it. The result is that you still end up with a complex backend, but now you also have a monstrous front end. And now you need to reconcile state between two different places - good luck! That problem right there - reconciling state from different places - is one of the hardest ones in software engineering.
- frollogaston 1y agoYeah, everyone says complexity is bad