Tuesday, February 03, 2009

MWRC speaker interview: Jeremy McAnally

Here's the second MWRC speaker interview (you can read the other one, with David Brady and Kirk Haines here). This time, I'm talking with Jeremy McAnally (@jm), who's presenting "Jive Talkin’: DSL Design and Construction"

If you want to learn more about DSLs, or about Ruby in general, make sure you're at the MountainWest RubyConf on March 13th and 14th. Register for your spot now!


What makes DSLs so interesting to Rubyists?

Jeremy There are two technical reasons I think. First, because we write such readable code in the first place because of Ruby's lack of line noise in its syntax, we like to do that whenever possible. So when we start thinking about syntax for what we're going to be building, we figure why *not* build an internal DSL if it's minimal work on top of what we're going to be doing on the front end and will save us some time on the back end.

Secondly, Ruby is really, really dynamic and so we're able to bend and build objects as we see fit. These features make it super easy to "customize" (for lack of a better term) the syntax of our system.

On a more social level, I think Ruby appeals to people who like clean code, therefore the cleaner the code (i.e., the less extra language-y crap around what really matters) the better. That's essentially what a DSL really is: stripping your "lexicon" down to its purest, most specific form for what you're working on. Ruby lets you do that a lot more than other languages, as I've learned through my C# experience and in my recent Objective-C adventures. Every time I go back and tinker with these languages, I always come back more thankful for Ruby's features and syntax.

How can a Ruby Nuby get a toehold into DSL building?

Jeremy Well, this is sort of the whole topic of my talk in a sense, but in a nutshell: experiment. Play with new language features, try to bend Ruby to fit new ideas, do something crazy with lambdas. Once you have a feel for Ruby's really flexible features, then build your lexicon and start implementing it. Don't be afraid to iterate; none of my DSLs have ever just popped out in their perfect form. The rg DSL took 2-3 passes to even get it into something I would use, much less something I was satisfied with.

This will be your second year at MWRC, what was your favorite part of last years conference?

Jeremy I feel like MWRC is one of the few real community conferences out there. A lot of regional conferences these days are getting more and more commercial and about the "experience", and less and less about what actually matters: socialization, awesome talks, and hacking. Hopefully MWRC along with the other solid community events can continue to be shining examples of what a conference should look like.

Besides your own talk, what are you most looking forward to this year?

Jeremy I'm hoping James Britt's talk can convince my wife to buy me a Wii, but, uh, more realistically, I'm interested in the talk on Rhodes. I've been trying to get into iPhone development, but it'd be awesome build my app once (in Ruby no less!) and deploy on iPhone, Palm, etc. Of course, everyone always likes to hear what Jim Weirich has to say, and I'm really excited about the Adhearsion talk and its little sandboxed surprise. :)

Why should people come to MWRC?

Jeremy Uh, to see me speak, of course. Also, you guys concentrate a lot on the social aspect which makes for a great experience, you aren't in it to make money so I don't feel like I'm being accosted by vendors all the time, and there are always awesome talks. I'm still watching videos from two years ago.

Click here to Tweet this article

No comments: