I just have a gut feeling that Ruby will be a significant language for iOS/OS X development going forward. I really hope so anyway, even in its present state MacRuby is insanely fast against any other Ruby implementation. With the the resources of Apple behind it, the Ruby VM ecosystem will benefit greatly from thing like AOT MacRuby is bringing into the game.
I've looked on with envy at how Node.js is getting such a boost by leveraging a component of a heavily developed consumer product. Node.js gets such incredible performance for free because of the JS VM arms race. If Ruby has the weight of a giant behind it, hopefully it will experience a similar wave.
IMO Ruby is a lot better suited to async programming than JS, as it has fibers for example, making it easy to untangle the nested, continuation passing style of async code.
Ruby is such a beautiful, productive language, it really deserves a giant like Apple throwing their weight behind it.
I agree, and I think MacRuby is a great idea. Ruby in particular is very close to Objective-C in practice, and some of the latest Apple's changes to Objective-C have made it even more so.
But as much as I love Ruby, MacRuby is still not that much faster than Ruby and often it is slower [1]. But that said I am not bashing MacRuby: it is still a very young project and it has a lot of potential still untapped.
Sun was all about Java and I think it's disingenuous to say that Sun ever threw any significant effort into JRuby further than seeing JRuby as a way to assimilate Ruby into the Java Borg.
I have no idea what Sun's motivations were (and I doubt you do, either), but all the time I've been using JRuby I never got the sense there was anything going on that was designed to hook people into Java other than using the JVM.
There was no more assimilation going on than what I would expect to see from Apple and MacRuby. Less, perhaps, since JRuby apps run on multiple platforms, something MacRuby apps won't do.
And since JRuby itself was nothing more than a jar, developers could slip it into their usual Java environment without having to explain how or why they were installing Ruby.
I've sat in JUG meetings watching JRuby explained to Java fans, and each time they crowd goes from notable skepticism to smiles and head-nodding when they see what they can do.
Sun's support of Charlie, Tom, et al really helped get JRuby up to speed making it not only the fastest complete Ruby implementation but also acceptable to "the enterprise".
Sun may have been all about Java, but to the extent they helped JRuby they've enabled many Java devs to be all about Ruby.
I would love nothing more than writing Mac or iOS apps in Ruby, but Apple's commitment to MacRuby isn't all that great.
A quick look at commit stats for MacRuby shows that there's really just one full-time Apple person working on MacRuby, 3 others that contribute occasionally and a few non-apple people.
I call that "barely committed" or "hedging your bets". For some perspective, Sun sponsored more people to work on JRuby at some point, more people worked on Rubinius at some point etc.
Sorry for tempering the enthusiasm with hard, cold facts.
That is true. But Lauren Sansonetti has really done a lot of work: he is the main developer and every now and then he would merge his own branch which is full of the kind of features and improvement that take a while to develop and cannot be merged easily until a late stage.
So I would say that Apple is by far the main developer of MacRuby.
That said you are right that one full-time developer doesn't look like much of a commitment from Apple. And I think that was the case. My feelings (and of course these are very subjective) was that Apple supported MacRuby partially as a way to help Ruby on Mac and partially as a research experiment.
I hope at some point Apple decides to really put its fiches on Ruby: that would be awesome. But MacRuby on iOS is very much the kind of thing Samsonetti loves, so I wouldn't be surprised if it's all his doing, and nobody else's within Apple.
One last note: Apple also supports LLVM on top of which MacRuby is based... so not sure how many people that would correspond to in your: commitment ~ sponsored people equation. :)
Assuming that Apple is doing all of their MacRuby development around this 3rd party hosted, public git server, and that Apple doesn't have version control facilities on their own private network.
There is only one branch on that server, do you seriously suggest that is representative of all the development work ongoing internally at Apple and that one can infer "commitment" from what Apple has made public at this point?
I'm not saying that Apple is or isn't heavily committed to Ruby, I do say that it is unsafe to conclude that they are not from the limited information provided.
Actually, the source is hosted at git://git.macruby.org/macruby which is owned by Apple.
So yes, unless you provide the evidence to support your claims, I'll assume that all MacRuby work is being done in public on macruby.org, similar to how other Apple open-source project work (llvm, WebKit, clang) and that the amount of that work is representative of Apple's commitment to the project.
In comparison, if you do similar stats on other Apple projects (like llvm, WebKit) you'll see that they have order of magnitude more people working on them, producing order of magnitude more code.
There is one branch one the repo: master. There are no feature branches whatsoever. What kind of workflow for mainline development is that?
There are also no commits referencing iOS at all, despite Laurent saying that Apple have been working on an iOS port. Assuming Apple is working iOS compatibility, one might assume that they are targeting a future major iOS release, e.g. iOS 5.0. That is something that Apple categorically would not do in public for obvious reasons.
Laurent's commits are too few and far between lately for someone purported to be on MacRuby full time, to me they just look like cherry pick commits that fix serious bugs.
Like I've said before I am not saying what Apple is or isn't doing. You may be right, but what you have said is hardly compelling evidence. Apple is hardly going to carry out development in public on something that inadvertently reveals features or implementation details of of their golden geese products, i.e. iOS devices.
Also, if there is no commit referring to iOS, it's mainly because iOS is a very secretive project. You don't know what he actually worked on. You don't know if maybe he has local / internal (aka @ apple) changes concerning iOS.
Plus if Laurent's commits are too "few and far lately" as you said, it's probably because he either have other Apple related stuff to do, or simply because he doesn't want to add new features (yet) that might break before he releases 0.7: http://lists.macosforge.org/pipermail/macruby-devel/2010-Aug...
Laurent tends to work on new features on his own branch, often experimenting new ideas, and once it "stands on its own" it merges it for everyone to improve/change it together with him.
Shouldn't the headline read something more like "Senior engineer confirms he is woking on MacRuby for iOS" -- didn't seem to me that he is implying that it is an official Apple project.
reply
I'm not sure I agree. It was started by an Apple employee, endorsed by Apple, 90% of all commits is done by Apple employees, and is hosted on Mac OS Forge (http://www.macosforge.org/), where Apple releases its open-source projects (Webkit, launchd, libdispatch, etc.)
I'm a Mac developer and I have to tell you that writing Cocoa apps in JavaScript is not great because JavaScript is not a great language. I would much prefer Ruby, Python or C# syntax than JavaScript syntax.
It's also a reason why JSCoca hasn't taken off despite being available for almost 2 years now and why MacRuby is such a promising, although not yet production quality, project.
Nitpicking: Palm didn't bet on JS but on HTML stack (of which JS is a part, but not the whole).
Unfortunately, your opinion isn't very popular around here. People here don't seem to want to accept the fact that javascript was never designed to be a scalable general purpose language for writing large applications. It has slowly evolved over time, but is still not there.
I hope something like Google'ss NaCL becomes popular, and instead of javascript slowly creeping to the server/desktop/phone because we have no choice in browser-land, the browser opens itself up to all computer languages so javascript can start feeling some competition. I even think this would be good for javascript, as it would spur the language to evolve faster.
After Apple recently retracted their limitations on languages and runtimes, I'm actually drooling over the possibility of a slew of dev env apps for various languages including Squeak, SuperCollider and visual languages like Scratch. Making interactive stuff on the iPad with the power of a full programming language behind will be super fun.
I've looked on with envy at how Node.js is getting such a boost by leveraging a component of a heavily developed consumer product. Node.js gets such incredible performance for free because of the JS VM arms race. If Ruby has the weight of a giant behind it, hopefully it will experience a similar wave. IMO Ruby is a lot better suited to async programming than JS, as it has fibers for example, making it easy to untangle the nested, continuation passing style of async code.
Ruby is such a beautiful, productive language, it really deserves a giant like Apple throwing their weight behind it.