Re: [MacRuby-devel] The Future of MacRuby
I've been a lurker in this mailing list for a while now. Sad to hear we've lost a project lead but glad to hear Matt has identified many of the issues I've been feeling myself. I'm a self-taught web developer. I never had any interest in learning native app development until I heard about MacRuby. Now I've written a few sample apps and one "production" app. I think MacRuby is a great resource to the Ruby community and I think web developers are MacRuby's target audience. All of my MacRuby apps are GUIs for other Ruby libraries or gems. The biggest thing that I feel is lacking at this point (which Matt mentioned) are adequate "getting started" and reference guides. I had a heck of a time trying to create my first app. I had to scrounge together blog posts, StackOverflow questions, and Objective-C docs. I think some good guides (like Rails guides) would go a long way towards increasing adoption. Also moving this mailing list to Google Groups and splitting it into MacRuby-core and MacRuby-help would provide a place for newbies to get help. In fact I started a Google group for just that purpose since I was frustrated that there was no mailing list for people starting out (but never told anyone so I'm the only one who ever used it). But I would love to see an official one. All the open source projects I know of have a Google group since they are easy to use and subscribe to. I also feel like XCode is a major hurdle. If you're already familiar with XCode, that's great, but as a web developer, I spend most of my day in TextMate (or command line). I would love to see some code samples of a REAL app created from scratch (not using XCode, multiple files/object oriented) because that's how I would like to work with MacRuby (from the text editor of my choice, rather than be forced into using Apple's IDE, regardless of whether or not it's better). I installed MacRuby from the command line via RVM so I want to generate a .app from the command line too. I think Ruby on Rails is seen as a productive programming environment. I think a big part of that is due to its many command line generators. A lot of people learned how to use Rails by looking at the code generated by the scaffolding created. If there was more emphasis towards using MacRuby from the command line, I could see more people writing MacRuby app scaffolding generators. I also think that there's a big movement towards writing native apps using web technologies (write once, run everywhere mobile apps using JavaScript, i.e. Titanium Mobile, PhoneGap). I think this is huge since nobody wants to learn a language that's proprietary to a single device/company. However, I don't want to write JavaScript unless it looks more like Ruby (thanks CoffeeScript). If I could write an iOS app in MacRuby I would. I'm not sure how this would work though. I included MacRuby in my Snow Leopard app and it increased the app file size tremendously. File size is important when it comes to mobile. Those are my thoughts. Again, I think MacRuby is great and mostly complete. More code samples and documentation are a high priority at this point in my opinion. --Andrew Havens P.S. If you're interested, I'm working on an open source version of HipChat that I call Mad Chatter. I used MacRuby to create the native Mac client. https://github.com/andrewhavens/mad_chatter Contributors more than welcome!
Thanks a lot Andrew for the feedback. I think you have some really great points in there. I'm letting others weigh-in to gage the interest and then we can start getting organized. - Matt On Fri, Apr 6, 2012 at 9:49 AM, Andrew Havens <Andrew.Havens@evanta.com>wrote:
I've been a lurker in this mailing list for a while now. Sad to hear we've lost a project lead but glad to hear Matt has identified many of the issues I've been feeling myself.
I'm a self-taught web developer. I never had any interest in learning native app development until I heard about MacRuby. Now I've written a few sample apps and one "production" app. I think MacRuby is a great resource to the Ruby community and I think web developers are MacRuby's target audience. All of my MacRuby apps are GUIs for other Ruby libraries or gems.
The biggest thing that I feel is lacking at this point (which Matt mentioned) are adequate "getting started" and reference guides. I had a heck of a time trying to create my first app. I had to scrounge together blog posts, StackOverflow questions, and Objective-C docs. I think some good guides (like Rails guides) would go a long way towards increasing adoption. Also moving this mailing list to Google Groups and splitting it into MacRuby-core and MacRuby-help would provide a place for newbies to get help. In fact I started a Google group for just that purpose since I was frustrated that there was no mailing list for people starting out (but never told anyone so I'm the only one who ever used it). But I would love to see an official one. All the open source projects I know of have a Google group since they are easy to use and subscribe to.
I also feel like XCode is a major hurdle. If you're already familiar with XCode, that's great, but as a web developer, I spend most of my day in TextMate (or command line). I would love to see some code samples of a REAL app created from scratch (not using XCode, multiple files/object oriented) because that's how I would like to work with MacRuby (from the text editor of my choice, rather than be forced into using Apple's IDE, regardless of whether or not it's better). I installed MacRuby from the command line via RVM so I want to generate a .app from the command line too.
I think Ruby on Rails is seen as a productive programming environment. I think a big part of that is due to its many command line generators. A lot of people learned how to use Rails by looking at the code generated by the scaffolding created. If there was more emphasis towards using MacRuby from the command line, I could see more people writing MacRuby app scaffolding generators.
I also think that there's a big movement towards writing native apps using web technologies (write once, run everywhere mobile apps using JavaScript, i.e. Titanium Mobile, PhoneGap). I think this is huge since nobody wants to learn a language that's proprietary to a single device/company. However, I don't want to write JavaScript unless it looks more like Ruby (thanks CoffeeScript). If I could write an iOS app in MacRuby I would. I'm not sure how this would work though. I included MacRuby in my Snow Leopard app and it increased the app file size tremendously. File size is important when it comes to mobile.
Those are my thoughts. Again, I think MacRuby is great and mostly complete. More code samples and documentation are a high priority at this point in my opinion.
--Andrew Havens
P.S. If you're interested, I'm working on an open source version of HipChat that I call Mad Chatter. I used MacRuby to create the native Mac client. https://github.com/andrewhavens/mad_chatter Contributors more than welcome!
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
I've been a happy user of MacRuby for a while now and I have been intending to give back by helping with the development, so Matt's message is timely and inspirational. Here is a brain dump of some of the thoughts I've had about the project. I'd like to see a statement of the goal for MacRuby. The website mainly talks about Cocoa GUI apps. I'm very keen to see MacRuby become the goto ruby for OS X and iOS, not just for writing apps, but for all ruby tasks, Rails included. Is this the future of MacRuby? I have Ruby, C, C++ and Obj-C experience, but the one thing that is holding me up from contributing is a simple one page description from the source level of what happens when you run a script in MacRuby. Is anyone able to write one? I'm not sure the world needs another ruby VM. With Evan Pheonix's involvement is now the time to investigate merging the Rubinius and MacRuby VMs or are they too different? Can MacRuby leverage the work of the Rubinius team in some way? With the death of Obj-C GC why isn't MacRuby being ported to use ARC or even retain/release? Why does it need it's own memory handling scheme? Call 0.11 or 0.12 v1.0. If MacRuby is good enough for the Mac App Store then it's good enough to be called v1.0 Henry
On Friday, April 6, 2012 at 8:00 PM, Henry Maddocks wrote:
I have Ruby, C, C++ and Obj-C experience, but the one thing that is holding me up from contributing is a simple one page description from the source level of what happens when you run a script in MacRuby. Is anyone able to write one?
I gave a talk last year to Boston.rb that they graciously taped and put online. You can find it here: http://bostonrb.org/presentations/macruby-what-is-it-and-why-should-i-care-p... . Hopefully it should answer most of your questions around how MacRuby works. If not, hit me up on IRC! :-)
I'm not sure the world needs another ruby VM. With Evan Pheonix's involvement is now the time to investigate merging the Rubinius and MacRuby VMs or are they too different? Can MacRuby leverage the work of the Rubinius team in some way?
The MacRuby VM is very nicely tailored to the job of running on top of the Objective-C runtime. It is also fairly mature. Personally, I see no technical reason that a proliferation of VMs should be a problem (there are at least 3 major Java VMs…4 if you disregard Oracle's lawyers and count Dalvik).
With the death of Obj-C GC why isn't MacRuby being ported to use ARC or even retain/release? Why does it need it's own memory handling scheme?
I would assert that Ruby without automatic memory management can hardly be called Ruby. ARC is a compile-time tool, so using it directly is not an option. Whether we call memory management a garbage collector or an automated reference counter is, I think, a matter of semantics. However, memory needs to be managed "somehow". - Josh
On 7/04/2012, at 1:13 PM, Joshua Ballanco <jballanc@gmail.com> wrote:
I gave a talk last year to Boston.rb that they graciously taped and put online. You can find it here: http://bostonrb.org/presentations/macruby-what-is-it-and-why-should-i-care-p... . Hopefully it should answer most of your questions around how MacRuby works. If not, hit me up on IRC! :-)
Thanks, I'll take a look.
I'm not sure the world needs another ruby VM. With Evan Pheonix's involvement is now the time to investigate merging the Rubinius and MacRuby VMs or are they too different? Can MacRuby leverage the work of the Rubinius team in some way?
The MacRuby VM is very nicely tailored to the job of running on top of the Objective-C runtime. It is also fairly mature. Personally, I see no technical reason that a proliferation of VMs should be a problem (there are at least 3 major Java VMs…4 if you disregard Oracle's lawyers and count Dalvik).
That's fine if the MacRuby VM is " fairly mature". I was thinking more from a sharing of resources position. More people available to work on the VM.
With the death of Obj-C GC why isn't MacRuby being ported to use ARC or even retain/release? Why does it need it's own memory handling scheme?
I would assert that Ruby without automatic memory management can hardly be called Ruby. ARC is a compile-time tool, so using it directly is not an option. Whether we call memory management a garbage collector or an automated reference counter is, I think, a matter of semantics. However, memory needs to be managed "somehow".
What are we talking about here, the ruby language GC or the ruby implementation GC? Take MRI; it implements a GC in a non GC language (C), it uses malloc and free. I was talking about to ARC in the Obj-c implementation, not removing GC from ruby the language. Henry
On Friday, April 6, 2012 at 11:06 PM, Henry Maddocks wrote:
The MacRuby VM is very nicely tailored to the job of running on top of the Objective-C runtime. It is also fairly mature. Personally, I see no technical reason that a proliferation of VMs should be a problem (there are at least 3 major Java VMs…4 if you disregard Oracle's lawyers and count Dalvik).
That's fine if the MacRuby VM is " fairly mature". I was thinking more from a sharing of resources position. More people available to work on the VM.
VM expertise would, of course, be welcome. However, I think you would find that attempting to rewrite the MacRuby VM with the goal of sharing VM implementations with Rubinius would not only be an enormous amount of work, but you would ultimately end up with more implementation specific code than shared code. For example, the MacRuby VM must contend with the possibility that exceptions can be thrown from Cocoa code into the MacRuby environment, so there is a good amount of the VM that deals with exceptions. In contrast, Rubinius is only concerned with Ruby generated exceptions. That, right there, is a giant chunk of the VM that couldn't be shared easily.
I would assert that Ruby without automatic memory management can hardly be called Ruby. ARC is a compile-time tool, so using it directly is not an option. Whether we call memory management a garbage collector or an automated reference counter is, I think, a matter of semantics. However, memory needs to be managed "somehow".
What are we talking about here, the ruby language GC or the ruby implementation GC? Take MRI; it implements a GC in a non GC language (C), it uses malloc and free.
I was talking about to ARC in the Obj-c implementation, not removing GC from ruby the language.
I apologize, it wasn't you but others have brought up the notion of giving MacRuby the ability to explicitly retain/release objects in place of GC. That, to me, is a complete non-starter. Regarding ARC, MacRuby cannot use ARC. That is, MacRuby cannot use the Obj-C implementation of ARC. The concept of ARC, as an acronym for "Automatic Reference Counting", could be an interesting avenue to pursue. Personally, I am inclined to see what Laurent has in mind. While the GC question is important, it is by no means the only thing that needs attention in MacRuby (and it is not currently "broken"). I think we have more than enough work to do to keep many contributors busy for a good while.
Automatic Reference Counting implements automatic memory management for Objective-C objects and blocks. If you read MacRuby source code, you will found that the VM is not even written in Objective-C! Henry Maddocks 於 2012年4月7日 下午7:13 寫道:
On 7/04/2012, at 6:13 PM, Joshua Ballanco <jballanc@gmail.com> wrote:
Regarding ARC, MacRuby cannot use ARC. That is, MacRuby cannot use the Obj-C implementation of ARC.
Why is that?
Henry
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Yes, ARC as is can't be used in MacRuby, but the principles can be ported. Which is what I did, more or less, in an experimental branch. Now, there are various challenges to solve in order to reach stability, but don't worry, we will get there. Laurent 2012/4/7 Francis Chong <francis@ignition.hk>:
Automatic Reference Counting implements automatic memory management for Objective-C objects and blocks. If you read MacRuby source code, you will found that the VM is not even written in Objective-C!
Henry Maddocks 於 2012年4月7日 下午7:13 寫道:
On 7/04/2012, at 6:13 PM, Joshua Ballanco <jballanc@gmail.com> wrote:
Regarding ARC, MacRuby cannot use ARC. That is, MacRuby cannot use the Obj-C implementation of ARC.
Why is that?
Henry
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
this is a great news. looking forward to see it in action! Laurent Sansonetti 於 2012年4月7日 下午8:37 寫道:
Yes, ARC as is can't be used in MacRuby, but the principles can be ported. Which is what I did, more or less, in an experimental branch. Now, there are various challenges to solve in order to reach stability, but don't worry, we will get there.
Laurent
2012/4/7 Francis Chong <francis@ignition.hk>:
Automatic Reference Counting implements automatic memory management for Objective-C objects and blocks. If you read MacRuby source code, you will found that the VM is not even written in Objective-C!
Henry Maddocks 於 2012年4月7日 下午7:13 寫道:
On 7/04/2012, at 6:13 PM, Joshua Ballanco <jballanc@gmail.com> wrote:
Regarding ARC, MacRuby cannot use ARC. That is, MacRuby cannot use the Obj-C implementation of ARC.
Why is that?
Henry
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
On 7/04/2012, at 11:24 PM, Francis Chong <francis@ignition.hk> wrote:
Automatic Reference Counting implements automatic memory management for Objective-C objects and blocks. If you read MacRuby source code, you will found that the VM is not even written in Objective-C!
This is why a one page description of how MacRuby works would be useful. Henry
What sort of information would you like to see on such a page? On Sunday, April 8, 2012 at 7:09 PM, Henry Maddocks wrote:
On 7/04/2012, at 11:24 PM, Francis Chong <francis@ignition.hk (mailto:francis@ignition.hk)> wrote:
Automatic Reference Counting implements automatic memory management for Objective-C objects and blocks. If you read MacRuby source code, you will found that the VM is not even written in Objective-C!
This is why a one page description of how MacRuby works would be useful.
Henry
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org (mailto:MacRuby-devel@lists.macosforge.org) http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
The technology by the name “ARC” actually inserts the required code at compile time and only for Objective-C(++). The principal of ARC, however, can be applied to MacRuby. On 7 apr. 2012, at 13:13, Henry Maddocks wrote:
On 7/04/2012, at 6:13 PM, Joshua Ballanco <jballanc@gmail.com> wrote:
Regarding ARC, MacRuby cannot use ARC. That is, MacRuby cannot use the Obj-C implementation of ARC.
Why is that?
Henry
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
participants (7)
-
Andrew Havens
-
Eloy Duran
-
Francis Chong
-
Henry Maddocks
-
Joshua Ballanco
-
Laurent Sansonetti
-
Matt Aimonetti