On 31 mars 2011, at 05:56, <macruby-devel-request@lists.macosforge.org> Bryan Harrison <bryan@bryanharrison.com> wrote:
Message: 6 Date: Wed, 30 Mar 2011 20:43:27 -0700 From: Bryan Harrison <bryan@bryanharrison.com> To: macruby-devel@lists.macosforge.org Subject: [MacRuby-devel] Tyro Needs Ruby vs. O-C Advice Message-ID: <F3D5A990-D053-45A7-91FC-E29FBD6DF66A@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