HyperCard

HyperCard is an application programme and a simple programming environment produced by Apple Computer which runs only in Mac OS versions 9 or earlier. It most closely resembles a database application in concept, in that it stores information, but unlike traditional database systems HyperCard is graphical, very flexible and trivially easy to modify. In addition, HyperCard includes HyperTalk, a powerful and easy to use programming language to manipulate data and the user interface. HyperCard users often used it as a programming system as opposed to a database.

HyperCard was originally released with System 6 in 1987, and was finally withdrawn from sale in March 2004, although it had not been updated for many years at that time.

History
HyperCard was created by Bill Atkinson and initially released in August 1987, with the understanding that Atkinson would give HyperCard to Apple only if they promised to release it for free on all Macs (an agreement that, according to Atkinson, ran out when the largely-rewritten HyperCard 2.0 hit the shelves). Originally called WildCard during its development, the name was changed to HyperCard before official release due to legal issues. The HyperCard application and its associated files retain a creator code of, reflecting this period of development.

HyperCard was a huge hit almost instantly (Apple timed its release to coincide with Macworld Expo in Boston to guarantee maximum publicity). No one had seen anything like it on any machine prior to its release, and its power and ease of use is mostly unmatched even today. A huge number of people who thought they would never be able to program a computer started using HyperCard for all sorts of automation and prototyping tasks, a surprise even to its creator.

Apple itself never seemed to understand what HyperCard was. Management saw that it was being used by a huge number of people, internally and externally, and bug reports and upgrade suggestions continued to flow in from a wide variety of users; clearly people were interested in it. However it was also free, which made it difficult to justify dedicating engineering resources to improving it. Unwilling, or unable, to see that HyperCard was making the Macintosh platform, as a whole, much more interesting to the market, management let it languish.

Things started changing in late 1989, when internal politics (largely the efforts of Kevin Calhoun, a programmer at Apple) finally gained enough momentum to start an upgrade process. This resulted in 1990's HyperCard 2.0, a massive improvement on the original.

Then, seemingly to add insult to injury, Apple decided that all software including HyperCard should be a part of their Claris division. Many of the developers refused to move from Apple. Claris, in the business of selling software for a profit, also never understood HyperCard.

At Claris, a "viewer" only version, the HyperCard Player, was created. Claris would sell an editor product, whereas Apple would include the HyperCard Player on the system CDs. People would now have to pay to use the product which many considered to be a basic part of the Mac.

Despite new revenue, Claris did little to market HyperCard. Development continued, with minor upgrades as well as the first failed attempt to create HyperCard 3.0. Claris released upgrades to version 2 including a method to colorise stacks. HyperCard continued to be popular and used for a widening range of applications, from the game The Manhole, an earlier effort by the creators of Myst, to corporate information services and many thousands in between. More than two years after transferring HyperCard to Claris, Claris returned HyperCard development to Apple.

During this period, HyperCard began losing its market. Without a number of important features, namely simple color, HyperCard authors began moving to systems such as SuperCard and Macromedia's Authorware.

Several attempts were made to re-start HyperCard at Apple. The product was eventually rolled into the QuickTime group as it seemed to have something to do with multimedia, and a new effort to allow HyperCard to be used to create interactive QuickTime movies started under the direction of Kevin Calhoun. The resulting HyperCard 3.0 was first presented in 1996 when a beta-quality version was given to developers at Apple's annual Worldwide Developers Conference. Demos were made throughout the late 1990s, showing every feature one could ask for, color support, internet connectivity, and the ability to be displayed in a web browser with no effort. For some reason the product was never released, and Kevin Calhoun, the real force in the effort, left Apple in 2001.

This, after years of continued on-again, off-again upgrades and general mismanagement, was enough to finally kill the product. What started as a groundbreaking effort that seemed to be changing the world died the death of a thousand cuts and slowly disappeared as users grew fed up with what was now an outdated product. Apple finally ceased selling HyperCard in March of 2004.

Description
HyperCard is based on the concept of a "stack" of virtual "cards". Each card includes fields that store data, and the pattern for each card (its layout, as opposed to the data in the layout) is known as the "background". Backgrounds could include pictures (its original purpose, "background picture"), picture fields, buttons, text, text fields (editors) and other common GUI elements, which would then be copied onto new cards.

Users can construct databases by opening the Background editor and drawing items onto it to hold the various pieces of data. For instance, an address book could be easily built up by adding a few text fields to hold the name and address. Once completed, the user simply adds a new card (by typing command-n) and types into the fields. The background could be modified at any time, allowing changes to be made with ease – something traditional systems are very bad at. Basic operations such as search, add and delete were built into the HyperCard environment, allowing simple databases to be set up and used by anyone able to use the Macintosh.

Scripting in the HyperTalk language allowed the system to be easily modified and extended. Unlike many scripting languages, HyperTalk proved to be usable by a wide range of users; allowable syntax included all sorts of versions of the same statement, all in readable English, to avoid forcing the user to write their programs in a particular format.

For instance,  would do exactly what it seems to do. Achieving this sort of simplicity and readability required considerable work. For instance, it required allowing numbers to be specified either numerically (1, 2), as cardinals (one, two), or as ordinals (first, second), a "bother" that most languages would ignore, but one that dramatically improves readability.

Since the HyperCard world was limited to those items supported on the Background, referring to objects and the items on them was very easy. The example above shows how to access data within a field on a particular card, but one could refer to any object in the same basic fashion – including the stack itself. To make things even easier to refer to, all objects could be named, as in the example above.

Of particular interest was HyperCard's  command which would navigate to cards containing text. Whereas under a RDBMS something as simple as finding all records with the word "Bob" is a very difficult task, under HyperCard it was as simple as. This could then be made more selective with modifications such as. Similarly, it had a "sort" command that allowed evaluating entire expressions to classify sort order.

Adding scripts was also easy. The user simply "command-option-clicked" on any element in the stack, and an editor would pop-up (or they could click the "Script" button in the item's property dialog). The script could then be edited, saved, and used immediately. HyperCard 2.0 added a fairly powerful and easy-to-use debugger as well. In addition, it contained the "Message Box", an interactive command-line in a floating window that could execute single lines of script. This of course also included the "find" command, which is why it doubled as a search dialog.

HyperTalk was so easy to use that one of the main uses was not as a database, but as a programming tool. Thousands of "stacks" were written and distributed in the few years when HyperCard was widely available.

The last sixteen bytes of every HyperCard stack end with the Pascal string "Nu är det slut&#8230;" (That is the end&#8230; in Swedish) though this is never seen by users.

Externals
The power of HyperCard could be increased significantly through the use of external command and external function modules, more commonly known as XCMDs and XFCNs. These were small code fragments packaged in a resource fork that seamlessly integrated into the system and/or the HyperTalk language--perhaps the first known example of the plugin concept. Unlike conventional plugins, these did not require separate installation before they were available for use; they could be included in a stack, where they were directly available to scripts in that stack.

During HyperCard's peak popularity in the late 1980s, a whole ecology of vendors offered thousands of these externals for everything from HyperTalk compilers to graphing systems, database access, internet connectivity, and practically everything else. Many of these vendors had their businesses destroyed when HyperCard was handed to Claris.

Applications
HyperCard has been used for all sorts of hypertext and artistic purposes. Before the advent of PowerPoint, HyperCard was often used as a general purpose presentation program. Examples of HyperCard applications include simple databases, "choose your own adventure"-type games, and educational teaching aids.

Due to its rapid application design facilities, HyperCard was also often used for prototyping of applications, and sometimes even for version 1.0 implementations. Inside Apple, the QuickTime team was one of HyperCard's biggest customers.

A number of commercial software products were created in HyperCard, most notably the original version of the interactive game narrative Myst, the Voyager Company's Expanded Books, and multimedia CD-ROMs of Beethoven's Ninth Symphony, the Beatles' A Hard Day's Night, and the Voyager MacBeth. The prototype and demo of the popular game You Don't Know Jack was written in HyperCard.

The HyperCard-inspired Supercard for a while included the "Roadster" plugin that allowed stacks to be placed inside Web pages and viewed by browsers with an appropriate browser plugin. There even was a Windows version of this plugin allowing computers other than Macintoshes to use the plugin.

Legacy
HyperCard is one of the first products that made use of and popularized the hypertext concept to a large popular base of users.

Jakob Nielsen has pointed out that HyperCard was really only a hypermedia program since its links started from regions on a card, not text objects.

HyperCard saw a loss in popularity with the growth of the World Wide Web, since the Web could handle and deliver data in much the same way as HyperCard without being limited to files on your hard disk. Interestingly, HyperCard had a significant impact on the web as it inspired the creation of both HTTP itself and JavaScript (through its influence on Tim Berners-Lee's colleague Robert Cailliau).

Other companies were quick to see the power of HyperCard and offer their own versions.
 * SuperCard is a color version of HyperCard on the Mac with additional features, a full GUI toolkit, and now OS X compatibility.
 * WinPlus was a Windows product similar to HyperCard.
 * Asymetrix's Windows application ToolBook resembled Hypercard but required an external converter to read Hypercard stacks.
 * Oracle purchased a cross-platform clone and released it as OracleCard, renamed Oracle Media Objects, used as a 4GL for database access.
 * Most recently Runtime's Revolution incorporates all of HyperTalk (the HyperCard scripting language), and a large part of the feature set. It expands significantly on HyperCard's feature set and offers a full GUI toolkit. It runs on Macintosh, Windows, and Unix.

In addition, many of the basic concepts of the original system were later re-used in other forms. Apple built their system-wide scripting engine AppleScript on a language very similar to HyperTalk; it was recently discovered as a perfect fit for DTP workflow automation needs. Applescript will gain a graphical programming front end called Automator in the next major release of Mac OS X, codenamed Tiger, due for release in 2005. Some see HyperCard as an ancestor to the later conceived Visual Basic development environment by Microsoft. One of HyperCard's strengths was its handling of multimedia, and many multimedia systems like Macromedia Authorware are based on concepts originating in HyperCard.

Sources and References

 * Danny Goodman, The Complete HyperCard Handbook (Bantam Books, 1987)