Code to read and learn from
The best way to learn programming is by writing programs. Reading programs written by brilliant programmers is equally important. If someone asks me for source code to read and learn from, without a second thought I will point him/her to [SQLite][1]. The following merits make the SQLite source code an ideal learning ground for programmers:
 
 * Informative, balanced comments.
 * Good coding practices: well factored-out functions, idiomatic use of the implementation language, comprehensive tests etc.
 * A real world project. Probably SQLite is world's most widely deployed database! Still it is small and amicable to a single brain.
 
SQLite is implemented in C. Are there open source projects written in other languages/paradigms that share the above merits? Personally, I would like to know about a Lisp project. Many will be interested in Java/C++ projects because millions of words have been written (wasted??) about designing 'maintainable object-oriented software'. It will be  informative to see this wisdom in practice. 


  [1]: http://www.sqlite.org/
Code to read and learn from
===

The best way to learn programming is by writing programs. Reading programs written by brilliant programmers is equally important. If someone asks me for source code to read and learn from, without a second thought I will point him/her to [SQLite][1]. The following merits make the SQLite source code an ideal learning ground for programmers:
 
 * Informative, balanced comments.
 * Good coding practices: well factored-out functions, idiomatic use of the implementation language, comprehensive tests etc.
 * A real world project. Probably SQLite is world's most widely deployed database! Still it is small and amicable to a single brain.
 
SQLite is implemented in C. Are there open source projects written in other languages/paradigms that share the above merits? Personally, I would like to know about a Lisp project. Many will be interested in Java/C++ projects because millions of words have been written (wasted??) about designing 'maintainable object-oriented software'. It will be  informative to see this wisdom in practice. 


  [1]: http://www.sqlite.org/