Every couple of years, I indulge in a bit of sympathetic magic by putting together a list of books I want someone to write, so that I can review them. If nothing else, doing this helps me figure out what I currently think is and isn’t important in our profession. Previous versions were written in 1997 and 2003; the latest revision lists 16 books that would sell well whlie making the world a better place.
Earlier this year, Mike Godfrey and I wrote a paper titled “Architecture and evolution of the modern web browser” that had almost the exact goal that you describe for the first book (although for only one domain):
grosskurth.ca/papers.html#browser-archevol
That is, “lay out the key characteristics of the problem domain” (Section 2), “sketch a ‘reference architecture’ for a solution” (Section 4), and “dissect the chosen applications in detail, describing where, how, and why they differ from, or elaborate on, the reference architecture” (Sections 5 and 6). We looked at Mozilla, Konqueror, Epiphany, Safari, Lynx, Mosaic, and Firefox (Opera would have been nice, too, but it’s not open source). There’s also an earlier, shorter version of the paper:
grosskurth.ca/papers.html#browser-refarch
The project was inspired by Ahmed Hassan and Ric Holt’s excellent “A reference architecture for web servers” (2000), which examined Apache, AOLserver, and Jigsaw:
plg.uwaterloo.ca/~aeehassa/home/pubs/wcre2000.pdf
Also see “Reference architecture for multi-protocol instant messaging clients” (2004) by Antonio D’souza, Kristina Hildebrand, and Gilad Israeli:
http://www.cs.uwaterloo.ca/~kdhildeb/cs746/project.pdf
Finally, keep an eye on Grady Booch’s forthcoming “Handbook of Software Architecture”:
http://www.booch.com/architecture/index.jsp
I thought these books already existed and I was interested in taking a look at ‘Programming Small Devices’ until I saw your last paragraph. After I’ve had some experience programming a game for the Nintendo Gameboy Advance, say, I’ll consider your offer
I could probably put a dent into “Programming Small Devices”… and don’t forget, a few hundred million small devices actually have garbage collectors – they just don’t work that well
You’ve written a couple books, Greg – what is the book-writing process like? How does one get started, and how does one get finished?
Pingback: The Third Bit » Blog Archive » More Sympathetic Magic