AI is programming's next abstraction. What should we teach?
lernerpython.com
lernerpython.com
AI is meant to do the work for you. That is like hiring someone, which is not an abstraction, and also why so far we have to check what it does in ways that is different than checking Assembly after compilation. One is about optimization that isn't often needed, the other is about double checking the result actually worked.
Either you’re confused, or I am misreading (and not understanding) your comment. How is hiring a contractor not an abstraction for doing work?
I mean, it’s not an abstract class or something, but I don’t think that’s what anyone means.
I meant that every time our programming has taken place further away from the raw hardware, we've created abstractions that allow us to think at a higher level, allowing us to build larger and more complex systems. That also let more people write code.
I believe that programming with AI means no longer thinking in terms of strings, lists, and dicts, even though they're clearly being used by a lower level (assuming that AI is writing Python). This is similar to how we don't think in terms of bits and registers, even though those are still being used at the even-lower level.
I'm starting to think about what abstractions we'll want to create and use at this higher level.
My point is that to the extent AI becomes as effective as its meant to be by design, it will completely eliminate even thinking in those higher abstractions. It will do the abstractions for you.
It's a minor point, and I get the general picture. AI is allowing very high level use of the computer. However, the distinction means AI's effectiveness comes from taking away the use programming languages, to the extent it is doing what it was designed to do.
This is why I believe thinking it's empowering engineering is accidental to AI NOT working well, because it wasn't design to empower as much as replace engineering.