• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
OSA modernization and scope
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OSA modernization and scope


  • Subject: OSA modernization and scope
  • From: Philip Aker <email@hidden>
  • Date: Sun, 21 Dec 2008 05:47:51 -0800

On 2008-12-20, at 10:58:54, has wrote:

However the benefits would be extraordinary considering that the result would be a small but extensible 'class' system expressible in C -- that means deployment possibilities on all major platforms and adaptability to most object-oriented languages.

Bear in mind that Apple have a vested interest in *not* making their exclusive technologies easily reproducible on other major platforms. So if that's what you're after then better get cracking on it yourself as I can't see Apple ever touching it. :)

I'll have more to say about the other comments in your post later but I'd like to clarify this item.


1. The OSA design is not an Apple-only technology: <http://www.edm2.com/index.php/OS2_API:OSA >. It just happens to be only implementation still standing.

2. What I'm saying is to put the public interface in CoreFoundation ("the design") but put the implementation at the lowest level Apple can handle without exposing technologies it wishes to remain private. This policy is already in use. For example in CFURL.h:

#ifndef CF_OPEN_SOURCE
#if defined(__MACH__)
struct FSRef;
CF_EXPORT
CFURLRef CFURLCreateFromFSRef(CFAllocatorRef allocator, const struct FSRef *fsRef);
CF_EXPORT
Boolean CFURLGetFSRef(CFURLRef url, struct FSRef *fsRef);
#endif
#endif


Similarly in CFPluginCOM.h (which isn't even imported in a normal CoreFoundation include) where the interface isn't usable for Contextual Menu Plugins unless you have certain defines that are only available in Menus.h (Carbon layer).

Also in CFRunLoop.h where we see:

#if defined(__MACH__)
mach_port_t (*getPort)(void *info);
void * (*perform)(void *msg, CFIndex size, CFAllocatorRef allocator, void *info);
#else
HANDLE (*getPort)(void *info);
void (*perform)(void *info);
#endif


Other platforms necessarily must implement certain portions of the CoreFoundation design themselves in order for it to be useful on their machines. But the important thing is to follow the design.

ยง

So the goal, as far as I'm concerned is to modernize the OSA design so that it can be expressed in CoreFoundation terms and thus leave itself to truly be an "Open Scripting Architecture" because 95% of CoreFoundation is open source.


Philip Aker echo email@hidden@nl | tr a-z@. p-za-o.@

Democracy: Two wolves and a sheep voting on lunch.

_______________________________________________
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
References: 
 >Re: on OSA (was Re: What's so great about AppleScript, anyway?) (From: has <email@hidden>)

  • Prev by Date: Re: HFS paths (was Tell Blocks Considered Harmful)
  • Next by Date: Re: HFS paths (was Tell Blocks Considered Harmful)
  • Previous by thread: Re: on OSA (was Re: What's so great about AppleScript, anyway?)
  • Next by thread: Re: Standard Additions documentation
  • Index(es):
    • Date
    • Thread