[MacRuby-devel] MacRuby-devel Digest, Vol 37, Issue 51

Jean-Denis Muys jdmuys at kleegroup.com
Thu Mar 31 01:26:59 PDT 2011


On 31 mars 2011, at 05:56, <macruby-devel-request at lists.macosforge.org>
Bryan Harrison <bryan at bryanharrison.com> wrote:

> Message: 6
> Date: Wed, 30 Mar 2011 20:43:27 -0700
> From: Bryan Harrison <bryan at bryanharrison.com>
> To: macruby-devel at lists.macosforge.org
> Subject: [MacRuby-devel] Tyro Needs Ruby vs. O-C Advice
> Message-ID: <F3D5A990-D053-45A7-91FC-E29FBD6DF66A at bryanharrison.com>
> Content-Type: text/plain; charset="windows-1252"
> 
> I've decided to use an upcoming sabbatical to teach myself OS X and iOS programming.  My background includes OS X systems administration and web development, mostly using the Apache/MySQL/PHP model.  I'm familiar with OOP concepts and have trifled with any number of languages from C to AppleScript, but am not fluent in any object oriented language.  I've been exploring Xcode 4 for a week and feel conversant with the IDE if not yet able to accomplish anything with it.
> 
> So?  I understand that Cocoa is a given, but today's million dollar question is Objective-C or MacRuby?  I'm a blank slate with regard to both and so could use some good advice.  For example?
> 
> What are the advantages of MacRuby over Objective-C?
> 
> What are the advantage of O-C over Ruby?
> 
> Is Xcode's support for O-C significantly better than it's handling of Ruby?  Do I care?
> 
> At this point I'm primarily interested in OS X development, but iOS clearly needs to run a close second.  What's the current status of Ruby development for iOS and is it likely to go anywhere in the nearish future?
> 
> Any thoughts on the longer-term prospects of either language?
> 
> Any thoughts from anybody will be much appreciated.
> 
> Thanks,
> Bryan

I will be blunt: stay away from MacRuby and go with Objective-C.

Before I get burned at the stake on this list, let me explain why. This stems from an assumption I made from you question about your goal:

Assumption: your goal is to become proficient in Cocoa [touch] programming as fast as possible, starting from basically zero.

If that assumption is wrong, then the conclusion might be too.

MacRuby is very good already, but it's a far less treaded route. As a result, you will have to load your brain with additional burden, always a difficult proposition when learning:

- Less applicable resources for learning: less examples, less books, less blog posts, less people to help you out.
- So you will need to translate every example and snippet from Objective-C to Ruby. This means you will effectively need to learn two languages instead of one at the same time, together with Cocoa.
- You will need to translate every one of your question from Ruby to Objective-C when posting to stackoverflow or Apple's forum, or risk getting no answer. Sure you can stay in this list, but that's one less resource.
- Every time you face a difficult roadblock, you will necessarily have to wonder "Is this me? Or is this MacRuby?". To answer that question for certain, you will then port your code to Objective-C to make sure.
- You will face less understanding development tools. When you have an issue with them, the official answer will be "MacRuby development is not supported". With Xcode 4 being immature by itself, you probably don't want to add an immature MacRuby to the mix.

Now the MacRuby journey might taste a lot better, depending on you. And if for you "the reward is the _journey_", you might consider it.

On the practical details, what has been said still applies, with two small corrections:

- You also have ahead of time compilation with MacRuby. But arguably, you don't care about that when learning.
- The job market for iOS programming is thriving, and for Mac programming is getting a lot better. Sure, Ruby programmers are also in demand, but it's not clear to me which market is actually better. One thing is for sure: demand for iOS Ruby programmers is zero.

Jean-Denis





More information about the MacRuby-devel mailing list