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