December 4, 2012

8-Month-Old Platform Declares Itself Old Enough To Have A Conference »


We are super excited to announce the first official RubyMotion conference to be held in Brussels, Belgium on the 28th and 29th March, 2013.

Two days. Single track. 100% RubyMotion. A limited number of early birds tickets are now on sale with a 20% discount!

My initial reaction to this was: seriously? (Though, in the interest of full disclosure, after I tweeted “seriously?” I did price airfare from Chicago to Belgium.)

One thing about this conference, and RubyMotion in general, that strikes me as weird is how it’s evolving as a parallel or even orthogonal platform to Cocoa itself. Even though RubyMotion code is Cocoa code, running on LLVM and the Objective-C runtime, a lot of the work and conversation around RubyMotion seems focused on burying Cocoa in Ruby-like DSLs. While some of these new syntaxes may be interesting or valuable, others have the flavor of developers simply coming to an unfamiliar platform and rearranging the furniture to be more like their living room at home. (To be fair, I’d offer the same criticism of most DSLs on mainstream Ruby. It took me four years to accept that RSpec isn’t evil.)

The danger of any new abstract language is in sacrificing shared understanding and clarity for what’s essentially slang. Except that if I go around calling things “totally tubular”, I’m fairly likely to be understood through context clues, so the danger is not that I’ll be misunderstood but that I’ll date myself or look like an idiot. In code, using inappropriate DSL “slang” runs the risk of making your code opaque or hard to understand by someone who isn’t familiar with the DSL. It also adds a dependency on whatever external library implements the DSL, which seems like a high cost just to avoid typing UILabel.alloc.initWithFrame(CGRectMake) a few times, or to keep some nibs or Core Data models around.

The bottom line point is not that RubyMotion, or its community of DSL-loving Rubyists, or its first conference are evil or doing it wrong, but that I think they may be letting their enthusiasm for Ruby’s simplicity and dynamism blind them to some of the really wonderful, pragmatic qualities of the Foundation and Cocoa frameworks — in short, that this community is primed to see “verbose” and think “bad” when it ain’t necessarily so — and my worry is that a RubyMotion conference will reinforce some of that without necessarily reconciling the tension and disruption RubyMotion brings to the table.

But then again, I may not know what the fuck I’m talking about. In either case this conference ought to start some very interesting conversations, making it one to watch.

Speaking of being a RubyMotion curmudgeon: I’m speaking at ChicagoRuby’s downtown meetup on Tuesday, January 8 on this very topic.