Full Title or Meme
The doctrine that all events, including human action, are ultimately determined by prior events and conditions together with the laws of nature,
ContextIn 1976 Niklaus Wirth appears to make the statement that computer programs could be understood with the following statement:
In recent years the subject of Computer Programming has been recognized as a discipline whose mastery is critical to the success of many engineering projects and which is amenable to scientific treatment and presentation. It has advanced from a craft to an academic discipline. The initial outstanding contributions toward this development were made by W. E. Dijkstra and C. A. R. Hoare. Dijkstra's "notes on Structured Programming" open a new view of programming as a scientific subject and an intellectual challenge, and it coined the title for a "revolution" in programming. Hoares's "axiomatic Basis of Computer Programming" showed in a lucid manner that programs are amenable to an exacting analysis based on mathematical reasoning.
Computer science education has since focused on object-oriented computing and verification of correctness, which had some successes, but have not lived up to the hype that accompanied their introductions.
Alan Turing had proven that the full progress of a program cannot, in general, be known without actually running the program. While Wirth's book does not mention it, all computer scientists have learned Turing's theorem; but it does not appear that they understood how Turing's limitations would apply to the everyday work of computer programmers. That day has certainly arrived. Writing about algorithms and Donald Knuth, Siobhan Roberts commented:
Algorithms written by humans — tackling harder and harder problems, but producing code embedded with bugs and biases — are troubling enough. More worrisome, perhaps, are the algorithms that are not written by humans, algorithms written by the machine, as it learns. Programmers still train the machine, and, crucially, feed it data. (Data is the new domain of biases and bugs, and here the bugs and biases are harder to find and fix). However, as Kevin Slavin, a research affiliate at M.I.T.’s Media Lab said, “We are now writing algorithms we cannot read. That makes this a unique moment in history, in that we are subject to ideas and actions and efforts by a set of physics that have human origins without human comprehension.” As Slavin has often noted, “It’s a bright future, if you’re an algorithm.”
If the course of a computer program cannot be known in advance, any prediction about the real intent of the program cannot help inform the way that humans lead their lives in the current world as we cannot, in theory, know the results of any complex device that we may build in the future. That is not a statement that in any way should limit the responsibility of the programmers from their responsibility to society, even though their own code of Ethics refuses to articulate that ultimate responsibility.
- Niklaus Wirth, Algorithms + Data Structures = Programs. (1976) Prentice Hall Preface ISBN 0-13-022418-9
- Alan Turing, The Halting Problem. (1936) Wikipedia https://en.wikipedia.org/wiki/Halting_problem
- Siobhan Roberts The Yoda of Silicon Valley. (2018-12-17) New York Times https://www.nytimes.com/2018/12/17/science/donald-knuth-computers-algorithms-programming.html