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

> Message: 6
> Date: Wed, 30 Mar 2011 20:43:27 -0700
> From: Bryan Harrison <br...@bryanharrison.com>
> To: macruby-devel@lists.macosforge.org
> Subject: [MacRuby-devel] Tyro Needs Ruby vs. O-C Advice
> Message-ID: <f3d5a990-d053-45a7-91fc-e29fbd6df...@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



_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to