> AI maybe eats software when people learn to fully specify requirements
The thing is: natural languages are for humans, and they are ambiguous by construction. Programming languages are for machines, and must be unambiguous in order to work. The role of a software developer is to translate the "human requirements" into unambiguous code.
Now say you manage to specify a program in a natural language in an unambiguous manner, then you have just invented a new programming language. And people will have to learn it, because it won't be a natural language anymore. It will just be a programming language that somehow looks like a natural language.
IMHO, that is fundamental: there will always be a need to translate between the natural language and the programming language, and that is the role of a human who actually understands the natural language (as opposed to an IA that interpolates between data points it was trained on).