On May 6, 2007, at 3:25 PM, Alex Robinson wrote:

I wish even more that Apple had picked you up and made CamelBones a first class citizen.

Good news: That may still happen.

So, why has Apple ignored CamelBones?

They asked around internally for "sponsor" engineers to accept the job of reviewing a scripting bridge for code quality, running compatibility tests, etc. They found volunteers for Python and Ruby early on - but not for Perl.

The good news is, there's a volunteer for Perl now too, and the pushed-back release date for Leopard has bought us a little breathing room. So there's still a chance for Perl to be a first class citizen. The bad news is, we arrived late to the party and there's a lot of catching up to do.

The key is supporting the ".scriptingbridge" metadata. Objective-C is very introspective, so finding out about classes and methods at runtime is easy. Scriptingbridge is an XML format that describes the parts of a framework that aren't so easily found at runtime, such as C functions, enums, and globals. This was first introduced in RubyCocoa, and is currently available in the latest pre-release for RubyCocoa. The PyObjC team has agreed to support it as well.

I wasn't privy to the conversation inside of Apple, but I get the impression that the tipping point was when they found those two communities had agreed on a common format for this, meaning that Apple could provide very good support for *any* bridge that adopts it, with a single effort. Or maybe they instigated that agreement - I honestly don't know. Regardless, I've agreed to support .scriptingbridge metadata as well - it's a great idea, and I'm not afflicted with NIH syndrome.

The .scriptingbridge format and general scheme is public information - I've verified with Apple that it's not NDA'd. And it's not limited to Leopard; I intend to use it for Tiger and Panther versions of CamelBones as well. I can also tell you that Apple has included me on the private mailing list where its development is being organized. Also, I've been given access to the latest up to the minute version of the tool that generates metadata from header files. It's straight off the engineer's desk, newer even than the latest available Leopard build - which I've also been given access to.

One thing I can't get into is which specific frameworks have been blessed with the addition of bridging metadata in Leopard. BridgingSupport is public information - how Leopard uses it is not. So don't ask me. :-)

What all this means is, first-class scripting support is actually language-neutral, and even though Leopard will be the first OS version to include it, nothing about it will require Leopard. At the edges, specific support for RubyCocoa and PyObjC basically means that their frameworks and project templates are included with Leopard.

It would be a nice symbolic gesture for Apple to include such things for CamelBones as well, and very valuable from an advocacy standpoint, but it wouldn't be a show-stopper if developers had to download those pieces separately - it's what you're doing right now. Either way, CamelBones apps will enjoy the same deep level of bridging support that's available to any bridge.

Why did the OS X loving bit of the perl community sit by and let PyObjC become the default bridge.

I blame the CamelBones management - i.e. myself.

Seriously - I've made a lot of mistakes along the way. One of them - a big one - was allowing my own troubles to affect my enthusiasm for CamelBones, and even blaming it for my troubles. Another was not making regular releases. Yet another was not providing adequate docs and examples.

I'm working hard to overcome these problems. This thread is an example of how I'm addressing the first. I didn't start by moaning about how CB hasn't made a lot of money, or threatening to stop working on it, as I've done in the past. That habit, I think, has shaken a lot of people's confidence. So I said the simple truth, that I'm in a hard spot, and need to find work and/or donations.

I'm releasing far more often recently - approximately monthly. And, I've started adding more examples - the recent SimpleDBI is just the first.

How depressing is it that there's not even a mention of perl in this quick round up by John Gruber (himself a keen user of perl)?


And that's before Rails gets bundled by default with Leopard...

In the interest of fairness, that was also before Catalyst was bundled with CamelBones. :-)


Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net

Reply via email to