Apple and Ruby: The Ongoing Relationship
While it was pretty momentous last year when Mac OS X (Leopard) was released with full support for Ruby and Rails included with the OS, it seems that the Ruby train is still rolling with Apple.
A recent InfoQ article highlights some ways that Apple is using Ruby that you might have missed - including:
- The iPhone Configuration Web Utility - A tool written in Ruby on Rails for allowing enterprise customers to manage iPhones.
- The SproutCore JavaScript framework - Which is designed for making desktop-like applications on the web and is used in Apple's new MobileMe applications. SproutCore is installed as a gem, uses generators written in Ruby to create resources and it utilizes Merb to generate HTML artifacts. (Update: SproutCore isn't a Ruby project / Ruby-based system per se, but it does offer some good tie-ins to the Ruby ecosystem.)
- The MacRuby project - Apple's own port of Ruby to the Objective-C runtimes - which should make it much easier to integrate with Cocoa for Desktop development.
I haven't played with the MobileMe web applications much, but I recall thinking that they looked fairly impressive. Have any other Ruby developers tried SproutCore yet? How's it working out for you?
Post supported by Brightbox: Brightbox is a specialist European Rails hosting company. Each Brightbox server includes an optimised Ruby on Rails stack, SAN storage and access to a managed MySQL database cluster. They also manage dedicated clusters for large scale Rails deployments. Click here to learn more..
August 21, 2008 at 3:17 am
I am using Sproutcore heavily and loving it. It's still early days for the framework, but definitely has some of the same feel as Rails, once you learn to think about how a client-side app is different from a server app. It's a very powerful and effective use of Ruby.
August 21, 2008 at 5:51 am
Sproutcore is often associated with ruby and this confuses many people. Sproutcore is JS through and through. It is like saying that ruby code is actually C code because Ruby is written in C. The ruby simply acts as a compiler. It could easily be substitute for perl/python/objc or whatever.
August 21, 2008 at 7:05 am
I was able to talk to the SproutCore Dev team right after their WWDC session and have been in touch since. I'm working on using SproutCore for OpenSocial development and it works like a charm. One of my patches was included in the 0.9.13 release.
SproutCore's Ruby generators and helpers are very elegantly coded and make great use of this wonderful language.
August 21, 2008 at 9:26 am
Pretty sure MobileMe uses WebObjects, not Ruby / Rails.
August 21, 2008 at 4:06 pm
Tom, yes, but the JS and HTML that are rendered in the browser are generated using Javascript and Ruby helpers (ERB etc.)
August 21, 2008 at 4:07 pm
Just while we're here, I wanted to point out this is Eldon Alameda's first post. He's one of three new writers on Ruby Inside - including Shalev NessAiver (who did a post a cpl weeks ago as a tester, but should be posting more soon) and Zach Inglis (who has yet to post).
August 21, 2008 at 10:50 pm
Mike, JS and HTML are not rendered in the browser with ruby. Sproutcore generates static html and javascript. They can be served from any vanilla web server.
As I said before the ruby acts as a compiler, preprocessor is probably a more correct term, to generate static files.
August 21, 2008 at 10:56 pm
Mike, I see on your blog you are using SC by proxying to sc-server. When deploying you should be generating static files and deploying those, not using sc-server.
August 21, 2008 at 11:50 pm
I hope Apple buys 280north, the company that makes http://280slides.com. Their web app is just incredible, even compared to MobileMe.