→ 2009 Open Source Top Ten
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!