HyperCard 2.41 Update
Apple has released a 2.41 updater. This update can be used on HyperCard 2.3-2.4, and fixes a problem on large HFS+ volumes as well as removing the much-protested "desktop spam" behavior with QuickTime 3.0.
Script of the Month
A place for a few of my favorite HyperTalk toys, listed for your amusement and edification.
New: Updated HyperTalk QuickRef, with new version 2.4 additions including the new QuickTime movie elements.
These days, hypertext and hypermedia are commonplace concepts. Engines to create custom software are a dime a dozen. And everyone's doing visual design of the user interface. It all seems almost ordinary. Surely these ideas must have been around forever.
But they haven't been. There was a program that first brought usable hypermedia to personal computers, that introduced a development environment that was of interest to skilled programmers but could also be used by novices (teachers, students, insurance brokers, firefighters, booksellers...), that extended the promise of "the computer for the rest of us" to include "...and which the rest of us can program". Before the NeXT Interface Builder, before Visual Basic, before the World Wide Web...there was HyperCard.
My HyperCard books
HyperTalk 2.2: The Book
Tricks of the HyperTalk Masters
My first sight of HyperCard, back in late 1987, didn't impress me that much. All I saw was a few of the sample stacks included with the program. I was under the impression for a while that those sample stacks were HyperCard.
I looked into it again a few months later. And this time, I figured out that you could write scripts; everything I saw on the screen could be altered, customized, brought to life.
The development environment fosters a gentle learning curve. A HyperCard data file, called a stack, consists of any number of cards, or screens. Cards contain buttons of several kinds, text fields, and color or black-and-white graphics; any of these objects can be shared between several cards to make a background with common elements. To create a stack, a developer lays out objects (either card-specific or shared by all the cards of a background), then writes scripts that respond to user actions such as opening a stack, going to a card, clicking or double-clicking, or typing.
This open structure lends itself to almost any programming purpose. People use HyperCard to make database front ends, training programs, "live" user-interface prototypes, quick-and-dirty text utilities, and successful mass-market programs such as the game Myst. HyperCard has been used to create completely new forms of computer art: the one-man tour-de-force If Monks Had Macs might never have existed without it.
HyperCard's very versatility made it difficult for the marketing structure at Apple to handle. Was it a visual environment for developers? But non-professionals could also create useful programs with it. Was it a database engine? A prototyping tool? An introduction to object-oriented programming? The new is always confusing, and no clear message emerged.
This lack of clarity meant Apple failed to support the product - in the market and in the developer community - as it should have. Almost from the beginning, developers and enthusiasts, rather than Apple Computer, have been the ones to evangelize HyperCard, to bring it into new settings, and to provide technical (and moral) support for each other. Apple has always harbored its share of experts who have contributed generously to the HyperCard community, but Apple as an enterprise never seemed to share their passion. As HyperCard was shuffled to Claris, back to Apple, and since then from group to group within Apple, HyperCard's developers (and users) had to put up with more in the way of corporate politics than any sane human being should have to.
A few useful links for HyperCard scripters.
Apple seems at last to have begun to recognize the potential of HyperCard, and a new major upgrade is in development. The new HyperCard will serve as the control language for QuickTime; that means for developers that, among other things, any HyperCard stack can be run standalone on any platform for which QuickTime is implemented, including the Macintosh and Windows machines. QuickTime media types (including Internet types) will be incorporable into any HyperCard stack. You'll be able to embed Internet data and URLs right into a stack.
"What we would like to do is to rebuild HyperCard as you know it on an open, full-color, multi-platform architecture that's not only well suited for the purpose but is also cooler than Belgian beer. And you can quote me on it." - Kevin Calhoun, HyperCard technical manager
Version number fix for 2.4 standalones
A bug in HyperCard 2.4-created standalones may cause problems if the version number is set too low. A simple fix is to open the standalone with ResEdit or another resource editor, find the 'HVRS' resource ID 1, and use Get Info to change its ID to 128.
My favorite thing about HyperCard has always been its scripting language, HyperTalk. HyperTalk is unusual among complete programming languages in that it's typeless - data is cast automagically when necessary, letting you do things like
ask "What number do you want to square?"
without worrying about the fact that the user's answer is a string and the operand required for the squaring is a number. Its string handling is the most flexible I've seen - the language contains primitives for directly addressing any character, word, logical line, or chunk delimited by any character you choose. The natural-language syntax - "
put it * it into field "Answer"
wait until the mouse is down", "
if it is not a number then beep", "
get word 3 to 10 of line 8 of theAnswer", and "
go to the last card of this stack" are all legal HyperTalk expressions - makes it a joy to read and easy to maintain. If only I could write everything in it.
An Ultimate HyperCard Webring site: