Yesterday, I got an E-mail message from a professional acquaintance, suggesting that I have a look at a new book, The Architecture of Open Source Applications, edited by Amy Brown and Craig Wilson. The aim of the book is to provide worked examples of how significant, real-world applications have been designed.
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another’s mistakes rather than building on one another’s successes.
As any regular reader knows, I am a proponent of the open-source model of software development; I’ve cited the value of openness as a corrective against error, as well as the value of source code as the best possible documentation.
I confess, though, it never occurred to me to cite its value as an educational tool for other developers; now, having been prodded, it seems to me a bit strange, since much of my early education in programming, back in the early 1970s, came from studying other folks’ programs. (This also follows the model of science, of course.)
In any case, though I have not had time to read all of it, the book seems like a very valuable resource. It contains descriptions of the architecture and design process for 25 open-source applications; if you are an aspiring developer, I think reading these accounts would be very well worth your time. You may not agree with all, or indeed any, of the design decisions that were made; understanding why those decisions were made, even the wrong ones,. can be of considerable educational value.
For example, the book contains a chapter on the
sendmail(8) program (the oldest, and perhaps still the most common mail transfer agent on the Internet) by Eric Allman, the original author and designer. The discussion of the evolution of the application’s design is enlightening; and reading its history provides some valuable insights into the history of E-mail (especially for younger readers who were not around at the time).