Bookshelf Classic: The Art Of Computer Programming

The four volumes of Donald Knuth's work
Anyone involved in computer programming should be familiar with the works of Donald Knuth (the K is hard and the name is pronounced Ka-Nooth).  If not, the New York Times can remedy that, having recently published a profile on Knuth titled The Yoda of Silicon Valley.

Wise he is.  Show he does, the dark and light arts of algorithms:

Volume 1: Fundamental Algorithms
Volume 2: Semi-numerical Algorithms
Volume 3: Sorting and Searching
Volume 4A: Combinatorial Algorithms

A very important concept, however, can be found in the title.  While students study computer science, Knuth reminds us it's still an art.  In that sense, I would compare his books to the collected works of Shakespeare -- creative, insightful, but difficult to read and better understood in a study group or book club.  Whether Knuth or Shakespeare, their works are rarely read in their entirety, but their impact can still be felt throughout society.

Programming is a science, but it is apart from the natural sciences like biology, chemistry, and physics.  These fields have a real world in which to make observations, take measurements, and draw conclusions. Test a bridge with a weight limit of five tons and you can be assured it will support four, three, two, and one ton vehicles.  In contrast, software takes place mostly in the mind and has few such guidelines.  In the 1992 book "The Day The Phones Stopped," author Leonard Lee recounts a bug in a prototype fly-by-wire F-16 fighter:

"...it contained a programming error that would have caused the plane to flip upside down every time it crossed the equator."

Programming is an art, but it isn't a performing art like acting, singing, and dancing.  Rather, it is an introverted activity more akin to painting, sculpture, and writing.  Code can be beautiful -- how it's indented, how it's organized, how it solves a problem, how fast it runs, how it remains flexible over time.  Beauty can also be found outside the code in how it appears and interacts with the user; Apple products come to mind.  For the antithesis, see corporate in-house software. 

Knuth's essay on "Computer Programming As An Art" was printed by the Association for Computing Machinery in 1974.  You can download his professorial take at the ACM Digital Library or read it at Paul Graham's blog.



Comments

Popular posts from this blog

Bookshelf: UNIX A History and a Memoir

Bookshelf Classic: The C Programming Language

Connections