AppleScript alternatives [was: Re: AppleScript]
AppleScript alternatives [was: Re: AppleScript]
- Subject: AppleScript alternatives [was: Re: AppleScript]
- From: has <email@hidden>
- Date: Sat, 8 Dec 2007 03:12:22 +0000
Paul Scott wrote:
Personally, I'd like
to see AppleScript replaced by ECMAScript with a DOM-like
AOM (Application Object Model) interface.
Actually, that's two completely independent requests: one to replace
the AppleScript language, and one to replace the current Apple Event
Object Model used by scriptable applications.
I'll discuss the second request in a separate post to follow this one;
below are my thoughts on the first one.
-------
Request One - replacing the AppleScript language itself - won't happen
as there are way too many users with existing AppleScript-based
workflows that would throw an absolute fit if they suddenly had to
rewrite all that code in a different language.
That said, Apple *could* - if they wished - include other OSA language
components as part of OS X in order to provide users who don't care
for AppleScript with full alternatives. Third-party developers are
also free to create and distribute their own OSA language components
independently of Apple, of course.
The main problem right now is there aren't any third-party OSA
language components that work anything like as well as AppleScript,
and no sign of Apple developing any of its own (not that I'd really
trust them to get it right anyway, given their track record on other
OSA technologies).
As to which languages would make good AppleScript alternatives, that's
a tricky question:
- Python and Ruby would be obvious choices, given their excellent
existing desktop support (large, highly active user communities; scads
of libraries, documentation and tools) and current fashionable status.
However, their standard C implementations completely suck for this
kind of embedding use, creating some significant technical hurdles for
anyone attempting to produce efficient, industrial-strength OSA
versions of these languages.
Example: See my PyOSA component and its accompanying TODO/hand-
wringing list for an idea of the challenges involved.
- I imagine Perl falls in the same boat as Python and Ruby regarding
the technical challenges involved, and, given the Perl community's
perpetual inability to get it together on Perl 6, it isn't exactly the
most fashionable of languages these days.
- JavaScript would be a much easier language to OSA-ify, since it was
designed from the get-go for embedded use. Its main disadvantage is
that it has basically zero desktop presence at the moment, meaning
that while it has tons of community knowledge, literature and
libraries related to web programming, you'll be hard pushed to find
anything at all to help with desktop-related tasks. That leaves it
with few unique selling points over the current incumbent,
AppleScript, which completely sucks for libraries, period, but does at
least provide some community knowledge and literature regarding
desktop use.
Example: See Late Night Software's JavaScriptOSA component, which
makes a fair stab at the problem, although it isn't without some
design faults and has never really caught on amongst Mac users for
various reasons.
- F-Script, Lua and Io may or may not be good technical choices,
although I think they're specifically designed for embedded use in
which case they may be quite easy to OSA-ify. The disadvantage is that
at the moment they aren't nearly as popular as Python and Ruby, so
again you don't have the large existing user communities, plentiful
libraries, etc. to help sell them. Still, they're all relatively young
at the moment and still growing, so who knows where they'll be in a
few years' time?
- As for commercial languages like Revolution and REALbasic, I really
don't know if they'd make good OSA components or not. (Though I
believe the RunRev folks are just down the road from us if they ever
fancy a consult...:) Can't tell without knowing more about their
implementations. Also, the fact that these languages have to be paid
for is bound to deter a some folks from using them, which may or may
not leave a sizeable enough audience to justify the commercial
investment.
Example: hmm... Frontier's the only one I can think of here, being the
granddaddy of them all. Bit before my time, however, so not familiar
with all the details myself.
-------
Maybe Matt/Philip/Jon/anyone else intimately familiar with the
mysterious inner workings of the OSA system could add some thoughts
here. I can also discuss my own experiences in writing PyOSA if anyone
wants to hear them, although I'd recommend taking it to AppleScript-
implementors as it's long, technical and not a little boring.:p
Regards,
has
--
http://appscript.sourceforge.net
http://rb-appscript.rubyforge.org
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden