Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
Edsger DijkstraRead
Program testing can be used to show the presence of bugs, but never to show their absence!
Interpretation
Testing can identify existing bugs in software, but it cannot guarantee that there are no bugs left.
In this quote, Edsger Dijkstra highlights a fundamental principle of software testing: while testing can demonstrate that bugs exist in a program, it cannot prove that a program is entirely free of defects. This reflects the inherent limitations of testing in the complex nature of software systems, where it is possible for undetected bugs to persist even after rigorous testing efforts.
In practice
During a software development meeting to emphasize the importance of thorough testing to the team.
Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
Simplicity is prerequisite for reliability.
The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.
We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers.
The tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.
LISP has jokingly been described as "the most intelligent way to misuse a computer." I think that description is a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
There are no secrets on an successful software project. Both good and bad news must be able to move up and down the ptoject hierarchy without restriction.
Even though you can't get along without your smartphone, there are not many essential services on your smartphone. They're mostly convenience; you could live without it. Essential means you die without it. A gadget that warns you're about to have a heart attack - that's essential. We're about to go into that phase with smartphones.
Yes, I was the one people credit with inventing the cell phone. Now, whenever anyone gets a dropped call, they blame me.
The only thing that was in my mind when we made that first phone call was, 'Is it going to work?' We had all these parts hand soldered together, engineers standing by with the soldering iron - just in case.
I am much less concerned with whatever it is technology may be doing to people that what people are choosing to do to one another through technology. Facebook's reduction of people to predictively modeled profiles and investment banking's convolution of the marketplace into an algorithmic battleground were not the choices of machines.
When the Internet publicity began, I remember being struck by how much the world was not the way we thought it was, that there was infinite variation in how people viewed the world.
Subscribe for the occasional hand-picked quote. No noise.