https://stonetools.ghost.io/hypercard-mac/
Stone Tools
* About
* Mastodon
* BlueSky
Sign in Subscribe
Macintosh
HyperCard on the Macintosh
How do we approach the challenge of helping non-programmers build
software? Do we throw up our hands at today's complexity and say,
"Just let an AI do it." Or, do we make tools so *compelling* a novice
can build something interesting almost by accident. We had that once.
Let's see what was lost.
Christopher Drum
Christopher Drum
13 Dec 2025 -- 33 min read
Throughout the Computer Chronicles's 19 years on-air, various
operating systems had full episodes devoted to them, like Macintosh
System 7, UNIX, and Windows 95. Only one piece of consumer software
had an entire episode devoted to it. You can see and hear Stewart
Chiefet's genuine excitement watching Bill Atkinson show it off.
A television host in a gray suit smiles broadly mid-conversation,
seated at a desk on a wood-paneled studio set, clearly amused or
impressed by what he's watching or hearing off-camera.Chiefet,
enjoying the heck out of Bill Atkinson's HyperCard demonstration.
Later, Chiefet did a second full episode on it. HyperCard was a "big
deal."
Big, new things are scary. In a scathing, paranoid, accidentally
prescient article for Compute Magazine's April 1988 issue, author
Sheldon Leemon wrote of HyperCard, "But if this (hypertext) trend
continues, we may soon see things like interactive household
appliances. Imagine a toaster that selects bread darkness based on
your mood or how well you slept the night before. We should all
remember that HyperCard and hypertext both start with the word hype.
And when it comes to hype, my advice is 'just say no.'"
Well, you can't make Leemonade without squeezing a few Leemons, and
this Leemon was duly squeezed.
"Do we really want to give hypertext to young school children, who
already have plenty of distractions? We really don't want him to
click on the section where the Chinese invent gunpowder and end up in
a chemistry lesson on how to create fireworks in the basement." (
obligatory ironic link)
Leemon-heads were in the minority, obviously. Steve Wozniak called
Atkinson's brainchild "the best program ever written." So did David
Dunham. There was a whole magazine devoted to it. Douglas Adams said,
"(HyperCard) has completely transformed my working life." The impact
it made on the world is felt even today.
Cyan started life as a HyperCard stack developer and continues to
make games.
Wikipedia was born from early experiments in HyperCard.
The early web was strongly influenced by HyperCard's (HyperTalk)
vision.
Cory Doctorow's first programming job was in HyperCard.
Bret Victor built "HyperCard in the World," which evolved into
Dynamicland.
With a pedigree like the above, it is no spoiler to say that
HyperCard is good. But I must remove the spectacles of nostalgia and
evaluate it fairly. A lot has happened since its rise and fall, both
technologically and culturally. Can HyperCard still deliver in a
vibe-coded TypeScript world?
---------------------------------------------------------------------
Historical Record
A vertically arranged timeline tracing the conceptual origins,
development, and eventual discontinuation of Apple's HyperCard. The
timeline begins in 1945 with Vannevar Bush's essay "As We May Think,"
which describes the hypothetical Memex machine--a "memory index"
allowing information to be accessed through associative links that
mimic human thought. In 1960, Ted Nelson conceives Project Xanadu, an
early hypertext system intended to break free from the constraints of
linear pages. Xanadu is noted as ambitious but never fully realized,
with goals including visible source links and micro-payments for
reused content. In 1968, Doug Engelbart presents the "Mother of All
Demos," introducing the mouse, interactive computing, and clickable
hypertext links that allow navigation between related documents in a
shared workspace. The timeline then moves to 1987 with the release of
Apple HyperCard 1.0. Conceived by Bill Atkinson as a software
"erector set," HyperCard is demonstrated at Macworld Expo and shipped
free with new Macintosh systems, priced separately for others. In
1990, HyperCard 2.0 is released under Apple's Claris subsidiary. It
adds JIT compilation and a debugger, improving performance, but
Claris reduces promotion and begins shifting focus toward SuperCard
and Macromedia tools. In 1991, HyperCard IIGS is released for the
Apple IIGS education market. While feature-equivalent to HyperCard
1.x, it supports color graphics via extensions and allows stack
transfer between Macintosh and IIGS systems using a translator stack.
In 1992, HyperCard 2.2 returns to Apple after Claris is folded back
in. This version adds AppleScript support and bundled extensions that
introduce limited color and animation capabilities. In 1998,
HyperCard 2.4.1 is released as the final version. Development
effectively halts following Steve Jobs' return to Apple, leaving
HyperCard in a maintained but stagnant state. The timeline concludes
in 2004, when HyperCard is officially withdrawn from sale. The legacy
continues through successors such as SuperCard and later LiveCode,
which carry forward the idea of approachable, card-based software
creation.
---------------------------------------------------------------------
Testing Rig
* Mini vMac v36.04 for x64 on Windows 11
+ Running at 4x speed
+ Magnification at 2x
+ Macintosh System 7.5.5 (last version Mini vMac supports)
o Adobe Type Manager v3.8.1
o StickyClick v1.2
o AppleScript additions
+ 8MB virtual RAM (Mini vMac default)
* HyperCard 2.2 w/scripting additions
Version 2.2 of HyperCard is significant for a few notable reasons:
first, it adds AppleScript support, then it adds a script debugger,
and finally it marks the return of HyperCard from Claris back into
Apple's fold.
The "About This Macintosh" system information window showing System
Software 7.5.5. It lists total memory as 8,192K, with System Software
using 2,582K and the largest unused memory block shown as 5,585K.
Remember when the Macintosh operating system fit into 2.5MB of RAM?
I'd forgotten!
---------------------------------------------------------------------
Let's Get to Work
Reviewing and evaluating HyperCard is a bit like trying to review and
evaluate "The Internet." And MacPaint. And a full application
development suite. A sane man would skedaddle upon seeing the 1,000
(!) pages of The Complete HyperCard 2.0 Handbook, 3rd Edition by
Danny Goodman, but not this man. Make of that what you will.
It's difficult to choose a specific task for this post. I'll build
the sample project from the Handbook, but let's note what the book
says about its own project, "In a sense, the exercise we'll be going
through in this chapter is artificial, because it implies not only
that we had a very clear vision of what the final stack would look
like, but that we pursued that vision unswervingly. In reality,
nothing could be further from the truth."
I have no such clear vision. It's kind of like staring a blank sheet
of paper and asking myself, "What should I make?" I could fold it
into origami, use it as the canvas for a watercolor painting, or
stick it into a Coleco ADAM SmartWriter and type a poem onto it. Art
needs boundaries, and I don't yet know HyperCard's.
So, I'll just start at the beginning, launch it, and see where it
takes me.
A 1980s television commercial scene showing a teenaged young man
using a home computer at a desk while a young woman looks on
enthusiastically. A large external printer dominates the foreground,
actively printing. She's impressed with his computing skills!Lori
Loughlin (yes that Lori Loughin) is excited for the ADAM's printout.
Conspicously not demonstrated, how LOUD that impact printer is.
Launching HyperCard takes me to the Home "stack," where a "stack" is
a group of related "cards" and a card is data supercharged with
interaction. In beginner's terms, it's fair to think of a stack as an
application, though it requires HyperCard to run. (HyperCard can
build stand-alone apps, but that's not a first-time user's
experience).
Atkinson does mean to evoke the literal image of a stack of 3x5 index
cards, each holding information and linked by relationships you
define. Buttons provide the means to act on a card, stepping through
them in order, finding related cards by keyword, searching card data,
or triggering animations. All of this is possible, trivially so.
At first blush that doesn't sound particularly interesting, but MYST
was built in it, should you have any doubt it punches above its
weight class.
Today, I can describe a stack as being "like a web site" and each
card as being "like a page of that site," an intellectual shorthand
which didn't exist during HyperCard's heyday. To use another modern
shorthand, "Home" is analogous to a smartphone's Home screen, almost
suspiciously so. You can even customize it by adding or deleting
stacks of personal interest to make it your own.
0:00
/0:36
[0 ] 1x [100 ]
(contains intense flashing strobe effects) Beyond Cyberpunk pushed
HyperCard boundaries in its own way. A web version is available,
minus most of the original charm.
Let this serve as an example
Walking through the Home card, the included stacks provide concrete
examples illustrating the power of HyperCard's development tools. Two
notable features are present, though they are introduced so subtly it
would be easy to overlook them.
The default HyperCard Home card showing a neatly arranged grid of
built-in stacks and tools, presented in a monochrome Macintosh window
with the heading "Welcome to HyperCard" at the top.Quick shout-out to
bitmap Bookman Light ("Welcome to HyperCard"), a beautifully arranged
set of pixels.
The first is the database functionality the program gives you for
free. Open the Appointments or Addresses stacks, enter some
information, and it will be available on next launch as searchable
data. It's stored as a flat-file, nothing fancy, and it's easier than
Superbase, which was already pretty easy.
The second is that after entering new data into a stack, you don't
have to save; HyperCard saves automatically. It's happens so
transparently it almost tricks you into thinking all apps behave this
way, but no, Atkinson specifically hated the concept of saving. He
thought that if you type data into your computer and yank the power
plug, your data should be as close to perfect as possible.
This "your data is safe" behavior is inherent to every stack you use
or build. You don't have to opt-in. You don't have to set a flag. You
don't have to initialize a container. You don't need to spin up a
database server. You don't even have to worry about how to transfer
the data to another system; the data is all stored within the data
resource of the stack itself. Just copy the stack to another computer
and be assured your data comes with you.
There is one downside to this behavior as a typical Macintosh
end-user. If you want to tinker around with a stack, take it apart,
and see how its built, you must make sure you are working with a copy
of that stack! As saving happens automatically, it can be easy to
forget that your changes are permanent, "I didn't hit save! What
happened to my stack?"
Thus, an original stack risks getting junked up or even irreparably
broken due to your experiments. "Save your changes" behavior is
taught to us by every other Macintosh program, but HyperCard bucked
the careful conditioning Mac users had learned over the years.
Consumption tax
At its most basic level, without even wanting to make one's own
stacks, HyperCard offers quite a lot. Built-in stacks give the user
an address book, a phone directory, an appointment calendar, a simple
graph maker, and the ability to run (and inspect!) the thousands of
stacks created by others.
The bundled stacks are easy to use, but far from being "robust"
utilities. That said, they're prettier and easier to user than a lot
of the type-in programs from the previous 8-bit era and you're free
to modify them to suit your needs, even just aesthetically. Free
stacks were available on BBS systems, bundled with books, or on cover
disks for magazines.
HyperCard offered a first glimpse at something slantingly adjacent to
the early world wide web. Archive.org has thousands of stacks you can
look through to get a sense of the breadth of the community. Learn
about naturalism, read Hitchhiker's Guide to the Galaxy (official
release!), or practice your German. There are TWO different stacks
devoted to killing the purple children's dinosaur, Barney. Zines,
expanded versions of the bundled stacks, games, and other esoterica
was available to anyone interested in learning more about clams and
clam shell art. I am being quite sincere when I say, "What's not to
love?"
A monochrome HyperCard demo screen titled "Clam & Craft Demo,"
showing a large illustrated cartoon clam character at the top left
and a title reading "The First Ever Clam & Craft Cookbook." The
screen includes navigation buttons, a scrolling text field describing
the demo, and decorative typography advertising version information
and licensed cartoon characters.I defy you to show me a better way to
disseminate information on making dolls out of the discarded clam
shells from last night's dinner.
Card shark
Content consumption is fine and dandy, but it is on content creation
which HyperCard focuses the bulk of its energies. With so many stacks
expressing so many ideas, and reading how many of those were made by
average people with no programming experience, the urge to join that
community is overwhelming.
Cards are split into two conceptual domains: the background and the
foreground. In modern presentation software like PowerPoint or Google
Slides, these are equivalent to the template theme (the stuff that
tends to remain static) and the slide proper (the per-slide dynamic
attributes).
The layers of each domain start with a graphic layer fixed to the
"back." Every object added to the domain, like a button, is placed on
its own numbered layer above that graphic layer, and those can be
reordered.
It's simple enough to get one's mind around, but the tools don't do a
particularly good job of helping the user visualize the current order
of a card's elements. Each element must be individually inspected to
learn where it lives relative to other layers (objects). An
"Inspector" panel would be lovely.
Designs on greatness
A HyperCard Tour screen titled "Elements of a Card" showing a sample
card layout. The example includes a zebra illustration on the left,
explanatory text on the right, and arrow-shaped navigation buttons,
with labels indicating text, graphics, and buttons as core card
elements.Imagine if web browsers had shipped day-one with visual
tools for building web pages. It almost feels like an insult to have
had these taken away.
HyperCard has basic and advanced tools for creating the three primary
elements which compose a card: text, graphics, and buttons. These
elements can exist on both background and/or foreground layers as you
wish, keeping in mind that foreground elements get first dibs on
reacting to user actions.
Text appeal
Text is put down as a "field" which can be formatted, typed into,
edited, copy/pasted to & from, and made available to be searched.
That grants instant database superpowers to the stack. Usually a
field holds an amount of text which fits visually on the card, but it
can also be presented as a scrollable sub-window to hold a much
larger block of text for when your ideas are just too dang big for
the fixed card size.
Control over text formatting is more robust than expected. Kerning is
non-existent, but font, size, character styles, alignment, and line
spacing are available. Macintosh bitmap fonts shipped in pre-built
sizes, meaning they were hand-drawn expressly to look their best at
those sizes. Scaling text is allowed, but you may need to swallow
your aesthetic pride. Or draw the text yourself?
A close-up comparison of bitmap text reading "Futura Heavy 14pt and
33pt," showing the same typeface rendered at two sizes, with the
larger text appearing more blocky and unevenly spaced.This copy of
HyperCard came only with 14pt. Scaling to 33pt is OK, but spacing
gets weird and it clearly doesn't take advantage of the extra pixel
definition. Hold those internet comments, Adobe Type Manager is
scheduled for a future post.
Quick on the draw
"Draw the text yourself" is a real option, thanks to the inclusion of
what seems to be a complete implementation of MacPaint 1.x. The tools
you know and love are all here, with selectable brush width, paint/
fill patterns, lasso tool, shapes both filled and open, spray can,
and bitmap fonts (if you don't need that text to be searchable). Yes,
even the fabled eraser which drew such admiration during Atkinson's
first MacPaint public demo is yours. Yesterday's big deal is
HyperCard's "no big deal."
These tools are much more fleshed out than they first appear, as
modifier keys unlock all kinds of helpful variants. Hold down SHIFT
while drawing with the pencil tool to constrain it horizontally or
vertically. Hold down OPTION while using the brush tool to invert its
usage into erasure. And so on.
A HyperCard screen showing a drawing on the background layer being
interactively distorted, with visible selection handles and drawing
tools open along the right side of the screen.I was shocked that
free-form distortions are possible. The texture around the menu bar
indicates I'm modifying the stack's background. Auto-save bit me with
this demo, as this temporary transformation became permanent.
The tool palette itself "tears off" from the menu and is far more
useful in that state. Double-clicking palette icons reveals yet
further tricks: the pencil tool opens "fat bits" mode, the eraser
clears the screen. The Handbook devotes over 80 pages to the drawing
functions. I'll just say that if you can think it, you can draw it.
Remember two gotchas: there's only one level of undo, and all
freehand drawing happens in a single layer. The pixels you put down
overwrite the pixels that are there, period.
The inclusion of a full paint program makes it really fun to have an
idea, sketch it out, see how it looks, try it, and seamlessly move
back and forth between art and design tools (and coding tools). The
ease of switching contexts feels natural and literal sketches
instantly become interactive prototypes. Or final art, if you like!
Who am I to judge?
A HyperCard card design in progress, showing a title header, a
sketched placeholder image area on the left, a scrolling text field
on the right, and sloppily hand-sketched navigation arrows at the
bottom.Creation is birth and birth is messy. (those sketched-in arrow
buttons work, by the way)
It's kind of startling to be given so much freedom in the tools. As
an aside, I took a quick peek at modern no-code editor AirTable and
tried to build a simple address book. Beyond the mandatory signup and
frustration I felt poking around the tools, I wasn't allowed to place
a header graphic without paying a subscription fee. Progress!
Putting a button on it
What is hypermedia without hyperlinks? In HyperCard these are
implemented as buttons, and if you've ever poked around in Javascript
on the web, you already have a good "handle" (wink wink) on how they
work. Like text fields, they have a unique ID, a visual style, and
can trigger scripts. Remember, HyperCard debuted with scripting in
1987 and similar client-side scripting didn't appear in web browsers
until Netscape Navigator 2.0 circa 1995. This was bleeding edge
stuff.
The HyperCard Button Info window displaying settings for a button,
including its name, preview, style options, and controls for linking,
scripting, and visual effects.If you only need a button to transition
the reader to another card, you can wire that up without ever
touching Script..., including even a transitional animation (
Effect...).
Adding an icon to a button is a little weird, thanks to classic
Macintosh "resource forks." All images are stored in this special
container, located within the stack file itself. You can't just throw
a bunch of images into a folder with a stack and access them freely.
Like the lack of multiple undo, this requires a bit of "forget what
you know, visitor from the future."
Knowing icon modification is a pain in the butt, Atkinson helpfully
added an entire icon editor mini-program to HyperCard. Typically you
would have to modify these using ResEdit, a popular, free tool from
Apple which allowed users to visually inspect an application's
resource fork. Here's a 543 page manual all about it. (Were authors
paid by the cubic centimeter back then?)
A HyperCard Icon Editor window showing a pixel grid with a hand-drawn
black-and-white icon resembling a small rock. The icon is named
"stone," with its ID displayed, and preview thumbnails appear to the
side alongside OK and Cancel buttons.Meh, I've drawn worse.
With ResEdit, all sorts of fun things could be tweaked in
applications and even the Finder. You could redraw icons shown during
system level alerts and bomb events, or the fill patterns used to
draw progress bars. You could hide or show menus in an application,
change sound effects, and more. It's dangerous territory, screwing
around with system resources, but it's kind of fun because its
dangerous. Hack the system!
A Macintosh System 7.5 desktop showing the "About Macintosh System
7.5" document open in SimpleText. A custom menu titled "Stone Tools"
is visible in the menu bar, expanded to reveal several silly menu
items unrelated to the document's content. They read, in order, "I'm
in your menus. Hacking your data. Please subscribe! And share! A
hacker news post. wouldn't be asking. too much. would it? Next
issue..." (but next issue is not revealed, even in this alt text! ha
ha!)Weird. My copy of SimpleText contains a shameless plea from a
needy author.
Buttons can be styled in any number of normal, typical, Macintosh-y
ways, but can also be transparent. A transparent button is just a
rectangle defining a "hotspot" on the screen, especially useful on
top of an image which already visually presents itself as
"clickable." To add a hyperlink to text, draw a transparent button on
top of that text, wire it up, and you're done. I imagine you can
already see the problem.
Rewrite the text.
Now you have to manually reposition your button to overlay the new
position of the rewritten text which will last for exactly as long as
the text never gets moved or edited. Sure hope the text didn't split
onto two lines during the move.
HyperCard does have a sneaky way to fake this up programmatically,
but HTML hyperlinks in text would prove to be an unquestionable
improvement. Yet, HyperCard speeds ahead of yet-to-arrive-HTML once
more with image hyperlinks.
Draw or paste in a picture, say a map of Europe, then draw
transparent buttons directly on top of each country. When you're
done, it looks like a normal map, but now has clickable countries,
which could be directed to transition with a wipe to an information
page about the clicked country without ever touching a script.
A code snippet demonstrating an HTML image map, with rectangular and
circular clickable areas defined using tags and coordinate
values.From W3Schools showing how to map out a few areas of a photo.
HyperCard buttons FTW.
HyperCard's links are a little brain-dead to be sure, but they are
also conceptually very, very easy to grasp. What I really enjoy about
the HyperCard approach is how it leverages existing knowledge of GUIs
and extends that a little into something familiar yet significantly
more powerful.
Educating Neanderthals
From the book, "Most viewers of Macintosh applications sense a
certain depth or three-dimensionality to many of the images that
appear on the screen. Even the pull-down menus have an overlapping
feeling when they appear on the screen. Most of the time, this effect
is caused by what is called a drop shadow."
Sound of silence
This may be the biggest gap in HyperCard's tool-set. This is not to
say that sound effects are completely missing, but they are not given
nearly the same thoughtful attention as graphics and scripting are.
For reference, where graphics get 80+ pages in the manual, sound gets
less than 10.
You can only attach sound effects to your cards through scripting.
That can be simple beeps, a sequence of notes in an instrument voice,
or a prerecorded sound file. Given the lavish set of tools for
drawing, I did honestly expect to have at minimum a piano keyboard
for inputting simple compositions.
There were music-making stacks to assist with simple compositions,
shunting off responsibility to third party software. That's not a
crime, per se, but does feel like a noteworthy gap in an otherwise
robust tool-set.
A HyperCard-based music composition interface showing two on-screen
piano keyboards, musical staff notation, and a vertical menu listing
instrument sounds such as banjo, brass, bugle, clarinet, and guitar.
Controls for tempo and voice selection are visible, along with
buttons for playback and editing.HyperComposer, a professional stack
application built entirely in HyperCard, helped simplify HyperCard's
obtuse music composition scripting. Compose a tune visually and out
pops a button with an embedded script, ready to place in your own
stack. Click that button and your composition plays. $70 in 1990
($173 in 2025).
Raison d'etre
In the manual, a no-code tutorial builds a custom Daily To-Do stack,
with hyperlink buttons, searchable text, and custom art in just 30
pages. By the end of the tutorial the user has hand-crafted a useful
application to personal specifications, which can even be shared with
the world, if desired. Not a bad day's work, and I'd be hard-pressed
to duplicate that feat today, to be perfectly honest.
This is a deeply empowering program. Even with just 30 minutes of
work the user has the beginnings of something interesting. The gap
between the user's daily apps and what she's able to build in a
weekend at least feels smaller than the gap between 10 PRINT "Hello
World" and her daily drivers. Success looks achievable.
You can do things with it almost immediately and you can do sort
of sexy things. Graphics, animation, and sound. You get immediate
feedback, so you get to see it or hear it immediately. It just
feels good, it's fun.
- Jan Lewis, 1990 HyperCard episode,
Computer Chronicles
To-do lists, address books, recipe cards, and the like are all well
and good, but every artist eventually feels that urge to push forward
and move beyond. At this point I'm only 1/3 through the book so what
could the other 600 pages possibly have to talk about? The same thing
the rest of this post will: programming.
Wait, wait, come back!
I know, I know, for a lot of people this is a boring, obtuse topic.
Believe me, I understand. A lot of people were put off by programming
until HyperCard made it accessible. In the January 1988 Compute
Magazine (Leemon's rant shows up a few months later), David D.
Thornburg noted, "it proves that the proper design of a language can
open up programming to people who would never think of themselves as
programmers."
This is backed up by firsthand quotes during HyperCard's 25th
anniversary
Happy birthday Hypercard!!! This weekend is the 25th Anniversary
of HyperCard, my first step in the mac programming world!
- Geppy
Coming up with ideas, and easily implementing them with Hypercard
certainly influenced my lifelong interest in programming
- Alex Seville
25 years ago I was so inspired by Bill Atkinson's demo of
HyperCard, I dropped everything and became a Mac programmer
- Andrew Stone
The fact is, if you've poked around in HyperCard at all you've
already been programming, you just didn't know it. We call it
"no-code" now, though I'd argue HyperCard is more like a coding
butler. There is code, you just aren't required to write it for many
common tasks.
0:00
/0:22
[0 ] 1x [100 ]
"No code" only applies to you, the end-user. HyperCard is programming
on your behalf.
on learnProgramming
HyperTalk, Dan Winkler's contribution to the project, is HyperCard's
bespoke scripting language. Patterned after Pascal, a popular
development language for the Macintosh at the time (Photoshop was
originally developed in Pascal), HyperTalk was designed be as easy to
read and write as possible. In so doing, it attempts to tear down the
gates of programming and offer equal access to its community.
At its core, HyperCard is a collection of objects which send and
receive messages. HyperTalk takes an object-oriented approach to
stack development.
There are four types of HyperCard objects: stack, card, button, and
text field. Let's consider the humble button. A button can receive a
message, like "the user clicked the mouse on me." When that occurs,
the button has an opportunity to respond to that message in some
fashion. Maybe it displays a graphic image. Maybe it plays a sound.
Maybe it sends its own message to a different object to do something
else.
Scripts define when and how objects process messages. In HyperCard's
visual editor, scripts are kind of "inside" objects. Double-click a
button to poke at its internal anatomy, with the script being its
"brain."
Even if you don't know how to write a HyperTalk script, you can
probably read it without much difficulty.
on mouseUp
beep
end mouseUp
Baby steps. Pressing a button on your mouse moves that button
physically "down," and lifting your finger allows it to move back
"up." So this script says "when the mouse button is released, beep."
Want three beeps?
beep 3
Forget the beeps, let's go to the next card of this stack.
go to the next card of this stack
No, not this stack, go to the last card of a different stack.
go to the last card of the stack "Stone Tools"
Want to add a visual transition using a special effect and also do
the other stuff?
on mouseUp
visual effect checkerboard very slowly
beep 3
go to the last card of the stack "Stone Tools"
end mouseUp
This compositional approach to development helps build skills at a
natural pace. Add new behaviors as you learn and see the result
immediately. Try new stuff. Tinker. Guess at how to do something. Saw
something neat in another stack? Open it and copy out what you like.
Experiment. Share. Play.
HyperCard wants us to have fun. I am having fun.
Queen's English-ish
HyperTalk provides fast iteration on ideas and allows us to describe
our intent in similar terminology as we have learned over time as
end-users. The perceived distance between "desire" and "action" is
shortened considerably, even if this comes with unexpected gotchas.
The big gotcha can be a bit of a rude awakening, as English-ish
languages tend to be. At first, they seem so simple, but in truth
they are not as flexible as true natural language. Going back to the
earlier examples, can you intuit which of the following will work and
which will error?
on mouseUp
beep 3 times
end mouseUp
on mouseUp
very slowly visual effect checkerboard
go to the next card
end mouseUp
on mouseUp
repeat 3 times
beep
end repeat
end mouseUp
They all seem reasonable, but only the third one works. This is where
the mimicry of English fails the language, because English-ish
suggests to a newcomer a free-form expression of thought which
HyperTalk cannot hope to understand.
Programmers understand that function names and the parameters which
drive them are necessarily rigid and ordered. A more programmer-y
definition of the visual effect command might be
void visualEffect(EffectType type, EffectSpeed speed)
|----------------| |-------------| |---------------|
command type speed
Thus exposed, those familiar with typical coding conventions will
immediately understand that HyperTalk (often) requires a similarly
specific order of parameters to a command. We can't do this.
very slowly visual effect checkerboard
|---------| |-----------| |----------|
speed command type
We must rather adhere to the language's hidden order.
visual effect checkerboard very slowly
|-----------| |----------| |---------|
command type speed
HyperCard comes with help documentation in the form of searchable
stacks, complete with sample scripts to test and borrow from as one
grows accustomed to its almost-English sensibilities. Still, it can
absolutely be frustrating when something that appears to be valid,
like beep 3 times, fails.
Editorial intent
Another knock against HyperTalk's implementation in HyperCard is the
code editor itself. It is so bare-bones I thought I had missed
something when installing the program. It will format your code
indentation, and that's it. At no point will you receive any warning
of any kind of mistake. It happily accepts whatever you write.
Only upon trying to run a script will errors surface. On the one hand
it is fast and easy to write a script and test it. But it is still
requires extra steps which could have been avoided had the editor
behaved a bit more like Script Editor, the AppleScript development
tool bundled with Mac OS. Script Editor watches your back a little
more diligently.
Side-by-side view of AppleScript Script Editor reporting a syntax
error, contrasted with a HyperTalk button script window showing a
similar script without any warning.Script Editor on the left, after I
clicked "Check Syntax," warns me about the usage of "times."
Meanwhile, its HyperCard brother on the right offers no such help,
despite the fact that it can also accept AppleScript.
Despite the not-quite-English frustrations, it is still comfortably
ahead of any other option of the day. The "Hello World" of HyperCard
is a fully functional to-do management application. What a good
feeling that engenders in a Mac user dipping a cautious toe into
development waters. That feeling builds trust in the system and
oneself, and maybe, just maybe, grows a desire to keep learning.
Bag of tricks
The full list of things you can do with HyperTalk is too vast to
cover. Here's a teensy weensy super tiny overview of a much longer
list, just to whet your appetite:
Command Effect
drag from to Simulate mouse movement, even while
[with ] "holding" an option key (for example)
click at [with Simulate mouse clicking
]
doMenu