| zrusilla ( @ 2005-12-03 19:46:00 |
Snakes and Rubies
was a conference to showcase two new web development frameworks, Django and Ruby on Rails. These are two web development frameworks written in Python and Ruby, respectively.
Two of each projects' main developers, David Heinemeier Hansson of RoR and Adrian Holovaty of Django, now live in Chicago. Each gave some history, philosophy and some actual code to ponder.
Django was developed to enable "web development with journalism deadlines", extremely fast turn-around times of hours or days, not months. Towards that end they've boxed up a lot of functionality which is at a higher level than RoR wants to go. A good example of this was the dynamic admin interface; a word or two code enables an entire web-based front end for a database table-backed model object. RoR admires this but considers it outside the scope of what they're doing.
Also, RoR considers i18n to be at the business logic level, above the level of what they provide, whereas Django has been internationalized 19 different ways: "We have Welsh!" brags Adrian.
David's focus was to take the pain and ugliness out of development, to leverage the terseness of Ruby, and to encourage best practices, such as encouraging creating test cases. David came to Ruby from PHP and hates the latter with a passion. "PHP is...how do we say...horrible. It is from the devil. It encourages you to do the bad thing. Ruby is the angel on the other shoulder, inviting you to do the right thing." The Django team ported Lawrence.com from PHP to the Python-based Django, and there is no love lost there, either. I felt entirely vindicated, having recently survived the horror of badly-written PHP.
RoR includes Ruby wrappers for Ajax, which eliminate the pain (in David's view) of writing any Javascript. There was a lively back-and-forth on whether programmatically generating your JS from your back-end framework was a good thing.
Another lively back-and-forth was on the templating issue. Django has its own templating language; RoR does not. Both sides cleave to the traditional views on the topic. Adrian: Don't give designers a full-featured programming language. David: No such thing as eliminating logic from your view; the point is don't put in any business logic; Ruby works fine in templates too. Adrian claims his designers developed their templates which David greeted with some incredulity.
There was a lengthy Q&A afterwards. I asked about platforms. David is a fan of FastCGI. He doesn't like the embedded interpreter concept and found mod_ruby problematic. Basecamp and, I think, Backpack, run on Apache + FastCGI and another one of 37 signals' apps runs on lighttpd + FastCGI.
I took the occasion to do some intense networking to drum up sponsorships for YAPC, to hunt for a job, to pull together some more women for our devchix get-togethers, and simply to greet old and new friends.
was a conference to showcase two new web development frameworks, Django and Ruby on Rails. These are two web development frameworks written in Python and Ruby, respectively.
Two of each projects' main developers, David Heinemeier Hansson of RoR and Adrian Holovaty of Django, now live in Chicago. Each gave some history, philosophy and some actual code to ponder.
Django was developed to enable "web development with journalism deadlines", extremely fast turn-around times of hours or days, not months. Towards that end they've boxed up a lot of functionality which is at a higher level than RoR wants to go. A good example of this was the dynamic admin interface; a word or two code enables an entire web-based front end for a database table-backed model object. RoR admires this but considers it outside the scope of what they're doing.
Also, RoR considers i18n to be at the business logic level, above the level of what they provide, whereas Django has been internationalized 19 different ways: "We have Welsh!" brags Adrian.
David's focus was to take the pain and ugliness out of development, to leverage the terseness of Ruby, and to encourage best practices, such as encouraging creating test cases. David came to Ruby from PHP and hates the latter with a passion. "PHP is...how do we say...horrible. It is from the devil. It encourages you to do the bad thing. Ruby is the angel on the other shoulder, inviting you to do the right thing." The Django team ported Lawrence.com from PHP to the Python-based Django, and there is no love lost there, either. I felt entirely vindicated, having recently survived the horror of badly-written PHP.
RoR includes Ruby wrappers for Ajax, which eliminate the pain (in David's view) of writing any Javascript. There was a lively back-and-forth on whether programmatically generating your JS from your back-end framework was a good thing.
Another lively back-and-forth was on the templating issue. Django has its own templating language; RoR does not. Both sides cleave to the traditional views on the topic. Adrian: Don't give designers a full-featured programming language. David: No such thing as eliminating logic from your view; the point is don't put in any business logic; Ruby works fine in templates too. Adrian claims his designers developed their templates which David greeted with some incredulity.
There was a lengthy Q&A afterwards. I asked about platforms. David is a fan of FastCGI. He doesn't like the embedded interpreter concept and found mod_ruby problematic. Basecamp and, I think, Backpack, run on Apache + FastCGI and another one of 37 signals' apps runs on lighttpd + FastCGI.
I took the occasion to do some intense networking to drum up sponsorships for YAPC, to hunt for a job, to pull together some more women for our devchix get-togethers, and simply to greet old and new friends.