
Code which every programmer must read before dying - r0h4n
What open source codes/projects must every programmer read before his death?
======
jarek-foksa
If you are fronted web developer then you should defenitely read jQuery
sources. There is a lot of patterns that you could borrow and reuse in your
own JS libraries.

A good place to start is this interactive code viewer:
[http://www.keyframesandcode.com/resources/javascript/deconst...](http://www.keyframesandcode.com/resources/javascript/deconstructed/jquery/)
There is also a great presentation by Paul Irish ("10 Things I Learned from
the jQuery Source"): <http://www.youtube.com/watch?v=i_qE1iAmjFg>

------
dsm
I'd say the original lisp paper: <http://www-
formal.stanford.edu/jmc/recursive/recursive.html> by John McCarthy

------
thirsteh
SQLite probably has some of the cleanest and most elegant C you will ever see:
<http://www.sqlite.org/sqlite-src-3070602.zip>

~~~
piotrSikora
I won't argue about code quality of SQLite, because I know it's superb, but
the coding style is just horrible.

Take a look at anything in OpenBSD (ex: [http://www.openbsd.org/cgi-
bin/cvsweb/src/usr.sbin/bgpd/bgpd...](http://www.openbsd.org/cgi-
bin/cvsweb/src/usr.sbin/bgpd/bgpd.c?rev=1.166)) or nginx
(<http://nginx.org/download/nginx-1.0.0.tar.gz>).

~~~
michaelcampbell
> but the coding style is just horrible.

I had to go look. I agree; there are some things done consistently in the code
that are high on my nitpick "don't do that" list. Ugh. I'd have to reformat to
work on it, then format to whatever standard they use on checkin, I think.

------
madhouse
There is no single code or project that I could name. Not because there are no
open source codes or projects that weren't worth reading, because there are
thousands of them. I couldn't name any, because people are different, and what
one finds good and worthy code, the other finds rubbish - thus, there can be
no single project that would make every reader happy.

On the other hand, if you look at the question in a different way, you could
say that the code (be it open source or not) every programmer must read before
his end, is his own. As one looks at his life in one's deathbed, so should a
programmer look at his code.

------
Kafka
The Sudoku solver by Peter Norvig <http://norvig.com/sudoku.html> and not only
for the code but also for the excellent essay.

------
willvarfar
Literate programming is the style of programming that's _intended_ to be read:
<http://www.literateprogramming.com/>

Quite the contrast with the Bourne Shell: "Nobody really knows what the Bourne
shell's grammar is. Even examination of the source code is little help." – Tom
Duff <http://en.wikipedia.org/wiki/Bourne_shell#Quotes>

~~~
camperman
Speaking of Tom Duff, his Device is well worth studying.

[edit] michaelcampbell has already recommended it below - missed that.

------
homofaber
If you have only few minutes before execution, and want to fix an old X
programming mystery, I would suggest dwm.c:
<http://hg.suckless.org/dwm/file/e901e70f69e8/dwm.c>

It is so easy to understand inner workings of window manager in X reading this
code, and you do not need much time for it (>2000 SLOC).

~~~
IvarTJ
As a relatively new C programmer, I have followed the dwm source code while
trying to make my own window manager. It has been very helpful.

------
gavaletz
The Linux kernel. If you look at it really closely it isn't so pretty, but its
massive size and overall complexity for me (as an undergraduate) was like
looking into the grand canyon. What's more impressive is the speed at which
things change and that despite breaking all of the traditional rules for
"good" software design practices...it works amazingly well.

~~~
ignifero
I haven't seen the whole of it, but it's not ugly and doesn't break all the
rules of good design.

------
sunkencity
WordPress - because it's extremely crappy but at the same time insanely
accessible. Lots of lessons to learn.

Passenger - code looks good even though it's C++

Rails 3. Beautifully structured application foundation that's not just a
pretty piece of code, it's tested and works.

JScheme. Reading this clean implementation and re-implementing it yourself
gives a good basis of understanding for lisp.

------
tsigo
Based on a blog post that made the rounds a while ago --
<http://tomayko.com/writings/unicorn-is-unix> \-- Unicorn might be a good read
for Ruby-related stuff.

<https://github.com/defunkt/unicorn>

------
noselasd
Plan 9 source code (<http://plan9.bell-labs.com/plan9/>), mostly for its
historical value - created by the same team that made C and Unix - and for an
insight on how those people envisioned the evolution of Unix.

------
michaelcampbell
Duff's device.

------
thirsteh
I think a very good example of when OOP is genuinely useful and desirable is
the Twisted Networking Engine:
<http://twistedmatrix.com/trac/browser/trunk/twisted>

~~~
willvarfar
Crikey, that's like recommending the Bourne Shell (which was a bunch of macros
so you could write ALGOL-like code in C)!
<http://en.wikipedia.org/wiki/Bourne_shell#Quotes>

twisted is, well, twisted. And that's what it does to your head too.

~~~
thirsteh
Just to clarify, I'm not talking about event-driven programming, errbacks and
callbacks, but rather how they've done all of the abstraction of the different
protocols and subsystems. It's one of the few times where I've considered
inheritance absolutely essential.

~~~
willvarfar
Still sceptical.

Pretty much every other reactor system is cleaner and easier.

I fight twisted every day and rue the day I picked it for a big project.

------
wsxiaoys
Finch is really a clean compiler implementation in C++, it's kind of weird to
me when reading its code express nasty things in a clear way in _C++_

<http://finch.stuffwithstuff.com/>

------
zguy
Probably the most funny source code I encountered was that of the linux
kernel, just look for comments.

If you just want to die by reading code, you can try to understand how Xen
works ;) (disclaimer, it is actually very elegant)

------
larsen
One of my university professors some years ago said the source of Rogue was
one of the C program he read. I've never been able to find it, and I am
curious since then. Does anyone?

~~~
mjmoch
<http://www.roguelikedevelopment.org/archive/index.php>

------
r0h4n
So many great projects listed here, please keep posting more guys. I will
compile a list of all later.

------
lylejohnson
It's been awhile since I studied it, but I recall the Python (C) source code
being very readable.

------
jacques_chester
I was fairly impressed with the PostgreSQL sources when I was poking through
them once.

------
kunjaan
These two are the works of very very smart programmers:

1\. The Racket source code

2\. The Chromium source

------
seige
Most of the code written by _whyfan is pretty awesome in my book.

------
vithlani
How about the Lion's book?

[http://en.wikipedia.org/wiki/Lions_Commentary_on_UNIX_6th_Ed...](http://en.wikipedia.org/wiki/Lions_Commentary_on_UNIX_6th_Edition,_with_Source_Code)

Get the source code from <http://minnie.tuhs.org/cgi-bin/utree.pl>

------
bxr
When I downloaded mongrel2 I wanted to take a quick peak at superpoll beyond
what was in the blog post about it, an hour later I was still reading the
source. It is some of the best-written C I've seen.

------
avstraliitski
Hello world in machine code for any platform.

