5 ms·
"Given all of this, I think that if you want to develop OS X apps without moving away from Ruby..." I've written a lot of both Ruby and Objective-C/Cocoa over
by alexyoung 16y ago
"Given all of this, I think that if you want to develop OS X apps without moving away from Ruby..."
I've written a lot of both Ruby and Objective-C/Cocoa over the last few years, and as much as I enjoy working with Objective-C Ruby really would save a lot of effort. It's not like I have a problem "moving away" from Ruby, but I'd like the option to sell apps made with it through their service.
If Apple ships MacRuby pre-installed in Lion, with Xcode integration and documentation, I think it would be huge.
- rdouble 16y agoHopefully Apple does include MacRuby pre-installed. I just wrapped up a MacRuby app. MacRuby is a very cool system. However, if you are distributing the app, you either have to include all of MacRuby, or go through a complicated and error-prone process of excluding portions of the stdlib. This is a black art at the moment. Even without most of the stdlib, the bundled app is much larger than the equivalent Cocoa app. The larger app size could become a concern on machines like the Air with smaller SSDs. It also seems tasteless to have multiple apps each with their own MacRuby distro bundled up with the app. A pre-installed MacRuby would solve both of these problems. Then again, it would also make creating Mac apps almost too easy... how will I compete?
- oomkiller 16y agoWhat kind of package size are we talking here? I see MacRuby is 30MB, surely the whole thing isnot required.
- rdouble 16y agoYes, the whole thing is required. In fact, my app is 34MB, the majority of which is MacRuby + the stdlib. I cobbled together a process using information found on a number of blog posts and mailing list archives which let me exclude the parts of the stdlib I wasn't using. This got the file size down to 14MB. However, I don't have any QA resources so I'm not sure if this has introduced any instability in the app. In contrast, the pure Cocoa version of this app is 4.5MB.
- maercsrats 16y agoI think the newer version of macruby, with greater bridgesupport, should help this out: http://www.macruby.org/blog/2010/10/08/bridgesupport-preview.html http://www.macruby.org/blog/2010/10/08/bridgesupport-preview...
- petercooper 16y agoWhen I'm installing even reasonably simple Mac apps, I often see the progress bar talking about sizes in the mid double digits. This sucks but is common.
- aaronblohowiak 16y agoWhy does this matter?
- Dornkirk 16y agoIf Lion came with MacRuby installed on it you wouldn't need to bundle MacRuby to distrubte the app ... for Lion users? But what about for those of us who are on Leopard/Snow Leopard (or Tiger for that matter) - while Apple users seem to adopt the newer tech much quicker than others it still seems like you'd be cutting out a large group of potential customers/users.
- cubicle67 16y agoMacRuby packages itself inside the .app, so you have a self contained package (can distribute the app without requiring MacRuby on client machine) [Edit: as noted by rdouble, package size is an issue]
- danieldk 16y agoI agree. But I guess it depends on the succes of the OS X app store. If becomes popular quickly, it does not make sense to use a non-exclusive technology, while it could attract a lot of developers otherwise. Though, I think it will require inclusion of MacRuby, or an exception in the OS X App store terms. It's not that likely that they will accept a bundle-wrapped MacRuby given that they also do not accept programs that use deprecated technologies (Java, Rosetta).
- petercooper 16y agoI think the "deprecated" clause is only in there so that apps don't rely on parts of the operating system that are deprecated and likely to disappear, not frameworks you link in (of which there are thousands out there). The clause makes sense in this respect because if you rely on OS X's Java or Rosetta and Apple removes them, your app breaks. Something linked into your .app file? That can't be "deprecated" by Apple.
- danieldk 16y agoWe are not just talking linking here. Including a Ruby interpreter, and a part of the Ruby library, or a Java virtual machine and class library if you will. I don't think Apple will go for that.
- chc 16y agoWhy not? They could have said so in the rules if they wanted to forbid it. They forbade deprecated system components, not bundled class libraries.
- petercooper 16y agoFWIW, they already allow Lua to operate in a similar manner on iOS since the third-party development tools policy change in September. I think Apple relaxed the rules because it's all too hazy. Linking in a PDF "interpreter" that calls out to various image decompression libraries is structurally little different than how MacRuby could roll.
- 16y ago