name = HyperCard
caption = HyperCard Screenshot
Apple Inc.(formerly Apple Computer, Inc.)
latest_release_version = 2.4.1
latest_release_date = 1998
System Software 6, System 7, Mac OS 8, Mac OS 9(can still be used in Mac OS X's Classic mode (PowerPC Macs only) or via an emulator)
license = Proprietary
website = N/A
HyperCard was an
application programcreated by Bill Atkinsonfor Apple Computer, Inc. that was among the first successful hypermediasystems before the World Wide Web. It combined databasecapabilities with a graphical, flexible, user-modifiable interface. HyperCard also featured HyperTalk, written by Dan Winkler, a powerful and easy-to-learn programming languagefor manipulating data and the user interface. HyperCard users often employed it as a programming system for Rapid Application Developmentof different kinds of applications, database and otherwise.
HyperCard was originally released with
System Software 6in 1987 and was finally withdrawn from sale in March 2004, although by then it had not been updated for many years. HyperCard runs natively only in Mac OSversions 9 or earlier, but it can still be used in Mac OS X's Classic mode on non-Intel based machines (G5 and earlier).
Hypercard has been described as a "software erector set". It integrates a software development environment with a run-time environment in a simple, easily accessible way. The tools required to write an application, principally the creation and configuration of screen objects like buttons, fields and menus, are part and parcel with the ability to add programmed functionality to those objects. When designing and programming an application one can contemplate both structure and capability within a single well defined arena. That one could personally design and implement a custom application uniquely suited to ones own needs revolutionized the very concept of what software was. Instead of trying to force a particular task onto an Excel spreadsheet for example, a custom solution could be authored, modified and updated as needed, without functional compromise and with a personalized interface in a very short time. "Empowerment" became a catchword as this possibility was embraced by the Macintosh community, as was the phrase "programming for the rest of us", that is, anyone, in fact, not just professional programmers.
HyperCard is based on the concept of a "stack" of virtual "cards". Cards hold data, just as they would in a
rolodex. The layout engine was similar in concept to a "form" as used in most Rapid Application Development (RAD) environments (such as Borland Delphior Visual Basic). A special "home" stack was available as a launcher, a repository for shared scripts, and a facility for setting preferences.
HyperCard is not only a database system. The layout of each card could be unique, just as one can write additional non-standard information on a Rolodex card. A special background layer contained elements that appeared on all cards of that stack or on all cards grouped under a certain background. Backgrounds could include pictures (its original purpose, "background picture"), in addition to the objects also available for each card: picture fields; buttons; (static) text; (editable) text fields; and other common
GUIelements. Each card then could contain different data in the text or picture fields, as in a database.
For instance, an address book could be built by adding to the background a few text fields to hold the name and address. Once completed, the user adds a new card (by typing Command-N or under software control) and types into the fields. The background could be modified at any time, allowing changes to be made easily. Basic operations such as search, add, and delete were built-in, allowing simple databases to be set up and used by anyone able to use the
The Rolodex paradigm does not preclude the creation of standard looking applications. Arbitrary functionality could be programmed into a single card, making it resemble a traditional single-screen application. Additional cards could be linked similarly to the way that additional screens are linked in ordinary programs. Full control of the menu bar and support of virtually all native objects and controls allowed the creation of professional looking software.
findcommand would quickly navigate to cards containing text using a patented "hintBits" algorithm. This could be made more selective with modifications such as
find "Bob" in card field "hello". Similarly, it had a "sort" command that allowed evaluating entire expressions to determine sorting order.
The programming language within HyperCard is called "
HyperTalk". In HyperTalk, objects exist in a message path hierarchy and respond to messages generated by either the user or the system itself. HyperTalk objects are predetermined by the HyperCard environment, although others can be added by the use of externals (see below). HyperTalk is verbose, hence its ease of use and readability.
Each HyperTalk object class contains a number of "properties". For example, buttons are a type of object. For example, to determine whether a checkbox style of button is, in fact, checked, a script can simply call the "checkmark" property, which would return either true or false. In a similar way, objects can be analyzed via functions. For example, the number of lines in text field (another type of object) can be determined by a variant of the "number" function, called simply as "the number of lines of field 'fieldName'". This is very useful when performing a particular action on each separate line of the field. The script that implements the action need only call the function to know the number of lines it must deal with. Should the field data change, the already coded function call will still be accurate.
HyperTalk is a weakly typed language. All variables, and in fact all values of any kind, are stored as typeless character strings handled by the interpreter as numbers or text based purely on context. This has a cost in speed but makes it far easier to write (and to read) code. Variables need not be declared, but rather are created on the fly as they are required. For example, a variable named "total" can be created simply by writing: "put 15 into total". Then the expression "add 3 to total" would result in the string "18" being stored in that variable. Taking this further, a powerful and intuitive structure known as "chunking" allows precise manipulation of text and number strings. It is possible, for example, to have the second character of the value "123" (the 2) added to the last character of the value "12345", yielding "12347". For another example, word 3 of "life is cruel" (cruel) can be appended after the first word of "Hello world", yielding "Hello cruel world". It would then be possible to put "Goodbye" into (thus replacing) the first word of that string, yielding "Goodbye cruel world". The abovementioned terms "first", "last", "after", and "into", among many others, offer excellent control over the ability to crunch and parse text, down to the character level.
HyperTalk supports most standard programming structures such as "if-then" and "repeat". The "if-then" is in such a general form that it even allows "case" structured code.
HyperTalk scripting allowed the system to be easily modified and extended. Unlike many scripting languages, HyperTalk proved to be accessible by a wide range of users, partly because scripts were more or less readable as English. For instance,
put the first word of the third line of field "hello" into field "goodbye"did exactly that. Referring to objects and the items on cards or backgrounds was 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 fashion — including the stack itself. All objects could be named or renamed, as in the example above. In addition, each object (including the stack itself) had unique numeric IDs which remained unchanged throughout the life of the object.
Adding scripts was also easy. The user simply "command-option-clicked" (or they could click the "Script" button in the item's property dialog) on any element in the stack, and an editor would pop up. The script could then be edited, saved, and used immediately. In addition, HyperCard contained the "Message Box", an interactive command-line in a floating window that could execute single lines of script. This also included the "find" command, so it doubled as a search dialog. HyperCard 2.0 added a
debugger, as well.
HyperTalk was sufficiently popular that one of the main uses of HyperCard was not as a database, but as a programming tool that empowered ordinary computer users. Thousands of "stacks" were written and distributed as "stackware" in the few years when HyperCard was widely available. Known as programming "for the rest of us", that is, for non-professionals, many thousands of personal applications were created by individuals with a need for personal software solutions. Some are still in use today. Many hardware and software vendors provided their tutorials as HyperCard stacks, since the application was bundled with all Macs.
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 code libraries packaged in a
resource forkthat integrated into either the system generally or the HyperTalk language specifically; this was an early example of the pluginconcept. 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 ecosystem of vendors offered thousands of these externals for everything from HyperTalk compilers to graphing systems, database access, internet connectivity, and animation. Oracle offered an XCMD that allowed HyperCard to directly query Oracle databases on any platform. This was later superseded by Oracle's Oracle Cardproduct.
Externals allowed access to the Macintosh Toolbox, which contained many lower level commands and functions not native to HyperTalk, such as control of the serial and ADB ports.
set user level to 5would enable you to edit HyperCard documents and give you full user privileges.Fact|date=October 2008
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, educational teaching aids, and the first (off-line)
Due to its rapid application design facilities, HyperCard was also sometimes 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 CD-ROM, 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. Renault, the French auto manufacturer, used it to control their inventory system. Activision, which was until that time primarily a game company, saw HyperCard as an entry point into the business market. Changing their name to Mediagenic, they published several major HyperCard based applications, most notably Danny Goodman's Focal Point, a personal information manager, and Reports For HyperCard, a program by Nine To Five Software that allowed users to treat HyperCard as a full-fledged database system with robust information viewing and printing features.
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 was even a Windows version of this plugin allowing computers other than Macintoshes to use the plugin.
HyperCard was created by
Bill Atkinson. Work for it began in March 1985 under the name of WildCard (hence the creator codeof 'WILD'). In 1986 Dan Winkler began work on HyperTalkand the name was changed to HyperCard for trademarkreasons. It was 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. Apple timed its release to coincide with the MacWorld Conference & Expoin Boston, Massachusettsto guarantee maximum publicity. HyperCard was a huge hit almost instantly. Many 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 demonstrating it had a wide variety of users. However, it was also free, which made it difficult to justify dedicating engineering resources to improving it.
It was not lost on Apple or its mainstream developers that the power Hypercard gave to people could cut into the sales of ordinary shrink wrapped products.Fact|date=March 2008
In late 1989,
Kevin Calhoun, then a HyperCard engineer at Apple, led an effort to upgrade the program. This resulted in 1990's HyperCard 2.0. The new version included an on-the-fly compilerthat greatly increased performance of computationally intensive code, a new debuggerand a number of improvements to the underlying HyperTalk language.
At the same time HyperCard 2.0 was being developed, a separate group within Apple developed and in 1991 released "HyperCard IIGS", a version of HyperCard for the
Apple IIGSsystem. Aimed mainly at the education market, HyperCard IIGS had roughly the same feature set as the 1.x versions of Macintosh HyperCard, while adding support for the color graphics capabilities of the IIGS. Although "stacks" (HyperCard program documents) were not binary-compatible, a translator program (itself a HyperCard stack) allowed stacks to be moved from one platform to the other.
Then, Apple decided that most of its application software packages, including HyperCard, would be the property of a wholly owned subsidiary called
Claris. Many of the HyperCard developers chose to stay at Apple rather than move to Claris, causing the development team to be split. Claris, in the business of selling software for a profit, attempted to create a business model where HyperCard could also generate revenues. They wrote a new "viewer only" version, the HyperCard Player which Apple distributed with the Macintosh operating system, while Claris sold the "full" version commercially. Many users were upset that they had to pay to use software that had traditionally been supplied free and which many considered a basic part of the Mac.
Despite the new revenue stream, Claris did little to market HyperCard. Development continued with minor upgrades, as well as the first failed attempt to create a third generation of HyperCard. During this period, HyperCard began losing market share. Without a number of important, basic features, HyperCard authors began moving to systems such as
SuperCardand Macromedia Authorware. Nevertheless 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.
Apple eventually folded Claris back into the parent company, returning HyperCard to Apple's core engineering group. In 1992, Apple released the eagerly anticipated upgrade of HyperCard 2.2 and made many HyperCard enthusiasts happy by including licensed versions of Color Tools and Addmotion II, adding support for color pictures and animations. However, these tools were limited and often cumbersome to use; HyperCard still continued to lack true, internal color support.
Several attempts were made to restart HyperCard development once it returned to Apple. Because of the product's widespread use as a multimedia authoring tool it was rolled into the
QuickTimegroup. A new effort to allow HyperCard to create QuickTime interactive (QTi) movies started, once again under the direction of Kevin Calhoun. QTi extended QuickTime's core multimedia playback features to provide true interactive facilities and a low-level programming language based on 68000 assembly language. The resulting HyperCard 3.0 was first presented in 1996 when an alpha-quality version was shown to developers at Apple's annual Worldwide Developers Conference[cite journal |author=Colby, Clifford |month=September |year=1996 |url=http://folkstream.com/muse/teachhc/hc3.html |title=HyperCard's new deal: QuickTime authoring |journal=MacWeek] . Under the leadership of Dan Crowdevelopment continued through the late 1990s, with public demos showing many popular features such as color support, internet connectivity, and the ability to play HyperCard stacks (which were now special QuickTime movies) in a web browser. Development of HyperCard 3.0 stalled when the QuickTime team was focused away from development of QuickTime interactive to the streaming features of QuickTime 4.0. Finally in 2000 the HyperCard engineering team was reassigned to other tasks after Steve Jobsdecided to abandon the product. Calhoun and Crow both left Apple shortly after in 2001.
In the years that followed, the program saw no additional support from Apple. Apple finally ceased selling HyperCard in March 2004, and the website www.apple.com/hypercard redirects to this Wikipedia article.
HyperCard is one of the first products that made use of and popularized the
hypertextconcept to a large popular base of users. Fact|date=June 2008
Jakob Nielsen has pointed out that HyperCard was really only a
hypermediaprogram since its links started from regions on a card, not text objects; actual HTML-style text hyperlinks were possible in later versions, but were awkward to implement and seldom used. Bill Atkinson later lamented that if he had only realized the power of network-oriented stacks, instead of focusing on local stacks on a single machine, HyperCard could have become the first Web browser. [http://www.wired.com/gadgets/mac/commentary/cultofmac/2002/08/54370 HyperCard: What Could Have Been] ]
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 one's own hard disk. Interestingly, HyperCard had a significant impact on the web as it inspired the creation of both
The pointing-finger cursor used for navigating stacks later found its way into the first web browsers, as the hyperlink cursor Fact|date=June 2008.
Other companies offered their own versions. Three products are currently available which offer HyperCard-like functionality:
* Runtime Revolution's Revolution expands greatly on HyperCard's feature set and offers color and a GUI toolkit which can be deployed on many popular platforms (Classic Macintosh system software, Mac OS X, Windows 98 through Vista, and Linux/Unix).
SuperCardis similar to HyperCard, but with many additional features such as: full color support, pixel and vector graphics, a full GUI toolkit, and support for many modern Mac OS X features. It runs only on Macs.
TileStackis an attempt to create a web based version of HyperCard that is compatible with the original HyperCard files. It is currently in Beta.
Past products included:
*Plus was a product similar to HyperCard for Windows and Macintosh.
*Asymetrix's Windows application
ToolBookresembled HyperCard, and included 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 4GLfor database access.
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
AppleScripton a language similar to HyperTalk; it was often used for DTP workflow automationneeds. In the 1990s FaceSpanprovided a third-party graphical interface, and continues to do so today. AppleScript also has a native graphical programming front-end called Automator, released with Mac OS X10.4, codenamed Tiger, in April 2005. One of HyperCard's strengths was its handling of multimedia, and many multimedia systems like Macromedia Authorwareand Macromedia Directorare based on concepts originating in HyperCard Fact|date=July 2008. AppWare, originally known as Serius Developer, is sometimes seen to be similar to HyperCard, as they were both rapid application developmentsystem. AppWare was sold in the early 90s and worked on both Windows and Mac systems.
On a less positive note, as HyperCard executed scripts in stacks immediately on opening it was also one of the first applications susceptible to macro viruses. The Merryxmas virus was discovered in 1993 by Ken Dunham, two years before the "Concept" virus. [ [http://pan.uqam.ca/pan/pmwiki.php/HyperCard/FAQ048 Pantechnicon Wiki] ] There were very few viruses based on HyperCard, and their overall impact was minimal.
Mystcomputer game franchise, initially released as a HyperCard stack, still lives on, making HyperCard a facilitating technology for starting one of the best-selling computer games of all time.
Ward Cunningham, the inventor of Wikis, the wiki concept can be traced back to a HyperCard stack he wrote in the late 1980s, making HyperCard one of the grandparents of the Wiki idea. [ [http://c2.com/cgi/wiki?WikiHistory Wiki History] ] [ [http://en.wikinews.org/wiki/Interview:_Wikinewsie_Kim_Bruning_discusses_Wikimania Interview: Wikinewsie Kim Bruning discusses Wikimania] ] [ [http://video.google.com/videoplay?docid=-7739076742312910146 An Evening With Wiki Inventor Ward Cunningham in Conversation with John Gage ] ]
NoteCards: from Xerox PARC, a similar system which pre-dates HyperCard
* Revolution: Rapid application development environment that can be deployed on many popular platforms
mTropolis: multimedia authoring using a drag-and-drop programming system
* Automator: an easy-to-use script authoring environment
Stagecast Creator: one of a number of similar "if you see this, do this" programming systems
* Morphic: a visual UI building system
Apple Media Tool
ViolaWWW: early web browser initially based upon HyperCard
Danny Goodman, "The Complete HyperCard Handbook" (Bantam Books, 1987), ISBN 0-9665514-2-7
* [http://www.archive.org/details/CC501_hypercard Computer Chronicles] 1987 interview with Bill Atkinson and Dan Winkler demoing Hypercard (from Archive.org)
* [http://support.runrev.com/hypercard.php Revolution]
* [http://pan.uqam.ca/pan/pmwiki.php/HyperCard/HomePage/ HyperCard Pantechnicon]
* [http://members.aol.com/hcheaven/links/links.html A list of HyperCard links]
* [http://scripteur.com/cormoran/as/osa/appl/hypercard/dico/objets/application.html HyperCard and AppleScript] : in French
* [http://groups.google.com/group/comp.sys.mac.hypercard comp.sys.mac.hypercard] The original Usenet group now enshrined as a Google Group. Still somewhat active.
* [http://www.creysoft.com/xtalk Open Source xTalk Interpreter Archive] : An attempt to organize open source HyperCard/HyperTalk clones
* [http://developers.slashdot.org/developers/08/06/07/196242.shtml Hypercard comes back from the dead to the web]
* [http://www.tigabyte.com/ HyperNext Studio] : a freeware modern HyperCard-like software creation system for beginners that runs on Mac OS X, OS 9 and Windows XP/Vista
HyperStudio: a HyperCard-like product marketed for and popular with education users. Now is brought back to life by Software MacKiev. [http://www.hyperstudio.com/]
* [http://pythoncard.sourceforge.net/ PythonCard] : a modern, Open Source GUI development system inspired by but not copying HyperCard and running on the Python scripting language
* [http://www.runrev.com/ Revolution] : a powerful development environment based on [http://www.metacard.com/ MetaCard] (which they acquired); imports some HyperCard stacks, supports Windows, Mac, and Linux
* [http://www.supercard.us/ SuperCard] : one of the first HyperCard clones, which still provides excellent support for current Mac features and Multimedia; imports some HyperCard stacks
* [http://www.toolbook.com/ ToolBook] : a versatile but Windows-only HyperCard clone, today more geared towards CBT (computer-based training).
FreeCard: written in Java
* [http://nsbasic.com/newton/info/newtcard/ NewtCard] : HyperCard for the Newton. Released by NS BASIC Corporation in 1997, it features work by
George Henne, Marcus Dardenand Steve Wozniak. Uses Basic as a scripting language. Look and feel very much HyperCard - uses Apple's icons under license.
* [http://www.thoughtful.com/hypersense/index.html HyperSense] : another HyperCard clone, originally for
NeXTbut now available on Mac OS Xas well as part of [http://www.redstonesoftware.com Redstone's Eggplant]
Oracle Media Objects: a cross-platform (Mac/Windows) clone, discontinued in 1998
* [http://www.megaiq.com/hyperpad/ HyperPAD] : a clone for
Wikimedia Foundation. 2010.