HYPERCARD! WHAT IS IT?

HYPERCARD! WHAT IS IT? IT'S NOT HYPER, IT'S NOT EVEN A CARD. tweet

YOUTUBE kZcEZDxIA80 Computer Chronicles: HyperCard (1987) - Mac Movies

An introduction to Apple's Hypercard. Guests include Apple Fellow and Hypercard creator Bill Atkinson, Hypercard senior engineer Dan Winkler, author of "The Complete Hypercard Handbook" Danny Goodman, and Robert Stein, Publisher of Voyager Company. Demonstrations include Hypercard 1.0, Complete Car Cost Guide, Focal Point, Laserstacks, and National Gallery of Art. Originally broadcast in 1987. Copyright 1987 Stewart Cheifet Productions."

"Hosted by Stewart Cheifet, Computer Chronicles was the world's most popular television program on personal technology during the height of the personal computer revolution. It was broadcast for twenty years from 1983 - 2002."

.

I learned Object Oriented Programming from HyperCard. Buttons in HyperCard were my first exposure to an event handler. This happened at a time in history (mid 1980s) when mainstream computing was transitioning from text interfaces into graphical interfaces. Having learned programming from BASIC (Apple BASIC and Atari BASIC in particular) I didn't understand how event streams worked, but I could see there was a revolution.

In my early procedural programming with early versions of BASIC, the programs were in control of the interaction with the user. The computer would prompt with a question in text and patiently await the answer. The only choices of what to do next were constrained by the procedures; decided and dictated by the programmer ahead of time.

The Event. Graphical Interfaces hold an event loop behind the scenes. The computer patiently awaits input from the human, but control and choice about what to do next is given to the human, at least within the limits of what is on the display. My card in HyperCard has several buttons: when the human clicks a button it creates an event. The arrow buttons accept the click event and navigate to the next card in the stack or the previous card. (I can go backwards through the stack, not only forwards!) Some buttons lead to an index of all the cards. Some leap to unexpected places. The event handlers, the hidden event loop, bestow decisions and agency to the human, instead of command and control by the programmer.

The Link. With clever use of buttons, cards can be linked in very different ways. There is the other revolution. Hypermedia. Instead of being constrained to linear movements along the procedural tape of a Turing machine, links enable a whole graph of travel. With links we can construct linked lists, but also trees, and graphs, and tangles. Our journey through the program changes from following the railroad tracks, to wandering around the whole landscape.

At the time I met HyperCard, I had no idea of the deep lessons I was learning. I only knew that the procedures I had learned from BASIC had to live inside something named mouseUp for some reason. Objects were the things on the screen that you opened up to add those mouseUp procedures. It was hard to find where I had put my procedures. But at some point I learned how to send an event to something else. It turns out there was also a hidden Chain of Command and anyone along the chain could receive the mouseUp message. Or messages by other names.

In fact, when I learned OO things more formally, later in my life, I was mislead to think of Objects first from the specific feature of using Inheritance to share code. I remain convinced that conventional introductions to Objects fail miserably to hit the most important point about the messages flowing between independent things. HyperCard got me asking questions about events and messages which to a degree inoculated me to the bad ideas of organizing OO around class inheritance. It still took quite a while to connect those dots.