Q&A with Brian LeRoux (Nitobi) on Rails, Ajax, Ruby-Generated JavaScript(RJS) and More
Posted by Gerald on November 16, 2007
Welcome to episode one of the Q&A with Vancouverite and Nitobian Brian LeRoux.
Ruby on Rails, especially in recent incarnations, has powerful support for creating RESTful applications. You can serve JSON encoded data back to the client as easily as XML or HTML which from an Ajax perspective kicks serious ass. While Rails does come bundled with Prototype and Scriptaculous it works equally well with JQuery, MooTools and, of course, the Nitobi Complete UI Ajax Suite. Ruby-generated JavaScript (RJS) changed my life. Specifically, the ability to dynamically render partials via an XMLHttpRequest (XHR). Building kick ass user experiences has never been more elegant, easier or faster.
Q: Can you tell us a little bit about yourself and your work at Nitobi?
Brian LeRoux: I am a software architect at Nitobi on the custom application development services team. We build on the Nitobi Complete UI Ajax Suite and in house expertise with custom development services for a variety of companies with many different technologies. Personally, I have a background in enterprise software, analytics, and more recently social software applications. I am very happy as a Ruby (thus Rails where appropriate) software developer but still do quite a bit of client related work in addition to Ajax and Flash hacking.
Q: How did you get started on Ruby on Rails? What makes Ruby on Rails for you the frameworks of choice for developing web applications?
Brian LeRoux: I actually started in the Ruby community using the browser automation tool Watir for testing user interfaces of .NET applications (of all things). At the time, Rails didn’t exist but I always thought Ruby was a neat language with a lot of potential. Eventually Rails came about and breathed new life into the tedium that was web development. We all rejoiced.
I think it’s important I say that Ruby on Rails is most definitely not my framework of choice. It’s a useful framework with more and more applications for integration using the amazing JRuby and soon to be amazing IronRuby. It’s not a silver bullet nor does it cure cancer.
Camping, Sinatra and Merb are all web frameworks to keep a careful eye on. I believe as soon as you pick a technology make sure you understand the alternatives. This industry moves fast and to be effective you must be able to articulate your technology choices dispassionately.
Q: Can you tell us some challenges you faced developing using Ruby on Rails?
Brian LeRoux: In the early days of Rails documentation and deployment were certainly sore points.
Now there are dozens of books, thousands of blogs, wikis, mailing lists and IRC so finding help is not hard. Deployment has matured quite a bit too with fairly standard Apache or NGinx fronting packs of mongrels. Capistrano and Vlad the Deployer make deployment a one click operation which is the professional way of doing things.
Finding decent Rails talent is also a challenge but it’s easy to get a competent developer up to speed quickly. Learning new things is always fun.
Q: How do Ruby on Rails and Ajax fit together? Any comments on Ruby-generated JavaScript (RJS)?
Brian LeRoux: Ruby on Rails, especially in recent incarnations, has powerful support for creating RESTful applications. You can serve JSON encoded data back to the client as easily as XML or HTML which from an Ajax perspective kicks serious ass. While Rails does come bundled with Prototype and Scriptaculous it works equally well with JQuery, MooTools and, of course, the Nitobi Complete UI Ajax Suite.
Ruby-generated JavaScript (RJS) changed my life. Specifically, the ability to dynamically render partials via an XMLHttpRequest (XHR). Building kick ass user experiences has never been more elegant, easier or faster.
Q: How does the Nitobi Ajax Suite fit into the Ruby on Rails world?
Brian LeRoux: Ooooh, this is exciting stuff. There is a totally top secret operation bringing the Nitobi Complete UI Ajax Suite to the Rails world. Don’t tell anyone. We’re looking at having a Nitobi Complete UI Domain Specific Language (DSL) with built in assumptions about a RESTful backend. I’ll keep you posted.
Q: You’ve played with Vlad the Deployer. Any insight on how it compares with Capistrano and how it’s better or worse?
Brian LeRoux: We’re using Vlad on a few projects here at Nitobi. It’s less code and thus easier to maintain but otherwise it works identically to Capistrano. The rollout and motivations behind Vlad, while admirable, could have been a more tactful. Politics aside, based purely on maintenance and dependencies, I prefer Vlad to Capistrano. The Seattle Ruby Brigade does amazing work. Vancouver, wtf.
Q: Any features or functionality you’re looking forward or you want to highlight in Edge Rails/Rails 2.0?
Brian LeRoux: Ryan Daigle’s Peepcode PDF Preview of Rails 2.0 is an excellent primer. I like that Rails 2.0 has less features and code than Rails 1.x.x — it is more purposeful and lighter. Convention wise, the way differing mimetypes are handled is really nice and out of the box RESTful support is going to be really interesting to watch. ActiveResource is poised to become a very important technology. Partial layouts are cool. Lots of small things which really adds up to a nice release.
Q: Can you tell us a little about the upcoming Vancouver Ajax & Beer Meet?
Brian LeRoux: We realized that the Rich Internet Applications developer space in Vancouver isn’t getting enough attention and that Nitobi should be a leader in our own community as well as the entire world. We decided to skip the presentation and head straight to the bar. Meeting other developers facing the same challenges we face every day is fun. Not a whole lot of people do this sort of profession (really) and it’s cool to meet people that are in
the space in an informal setting. Shebeen has wicked good scotch and whiskey selection too.
Thanks Brian LeRoux for your time and insight. For more meet-up with Brian and the Nitobians at the upcoming Vancouver Ajax & Beer Meet in December at the Shebeen Whisky House in Gastown.