I think programming work in the next decade will be done by logicians using something like TLA+[0] to simply describe specifications.
And something like GitHub co-pilot to translate those specifications to working code.
I think programming work in the next decade will be done by logicians using something like TLA+[0] to simply describe specifications.
And something like GitHub co-pilot to translate those specifications to working code.
However... The software doesn't need to be good, just functional. Getting good specs is hard too, but the specs don't need to be complete... I could imagine a terrifying world of startups with very fast "functional" MVPs that are slow as dirt and robust as paper with giant bugs caused by bad specs. It wouldn't be too different from the status quo!
It can just be something from the "formal methods"[0] school of research.
I heard assembly code for CPU's are now days optimized for compilers instead of humans.
This seems doubtful given the average quality of human code.
Specify programs by only a very brief specification is similar to No Code/Low Code. It's great for prototyping and not much more.
The "your analyst will write your low-code solution" idea is still futurism.
[0]: https://en.m.wikipedia.org/wiki/J_(programming_language)
How is that not software engineering?