XP-Programmer - KentBeck
showed me HyperCard
which he first got his hands on it after joining Apple. It was called WildCard
then. I was blown away.
We tried to write a pattern browser in it but spent too much time making the stack look like a PatternLanguage
. We put a nice round picture on the first card, just like Alexander's cover.
So, when I got a real copy of HyperCard
at work I wanted to see if I could make it do something real non-rectangular, something real hyper, without getting caught up drawing pictures. I set out to track the flow of ideas at Tektronix.
I wanted to make a stack with three kinds of cards...
- cards for ideas,
- cards for people who hold ideas, and
- cards for projects where people share ideas.
I ended up with a single card that did all jobs. It had three fields: Name, Description and Links. The Links field, which ran down the right side of the card, was the field with a twist.
Stacks were already easy to edit. The fields were automatically WYSIWYG editors. But linking was a pain that involved moving between both cards involved. My Links field abandoned regular stack links and used search on demand instead. Operationally, one would just type links they might follow in the Links field. Each line had a button nearby that would take you to the card if it existed or beep otherwise. If you held the button down, it would relent and go make the card for you.
How did it work? It worked great. Lots of people came by to see HyperCard
work. I'd show them a few graphic things and then pull out my stack. We'd get to poking through people and projects and so on when my guests would invariably say, "that's not exactly right". So we'd fix it right then and there. And we'd add a few missing links and go fix them too. The stack was captivating. We were often late for lunch.
It was AllenWirfsBrock
who gave me my best cards. He filled me in on BillWalker?
and the projects they started and the ideas they had. But, then, that's a story best left to another database.
I used the same cards in a new stack to document Smalltalk classes and their responsibilities. I was working with SteveLyford?
. Here's a sample card for a scope thing called a BezelMenu
. That effort eventually spawned the CrcCard
) which is still formatted to look like the layout of my stack.
I wrote the stack again at WyattSoftware?
, where I used it to record random facts about WyCash
. I put a fair multi-user authoring facility in that one. One trick was to automatically add a link to the RecentChanges
card whenever any other card was changed. I'd often go back to look over what I'd just finished. I'd find the links the stack had inserted. I'd also find an empty Description field begging me to explain what I had done. -- WardCunningham
See more WikiHistory
I can't help noticing the similarity between the above and a quote from RobertPirsig
's book Lila
Yes! Precisely like that! In fact, I fancy writing a little WikiLikeThing
of my own for exactly this purpose. -- EddieEdwards (And I have ... WikiServer)
A bit of historical trivia, BlaisePascal
had a similar organizational practice. From Anthony Levi's notes on the Pensées ISBN 0192836552
- the Pensées, a pile of papers concerning religion, were originally written on mostly large sheets of paper, some of which were subsequently cut into individual passages, of which again only some were divided into twenty-seven bundles or laisse, 414 in all, or just under half of the total were then attached together by thread running through holes pierced in the top left corner and knotted after the title had been given to the group.
This all makes me wonder if wiki, rather than being a brilliant new idea, is actually just a (brilliant) new implementation of an old brilliant idea. Perhaps the idea has never had an implementation before. Or maybe it's an idea which is so old and common that I don't recognize it as a single idea. -- TomAnderson
Most new ideas are really several old ideas that just need a spark of insight to add a little glue between them. In other words, the ability to connect the dots.
A video of a CrcCard
session would be helpful, much in the same way as the transcript of the ObjectMentorBowlingGame
. And HyperCard
will always exist in our hearts.