The Architecture of Open Source Applications
was always meant to be the start of something, not the end. We'd really like to collect more descriptions of complex systems' architectures and the lessons to be learned from them, but to do that, we need your help. If you are, or know, the key designers or developers associated with the projects listed below, please let them know that we'd like to hear from them. Where we don't have an application, just a category, please suggest a particular project and make an introduction, and if there's something missing that you think would teach people a lesson that would otherwise go untaught, please let us know that too.
- GDB (or any other industrial-strength debugger).
- Gecko, WebKit, or another HTML rendering engine.
- BZFlag or some other real-time multiplayer game (we have two turn-based games in vol 1).
- The Thunderbird desktop email client.
- Inkscape and/or The Gimp.
- OpenOffice Calc or Gnumeric (i.e., a spreadsheet).
- Vim or Emacs (old-school text editor).
- The Arduino IDE (which is written in Processing).
- Something (anything) for small-memory/small-power devices.
- A penetration testing toolkit.
- OpenSSH (please please please oh please).
- GnuPlot or matplotlib.
- nginx (or another modern lightweight web server).
What are we missing? What would be an opportunity to describe and explain design principles that we haven't already covered? Remember, it doesn't have to be a beautiful architecture to be instructive... But please note, we're looking for things whose designs can be described in essays—there are entire books on the Linux kernel.
Later: as per another post, the best way to get something included in volume 2 is to offer to write a chapter yourself. If you don't know enough to do that, please take a few moments to collect the names and email addresses of people who could and forward them to me.