Archive for the 'Software Is Hard' Category

Algorithmic or Arbitrary, Software’s Great Divide

Tuesday, May 29th, 2007

A recurring theme has emerged in what I’ve been reading the last few days. It boils down to the differences between software based on a clean, logical algorithm, and software based on arbitrary rules.
The topic first arose in a conversation I was having with Chris Conway over at Code Reads, exploring the pros and [...]

Code Read 7 - David Parnas on Star Wars Software

Friday, March 9th, 2007

In 1985, David Parnas resigned from his position on a panel convened by the Strategic Defense Initiative Organization, which was overseeing the “Star Wars”, or SDI anti-ballistic missile defense program. Along with his resignation he submitted several short essays explaining why he thought the software required for Star Wars could not be built, at [...]

Code Read 4 - Dijkstra’s Notes on Structured Programming

Saturday, February 10th, 2007

Edsgar W. Dijkstra’s “Notes on Structured Programming“, which is Code Read 4, stuck me as shockingly prescient - or perhaps it is just that we creators of software are very slow to learn these lessons. Surely something written almost 40 years ago should feel more dated than this., and we should have learned or [...]

Code Read 3 - The Humble Dijkstra

Monday, February 5th, 2007

The third Code Read that Scott Rosenberg chose was another Edsgar Dijkstra essay - this one called “The Humble Programmer“. Vastly oversimplifying, Dijkstra is making this very important point: despite all of our achievements, we are limited creatures, and our intellect can easily be overwhelmed by our own creations. Particularly as [...]

Code Read 2 - Dijkstra on Goto

Tuesday, January 30th, 2007

Edsger W. Dijkstra, a giant of computer science, wrote an article long ago arguing that the “goto” statement was bad for programmers and the programs they wrote. Week 2 of Code Reads covers this article.
The statement “goto is bad” is exactly the kind of attention getting statement that provokes internecine fights between partisans of various [...]