Thursday, February 19, 2009

The Brink Of The Business Domain

Yehuda Katz gave an interesting presentation at LA Ruby tonight, detailing the history of Rails and his goals for the Rails/Merb integration. Weirdly not a word about the history of Merb, but the history of Rails is interesting all the same. He quoted DHH as saying several years ago that the deciding rule for a feature's inclusion in the framework is if the feature sits at the brink of the business domain. This is the rationale for not creating a general-purpose form generator, for example; it's too implementation-specific.

Yehuda came back to this theme later on in the Q&A, but he came back to it only implicitly - I don't think he ever realized he was doing it. He got on the subject of Rack, and mentioned that Rack was much more awesome than anybody realized. So I asked him why. He said Rack is sufficiently modular that it is almost recursive. His goal for Rails 4 and Rack is that you will be able to put an app in your app.

I brought up the inevitable "sup dawg" meme but he just sneered at me.

Most people focus on Rails 3, but take a second to think about this. You may have seen a blog post saying git is the next Unix. Yehuda described Rack as "very Unixy" because it allows you to pipe apps into apps and connect apps to apps. That could be more next-Unix than git.

Consulting companies like ENTP, Unspace, Og, Pivotal, and Hashrocket, which build similar functionality for multiple companies, currently go through all kinds of monkey-patching backflips to factor out common functionality into reusable components. The moment that becomes effortless, you open up an entire new category of reusable component. It's like a business-level equivalent of Rails plugins. Integrating Rack in this manner pushes Ruby Web framework hacking to the brink of the business domain.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.