Open Scripting Architecture (OSA)

The basis of the AppleScript implementation was the Open Scripting Architecture (OSA). Apple provided OSA so that third-party scripting/automation applications such as QuicKeys and UserLand Frontier could function on an equal status with native AppleScript. AppleScript was implemented as a scripting component, and the basic specifications for interfacing such components to the OSA were public, allowing other developers to add their own scripting components to the system. Public client APIs (Application Program Interfaces) for loading, saving and compiling scripts would work the same for all such components, which also meant that applets and droplets could hold scripts in any of those scripting languages.

Having an open architecture made it possible to write language extensions (called a “scripting addition”, or “osax” for “Open Scripting Architecture eXtension”), based on Hypercard’s external commands. The coiners of the term osax, Jon Pugh (author of Jon’s Commands) and Donald Olson consider the proper spelling to use all lowercase letters, “osax” and “osaxen”. Because an extension adds terms to the language, it can be troublesome to predict how the AppleScript compiler will behave given a specific syntax depending upon which osaxen are installed at runtime because there is no guarantee that they will not conflict with others. The more modern trend, encouraged by Apple, is to use faceless background applications (FBA as scripting additions. Their dictionary terms are accessed in “tell” blocks instead of becoming part of the language, so they are only available as needed.