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)?
http://daringfireball.net/2007/02/dynamic_scripting_languages
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. :-)
sherm--
Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net