I have been down the thought-path of programming language design which eventually found its implementation in code generation. Not black box code generation (like what compilers often are in practice) but code generation that would then sometimes need tweaking. This was never thought to be principled enough to go beyond the drawing board. It was too primitive. First you have to have discipline enough to version control the generated and the tweaked bits properly. You also need to keep tweaks in sync. If one part needs a manual tweak, you need to redo it on each regeneration. Or for another part. Then you have to read all of this code. Another burden. And code is slow to read. (for some entities)
That was all too primitive. Which is why I think of GenAI as Flintstone Engineering. Take on marvellous technology and apply it in the most dumb way possible. The immediate savior is indeed v--- coding, because then you effectively have a black box code generator and avoid most of the drawbacks. Short of that you need something not stupid on top like enabling formal verification, specifications (for hooomans), and rich tests (again readable by hooomans).
Next is the non-determinism. I did not get into technology to V---. I got into it because it was precise, oh so very stupidly precise. People then reply but hooomans are non-deterministic too. Heh, but I have millions of years of experience with the “non-determinism” of “hooomans”. And I am one as well. I don’t have that for some alien species, or for uncanney valley machines.
And the above is just for the idealized world where I pretend to be an autonomous professional. Closer to “economics” but still in the professional bubble is the alienation of talking to a sycophantic chatbot. I am now having back and forths with it to get it to understand “my” needs. So that it can program for me, the thing that I got into the profession for.
(Three years ago: people complaining about people getting into programming “for the money” (to eat). Now: people puzzled that people are attached to the act of programming.)
Zoom one step out and you are still in the professional context. Now you have to deal with people who send you messages that were maybe LLM generated. And these are the people who will relay a message from someone else by pasting it into the message. Not with a preamble that someone else wrote it. Not with a blockquote. The same kinds of people who will shamelessly admit to not bothering to write a message that they apparently expect you to read.
(How many people are now euphorically talking about they can heave useless and redundant work on other people by loosing their chatbots on systems made for hooomans? It saves them time. Again shameless.)
Further out, companies and organizations can now communicate between themselves with LLMs. Is anyone home?
As a hobby, people are submitting plausible-looking code to maintainers. It looks correct. I guess? Until some subject expert goes through it and says that the train of thought makes no sense, the code makes no sense. Did you LLM write the code? Did you LLM write the commit message? Both. Now you have code submitters that might not even have anyone home on the account while the maintainers have to pick up the pieces. Joy? Cooperation?
All close to my work as an “autonomous” professional. But I reject the idea that you have the glorious tech on one side and “economics” on the other side. I always should ask what technology is doing to people and for who it is doing it (paraphrased from Doctorow).