Game over, Rubymotion
December 5, 2013
Crash, crash, crash. I gave up & asked for my money back. I don't want to spend too much time here bagging Rubymotion or Hipbyte, part of me admires their effort, but Rubymotion's just not stable enough to use and there will be some venting as a result.
String manipulation in Rubymotion is miles ahead of Objective C, that part's just plain Ruby after all, but only a small fraction of any iOS program I've ever written has been string manipulation. There's some saving in boilerplate/ceremony in class declarations and so on, but not much, and instead of @"Strings" you've got @variables, and any small gains there were were offset by plenty of pain.
The many examples of Rubymotion code I saw scattered on the web, examples that were such a big part of what tempted me to try this thing, sadly those examples turned out to be an exercise in frustration - well under half of them worked. Well under half. Sometimes it was obvious why, but mostly it wasn't.
Wrapper libraries weren't much better, and unless I used third party libraries the Ruby code I was writing wasn't that much shorter than the equivalent Objective C, as most of both sets of code consisted of the same Cocoa calls. Using the third party wrappers made for shorter code, but with unstable and inconsistent idioms, and a whole extra layer of uncertainty and bugginess.
Why have several competing libraries, all of which are 80% finished, when one finished solution would be better? It's hard to escape the conclusion that it's that way because the last 20% of any project is 80% of the work, and a language and a framework that are both set up to be as easy on the programmer as possible just aren't going to be conducive to people finishing what they start.
I can't help wondering too what a Python version of this would look like. OK, maybe that was a little unfair, but seriously - why is there so much broken Ruby code on the web? (I told you there'd be venting.)
I've asked Hipbyte for my money back & they've said yes, but it'll take a few weeks. Fair enough. I wish them luck.