The human element is "What do I want?" You have ideas about how you need things to work. Some folks don't care much at all about how things work, just that they can shove a thing out the door and get paid with minimal effort. Sometimes their boss is completely in agreement. Sometimes things fall apart because nobody cared enough to bother, and sometimes even that doesn't matter, and everybody gets paid anyhow.
Sometimes you wish things mattered more, and sometimes they do.
The historical evidence disagrees. The point of software is automation and the point of automation is elimination of labor by any means. Nowhere in that is easier.
Clearly developers have forgotten what automation is because the quest for easier satisfies the narcissism of people who lack the ability to see otherwise.
The issue is not the quality per se (I can write hacky things if that’s needed). The issue is when you become responsible for the shoddy things that were rushed and is now hacks on pile of hacks.
You’re not wrong. I think that’s the confusion in LLM conversation. It seems that most people believe that programmers only think about code like it’s some kind of lego bricks we have to assemble. While the truth is that most projects is about building a sets of concepts that interacts in a specific way. The code is just the medium to do so, like letters helping to create words when writing.
I was reading the OpenBSD code (some investigation about a pen tablet) and the layers in abstraction was the following:
xinput -> ws driver (for x11) ->|ioctl syscall| -> wsmouse (wscons subsystem) -> hidms (hid mouse) -> ums (usb mouse) -> uhidev (usb hid device) -> usb (root controller hub abstraction) -> xhci (usb root controller under the hood, usb side) -> pci_xhci (usb root controller, pci side) -> …
You can stop at several point and not worry about what’s in the lower level of the abstraction tower, but those mechanism exists and have been built by someone. Imagine if that tower has been flattened out and all the code needed to coexist within the same module. It would be madness.Programming was always about taking some lower order of things and rearranging it into meaningful concepts for some higher purposes. Whether it’s the DOM api, the jQuery suite of functions, the React model of components and reactive state, the goal is to create UI widgets for a page.
People (sometimes?) see the building blocks (dom api…) and the end result (figma sketch) but have no idea how the two connect.