Learning to Live with Errors
You need to be signed in to add a collection
Annotation: If trials of three or four simple cases have been made, and are found to agree with the results given by the engine, it is scarcely possible that there can be any error. (On the mathematical powers of the calculating engine, Charles Babbage, 1837) If Charles Babbage was right, you would just try to run your program on three or four sample inputs and be sure that it will work correctly. Sadly, the world is not so simple. Since the invention of electronic computers, we mostly eliminated hardware issues, but software errors remain. And programmers spent over 60 years finding different strategies for dealing with coding errors. In this talk, I look at five strategies for dealing with errors that appeared throughout the history of programming. Understanding the origins of different approaches to errors is not just a fun historical exploration, but it sheds light on current issues in programming, including computer science education, hiring process and the never-ending programming language wars.
Transcript
Annotation: If trials of three or four simple cases have been made, and are found to agree with the results given by the engine, it is scarcely possible that there can be any error. (On the mathematical powers of the calculating engine, Charles Babbage, 1837)
If Charles Babbage was right, you would just try to run your program on three or four sample inputs and be sure that it will work correctly. Sadly, the world is not so simple. Since the invention of electronic computers, we mostly eliminated hardware issues, but software errors remain. And programmers spent over 60 years finding different strategies for dealing with coding errors.
In this talk, I look at five strategies for dealing with errors that appeared throughout the history of programming. Understanding the origins of different approaches to errors is not just a fun historical exploration, but it sheds light on current issues in programming, including computer science education, hiring process and the never-ending programming language wars.