One of the most exciting technical posts I’ve read recently is this post from Ezra on his GitHub fork of the Rails source. In this branch, he’s built in Rack adapters for a number of web servers and he’s given some serious love to ActionPack, speeding up request handling by trimming cruft and moving a number of parallelizable operations out of The Rails Mutex. I think that this post of his is particularly important for several reasons, one of which I’ll highlight here (I’ll save the others for later blog posts).
As software development projects advance from fledgling napkin sketches to production deployments, bits and pieces are invariably distilled into standalone libraries or components of some kind. These libraries have substantial test suites that always rake green. They’re proven. Reliable. They become known quantities that you don’t ever need to touch because they don’t ever break.
And so, over time, they become black boxes.
However, all sizable projects…heck, even small projects…amass some code cruft over their lifetimes. When a product’s codebase gets sufficiently large, developers who know about its warts naturally start salivating over the prospect of rebuilding it from scratch. The Rails source is not exempt from this reaction. Over time, members of the community have responded to deficiencies in the Rails internals by either contributing to the framework directly or by building out alternative platforms.
Ezra’s progress in his fork of Rails is, imho, an example of how to beautifully bridge these two approaches; he saw some issues with the framework, he worked on producing an alternative (Merb), and now he’s rolling his improvements back into Rails. In doing so, he’s taking a surgeon’s knife to some of the Rails black boxes, breaking them open and breathing new life into components that we normally just don’t touch.
I find that mindset inspiring: Nothing is above reproach. Take a deeper look. You can make it better.
Here at FiveRuns, as the dev team continues to add capabilities to our Manage product, we’re eating our own dog food, monitoring our production boxes with our own software. It’s giving us tremendous insight into all aspects of our service, and has enabled us to target the issues in our own black boxes.















Continued Discussion
No comments have been added yet.