→ 2009 Open Source Top Ten

17 December 2009

This was an amazing year for open source software. In alphabetical order, here are my favorite releases of 2009.

BERT

Beyond playing a massive role in making GitHub fast, BERT is a textbook example of how to do open source correctly. Three well documented and tested libraries double as reference implementations for those who would implement the spec in other languages.

ClickToFlash

In only a few months it became the canonical example of distributed version control gone right: a simple Safari plugin posted on GitHub got dozens of contributors and was kept surprisingly sane and useful under the guidance of one Rentzsch.

Gemcutter

Ruby's gem ecosystem had been in a funk for a while. qrush cured it. Packed with useful features, Gemcutter actually makes it fun to publish gems again.

homebrew

It seems so obvious in retrospect: a packaging system with packages stored in git, so anyone can easily add (or maintain) a package with the same tools they use to develop software. With almost 200 contributors and nearly 400 packages as of writing, it has certainly proven the viability of this idea. It also helps that it's simple to use and works great - no longer do we dread installing or updating software on our Macs. Now it's fun.

Unicorn

The long awaited silver bullet: a Ruby web-app server that relies on proven Unix technologies to do the hard stuff and do it well. It doesn't hurt that the author is extremely responsive and a great maintainer, either.

nginx http push module

Like Unicorn, it leaves the heavy lifting of a hard problem to a proven champion: nginx's famous concurrency. The idea is so simple it's beautiful but, more importantly, the module asks an important and inevitable question: what if persistent connections to the browser were so easy that anyone with a commodity VPS could implement sites with them?

What does a Web with cheap persistent connections look like? We're going to find out soon.

node.js

node is what we were all waiting for: fast, simple, server side JavaScript. Ryan Dahl has shown us what V8 can really do. While the year of Desktop Linux may never arrive, 2010 will certainly be the Year of JavaScript thanks in no small part to node.

Redis

Redis has set the standard for open source databases: simple, sensible, and well commented default configuration file; fantastic documentation; cheat-sheet style command reference; extremely useful command line utility; easy installation; great performance; and a very attentive maintainer. Bonus points for being easy to explain and easy to use.

Underscore.js

The missing link, the "tie to go along with jQuery's tux." Even better: it's DOM free and can be used on the server side. The noConflict pattern jQuery pioneered is put to great use here and something I'd love to see more of in the future. Underscore is a good idea well executed.

yajl-ruby

JSON is the serialization format of the web. yajl-ruby makes it fast and, more importantly, streams it: yajl-ruby works great with EventMachine and even includes example code so you can quickly get started. Almost every Ruby project I touch uses JSON, and in all of them I now use yajl-ruby.

Thanks to the authors for sharing their creations with us. Now go out there and build something with them!