upvote
Ever since the first programming language the goal was to make the work easier, although there are different kinds of "easy", and sometimes you end up worse off because tools don't live up to promises.

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.

reply
> Ever since the first programming language the goal was to make the work easier

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.

reply
> 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

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.

reply
> Whenever the subject of AI comes up in connection to programming it feels like the conversation always misses the human element. When you look at this only in terms of human behavior I am not seeing anything new with AI

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.

reply