Some authors have bravely tried to address what I identify as the key issue, which was briefly discussed: acknowledging that software is thought-stuff and that knowledge about the human mind is hugely relevant.
Then there’s the entire topic of “Agile” which is (as of today) even more lacking than software engineering, when considered as a discipline, but which I believe has the potential to get out of the rut where software engineering is stuck, because it’s less committed to its current institutions and ideologies, and more committed to getting results.
I think it’s difficult to make a correct C compiler because C is more or less assembler in fancy clothes, and as such it’s a language burdened with a lot of contigent history of human decisions about processor architectures. It’s easier to make a Lisp interpreter, except that because of this contingent history you can’t have Lisp all the way down, and at some point it becomes hard to make a verifiably correct whatever-it-is that connects the neatly mathematical and elegant formulation to the next layer of implementation down.
This is speculation, but making a “fresh start” from the level of logic gates on up might be the only way to no longer have this problem.
Some authors have bravely tried to address what I identify as the key issue, which was briefly discussed: acknowledging that software is thought-stuff and that knowledge about the human mind is hugely relevant.
Then there’s the entire topic of “Agile” which is (as of today) even more lacking than software engineering, when considered as a discipline, but which I believe has the potential to get out of the rut where software engineering is stuck, because it’s less committed to its current institutions and ideologies, and more committed to getting results.
I think it’s difficult to make a correct C compiler because C is more or less assembler in fancy clothes, and as such it’s a language burdened with a lot of contigent history of human decisions about processor architectures. It’s easier to make a Lisp interpreter, except that because of this contingent history you can’t have Lisp all the way down, and at some point it becomes hard to make a verifiably correct whatever-it-is that connects the neatly mathematical and elegant formulation to the next layer of implementation down.
This is speculation, but making a “fresh start” from the level of logic gates on up might be the only way to no longer have this problem.