Shane Vitarana more brain > blog.html

Slithering Through Ruby's Domain

I went to the first ever Snakes and Rubies gathering at DePaul University, here in Chicago. It was kind of a presentation/Q&A session for the creators of Django (a python web framework) and Rails. Since I was not able to attend RubyConf, it was nice to finally be in the presence of so many fellow Ruby and Rails developers. The room had a capacity for only a 100 people. So many fellow geeks, including myself, had to stand along the sides of the room.

After quite a long time fundling with the projector (how many engineers does that take?), Adrian won the coin toss to give the Django presentation first. I've only used python to write deployment and parsing scripts so it was interesting to see a web framework built on it. Adrian's presentation was more at an introductory level and really didn't delve into that much code. It was really interesting to contrast this with David's presentation, which was pretty much all code except for 2-3 slides. This reminded me of a team I once worked on that had a rule to never show code in a presentation. You had to use UML to show logic. We were also working with Java. Needless to say, David's presentation changed my mind about having code in presentations. However, I would only do this with a domain-specific language such as Ruby.

Domain-specific languages, especially dynamically-typed ones, allow you to abstract out and create a framework where anything non-essential can be eliminated. As David pointed out in one slide, out of around 15 lines of code, the only words that hinted at a programming language were the words "do" and "end." This goes to show that the power of Rails comes from the fact that it is based on Ruby. I don't understand why so many people are trying to emulate Rails in other non-domain-specific languages. It will never be as elegant, or "beautiful" as David likes to say.

I wasn't able to stick around for the Q&A session. I also heard that there was a debate between Adrian and David in the end. Would have loved to see that.