From: Aredridel Date: 2003-05-06T08:15:14+09:00 Subject: Standard Library Idea I haven't checked to see how easy this would be yet, but I was thinking that making the ObjectiveC-to-Ruby bridge functionality of RIGS a standard inclusion in the Ruby language would be very powerful: * It would allow extensions to be written in an object-oriented C language that has a huge and (now that Apple has released OS X) rapidly growing developer base and professional toolset. * It has a quick migration path for code that needs to be fast: Methods can be migrated to ObjC as the need for speed rises. * It's simple and elegant -- the code for RIGS is pretty small. * It would allow GNUStep, OpenStep, MacOS X and Ruby programmers to collaborate naturally, and it would give Ruby a high-profile "something it does well" -- scripting in a highly object-oriented user-interface environment. * It would facilitate embedding Ruby in large applications, I think, at least for applications that use the GNU toolchain. I'm sure there's other benefits, but that is what comes to mind immediately. GNUStep is getting a big push from the OS X wave, and I think Ruby could ride that as well -- and if either Ruby or GNUStep hit the point of being highly visible like PHP, MySQL, GNOME, GTK or GIMP have been, the other projects closely attached would vault very high indeed. (As a parallel: GTK was nonexistant in 1995; in 1997-98, GIMP was released, and gained widespread notoriety as Linux was becoming known, and as a free alternative to a major app of the time -- Photoshop. Because of the boom, the free desktop project that adopted GTK also got major notoriety -- GNOME. Look at where GNOME is today and see that it worked. I'm not saying it was intentional, but it happened...) At the moment, GNOME, GNUStep and KDE all lack a scripting language that can help tie them together the way AppleScript works on OS X and more. I can see Ruby filling that niche very nicely. Having a general purpose language in there means that people learning GUI scripting can move on to actual app development and other kinds of programming with ease. Having scripts hanging around one's GUI is a sure way to lower the learning curve, too. Starting with GNUStep might be the way to go, just because the API is so nice, the code exists (RIGS and RubyCocoa), and because once one GUI system has been nicely tackled, one can then work on porting the ideas to another. Anyway, just something to ponder. Ari