MacRuby is extremely impressive, even if you aren't much of a Ruby guy (like me.) It lets me do nearly everything I'd want to do in a Cocoa application, but much more easily than with C/Objective-C. It really is fantastic, and a lot of work has been put in to make it easy to integrate with other software (both as a host and a guest – there's a direct object mapping, no bridges or anything.)
I'm sure a lot of people think "yeah but what about performance?" and from what I've seen, direct calls/messages on objects are faster in MacRuby than Objective-C. Writing with just C (and no Obj-C messaging) is still going to be a lot faster, though.
But you rarely hear people complaining about messaging not being fast enough in Objective-C. You probably wouldn't be using messaging in those situations anyway.
Edit addendum: Since I know there are a lot of fellow functional programmers here on HN, I'd like to add that MacRuby has added real tail-call optimization, and (I was surprised to find this out recently) that Ruby has continuations with callcc. It's very, very nice. It's not exactly Lisp, but it's damn good and the platform integration blows anything existing away.
you rarely hear people complaining about messaging not being fast enough in Objective-C
There was a big spate of it ~4 years ago -- people had been using method dispatch in tight loops, and boggled a bit at the numbers when they started using Apple's fantastic Shark profiler. objc_msgsend is as cheap as dispatch can be without static linking (way faster than Python or Ruby), but it's still much more expensive than a C function call, and there's nothing keeping you from trading your square brackets and colons for parens and commas.
Grand Central Dispatch is included! And with a super clean and simple api (see the code snippet on the blog post).
Laurent (the lead developer of the project) is a friggin genious. 0.5 is definitely the first step to MacRuby catching on in a big way.
If this doesnt come to the iphone in the next year or so, I'm going to be extremely disappointed. All thats needed is the ObjC 2.0 garbage collector, which Apple has on their roadmap. And yes, it'll be optional for non macruby iphone apps (like it is for Mac desktop apps currently)
I don't see any reason to assume this will show up on the iPhone. Apple has a very strict policy about interpreters running on their platform, why would they suddenly change that?
(You might still be able to AOT your macruby program and ship the binary on the iPhone)
Looks like Apple is really putting a lot of dynamic language hopes into this project.
When I talked with Ted Goldstein, then head of Apple developer tools, at WWDC a few years back (he happened to sit at my lunch table), he said their eventual goal for Objective-C was a full, Smalltalk-like runtime IDE. (Ted was at PARC for many years, working on Smalltalk.) And they're clearly getting there, slowly but surely. (LLVM is key to those plans.)
But MacRuby promises a shorter path to a dynamic language completely integrated with the Objective-C runtime environment.
Quite interesting to watch.
Another good point he made was that MS still isn't using C# for any of their built-in or system applications, while Apple is using Objective-C/Cocoa for all of their major apps. (Well, except for a few Carbon laggards like their audio/video high-end apps.) That told him Apple was doing something right.
In that vein, he also noted that people looking in from the outside would never "get" the power of Objective-C/Cocoa (which is just "Smalltalk in C" with a fantastic runtime library)--the language is just off-putting enough at first glance that people don't understand--, and that made it a good secret weapon.
Rails compatibility is apparently on the long-term roadmap, but I believe it is a long way off yet.
Using 0.4, I was unable to get any of the mainstream testing libraries (especially RSpec, and including Test::Unit) to work properly, and I struggled with simpler alternatives such as Bacon. Not sure how 0.5 will fare with these yet.
I'm sure a lot of people think "yeah but what about performance?" and from what I've seen, direct calls/messages on objects are faster in MacRuby than Objective-C. Writing with just C (and no Obj-C messaging) is still going to be a lot faster, though.
But you rarely hear people complaining about messaging not being fast enough in Objective-C. You probably wouldn't be using messaging in those situations anyway.
Edit addendum: Since I know there are a lot of fellow functional programmers here on HN, I'd like to add that MacRuby has added real tail-call optimization, and (I was surprised to find this out recently) that Ruby has continuations with callcc. It's very, very nice. It's not exactly Lisp, but it's damn good and the platform integration blows anything existing away.