Settings

Theme

Code which every programmer must read before dying

67 points by r0h4n 15 years ago · 37 comments · 1 min read


What open source codes/projects must every programmer read before his death?

jarek-foksa 15 years ago

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... 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 15 years ago

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

thirsteh 15 years ago

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

madhouse 15 years ago

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 15 years ago

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

willvarfar 15 years ago

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 15 years ago

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

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

homofaber 15 years ago

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 15 years ago

    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 15 years ago

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 15 years ago

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

sunkencity 15 years ago

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 15 years ago

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 15 years ago

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 15 years ago

Duff's device.

thirsteh 15 years ago

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 15 years ago

    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 15 years ago

      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 15 years ago

        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 15 years ago

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 15 years ago

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 15 years ago

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?

r0h4nOP 15 years ago

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

lylejohnson 15 years ago

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

jacques_chester 15 years ago

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

kunjaan 15 years ago

These two are the works of very very smart programmers:

1. The Racket source code

2. The Chromium source

seige 15 years ago

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

vithlani 15 years ago

How about the Lion's book?

http://en.wikipedia.org/wiki/Lions_Commentary_on_UNIX_6th_Ed...

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

bxr 15 years ago

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 15 years ago

Hello world in machine code for any platform.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection