Jess's Lab Notebook

AppleScript: History of the Project by William R. Cook

Metadata

Highlights added October 14, 2023 at 7:48 AM

One important question was whether there was sufficient benefit in providing
a standard platform for scripting, when custom solutions for each application might be better (View Highlight)

One benefit of a standard scripting platform is that applications can then
be integrated with each other. This capability is important because users typically work with multiple applications at the same time. In 1990, the user’s options for integrating applications were limited to shared files or copy/paste with the clipboard. (View Highlight)

Integrating graphical applications can be done at several levels, for example, graphical embedding for visual integration, behavioral integration, or data integration. Visual integration involves embedding one graphical component inside another; examples include a running Java applet inside a web page, or a specialized organization chart component displayed inside a word-processing document. Behavioral integration occurs when two components communicate with each other; examples include workflow or invocation of a spell-check component from within a word processor. Data integration occurs whenever one application reads a file (or clipboard data) written by another application. A given system can include aspects of all three forms of integration. (View Highlight)

New highlights added October 14, 2023 at 8:11 AM

The goal of AppleScript is to be a pervasive architecture for inter-application communication, so that it is easy to integrate multiple applications with a script, or invoke the functionality of one application from a script in another application. We believed that scripting would be powered by a “network effect”: a new scriptable application improves the value of scripting for all other applications. (View Highlight)

New highlights added October 20, 2023 at 12:11 AM

This event illustrates one of the recurring characteristics of AppleScript: the basic idea was so compelling that it was enthusiastically embraced by almost every software developer who was exposed to it. (View Highlight)

What was not immediately obvious was how difficult the vision was to achieve – not for strictly technical reasons, but because AppleScript required a fundamental refactoring, or at least augmentation, of almost the entire Mac- intosh code base. (View Highlight)

At this point it is impossible to identify one individual as the originator of the AppleScript vision. The basic idea is simple and has probably been independently discovered many times. (View Highlight)

HyperCard was a good source of inspiration because it was a flexible application development environment with a scripting language embedded within it. (View Highlight)

HyperCard [27, 30], originally released in 1987, was the most direct influence on AppleScript. (View Highlight)

HyperCard is a combination of a simple database, a collection of user interface widgets, and an English-like scripting language. These elements are organized around the metaphor of information on a collection of index cards. A collection of such cards is called a stack. A card could contain text, pictures, buttons, and other graphical objects. (View Highlight)

These structures are organized in a containment hierarchy: stacks contain cards, cards contain objects, and properties exist on stacks, cards, and objects. This predefined structure makes it easy to build simple stacks, but makes it more difficult to create custom data structures. (View Highlight)

HyperCard became was one of the main influences that led to the formation of a research and development project to build a new development platform for the Mac. (View Highlight)

After about a year and a half of work, the Family Farm project was dis- banded, and new teams were created to design and implement some of the concepts investigated by Family Farm. One of the main themes to emerge from Family Farm was a focus on techniques for integrating applications (as men- tioned in section 1.2). Integrating graphical applications can be done at sev- eral levels: visual embedding, behavioral coordination, or data exchange. The spin-off projects were Apple Events, AppleScript, and OpenDoc. AppleScript focused on data and behavioral integration. The OpenDoc project, which is not discussed in detail here, focused on visual integration by embedding com- ponents. (View Highlight)

The transition from research to product development was a difficult one; in the end the primary product transferred from Family Farm to its descendents was an inspiring vision. (View Highlight)

The analogy with verbs and nouns in English helped Kurt win the argument for few commands (verbs) that operate on general objects (nouns). For example, there is a single delete command that can delete paragraphs or characters from a word-processing document, or files from the file system. Having a small number of generic verbs, including set, copy, delete, insert, open and close, proved to be more flexible. (View Highlight)

AppleScript History of the Project - William R. Cook
Interactive graph
On this page
AppleScript: History of the Project by William R. Cook
Metadata
Highlights added October 14, 2023 at 7:48 AM
New highlights added October 14, 2023 at 8:11 AM
New highlights added October 20, 2023 at 12:11 AM