CamelBones is a Perl-Cocoa/Objective-C bridge framework written by Sherm Pendley and it appears that is doesn’t yet work with OS X Leopard. I’ve written Sherm a couple of messages myself to find out if he has plans to update it for Leopard. I haven’t heard back from him yet, but according to some posts I read from back in May, Sherm may no longer want to pursue this project, or he just can’t afford to since he has been doing it on a volunteer basis. This is a shame to people like me who are just getting into the Cocoa/Objective-C game and would love to have access to Perl inside of my apps–yep, that’s right I want to access Perl from Objective-C.
I realize that you can do this using the PerlObjCBridge, but Sherm’s library is much more robust and, frankly, easier to use. In fact, just before I upgraded to Leopard I got version 1.0.3 of CamelBones working from within a Cocoa application in Tiger. I was stoked. I can now have all of the text parsing power of Perl from within my application and this, from my point of view is the real strength of CamelBones. You can imagine my disappointment when my application would no longer work when built in Leopard.
I suppose that’s the point of my post. Obviously I’m speaking without any evidence whatsoever that the majority of people who might use CamelBones would agree with me, but I really see CamelBones being more viable as an embedded Perl interpreter than anything.
If the examples that are included in the CamelBones distro are any indication, then the majority of people who use CamelBones are using it to be able to develop Cocoa apps from Perl. I submit that because Sherm has had trouble establishing viability using CamelBones in this way, maybe he ought to consider promoting it more from the perspective that those of us who still use and love Perl, would find it far more useful as a way to run perl scripts from within our Cocoa/Objective-C apps. Here is how I am planning to use it:
- To develop a plugin framework. New plugins developed as perl scripts could use known tokens to access the internals of my app and could therefore allow the app to evolve depending upon what I or others envision.
- To embed a powerful text parsing engine. Perl is best known for its ability to parse and process text. There are regular expression libraries available for Objective-C, however, to simply embed a Perl interpreter in your app provides a powerful regex engine that is already familiar if you know Perl compatible regular expression syntax.
If need be, I’ll find another way to get what I need in my applications (regex, plugin framework, etc.), however, Sherm’s CamelBones library is mature, solid, and very powerful. It would be ideal. I hope Sherm will continue to work on the project. Meanwhile, if you, like me, use Perl on a regular basis, let Sherm know that you would like to see the project continue–maybe make a donation (Click Donate) to help support its further development.
4 thoughts on “Is CamelBones Viable? An Outsider’s Perspective”
Sherm has said several times that a 1.1.0 version with support for Leopard will be done ‘by Monday,’ though admittedly several Mondays have come and gone. :(
This is precisely the same reason I do use CamelBones, to allow Perl scripting of an Objective-C application… though the sudden death of the framework under Leopard has been a real problem.
I hacked together a sort of interim solution which allows CB to limp along under Leopard in the meantime, but I suspect in the long run I am going to have to roll my own Perl embedding, which is going to be nightmarish. :(
I appreciate your comments, Sparks.It has been a while since Leopard came out so I’m starting to lose hope, but maybe Sherm has just been too busy. I still hope that he will get back too it at some point.
I’m curious, what did you do to hack together an “interim solution”?
Though trying to get CamelBones to compile from the SourceForge repository requires some machine-specific setup and prerequisites that I have not yet managed to figure out, due to the fact that 5.8.8 is binary-compatible on the Intel side and how the search paths in CamelBones work, it is possible to create a hacky 5.8.8 bundle and place it into the CB framework, and at least have CB working on Intel. This does not seem to work with 5.8.8 on PowerPC, though.
Hence, hacky interim solution to some degree. The actual framework with the 5.8.6 bundle renamed and the search path tweakery is at http://homepage.mac.com/seattlesparks/CamelBones-leopard-hack.zip