iPerCard

The time is right for my favorite program to make a comeback.


Image of the HyperCard home stack is from the C.V. page of Robin Siberling

One of the things that gets my nostalgia fired up like no other is HyperCard, which I consider to be one of the greatest pieces of software ever made for a personal computer. No exaggeration. Neck-and-neck with PhotoShop in terms of significance, as far as I’m concerned, and definitely more mind-altering in terms of thinking about how computers work and what they can do.

I can and will go on at great length about how great HyperCard was, at any opportunity, but the design firm smackerel.net has put together a terrific retrospective called “When Multimedia was Black and White” that can do a better job than I could.

Ever since I made the switch back to Macs, I’ve been looking for a HyperCard successor. There’ve been several pretenders to the throne: SuperCard was the highest-profile, but it tried so hard to be a superset of HyperCard that it lost most of what made the original so cool. I keep checking in on Bento every time they announce a new release, but it’s becoming clear that a simple development environment just isn’t the market they’re after. Runtime Revolution, has been trying for years to be a direct successor, but I’ve never been happy with it — it seems like an attempt to recapture the multimedia authoring platform that HyperCard turned into, instead of consumer-level software.

There are still pockets of loyal HyperCard fanatics out there, still holding on to floppies full of HC stacks like mattresses stuffed with Confederate money. But over the past few weeks, I’ve been hearing HyperCard mentioned more and more often, even by sane people. For instance John Gruber on his Daring Fireball site about entry-level development environments, and in speculation about what the future of authoring multimedia content is going to be like.

What’s re-sparked interest in HyperCard is, of course, the iPad.

Why The Time To Act Is Now

Any fit of HyperCard nostalgia gets shut down pretty quickly when you look at it in a modern context and are forced to realize that it died for a reason. Bill Atkinson himself has acknowledged that its biggest flaw was focusing on local storage instead of taking advantage of networking. Most of what it could do was superseded by the World Wide Web. Later, Director and then Flash came in to take over the rest and become dominant.

But back then, there was little reason to believe (unless you were particularly prescient) that networking would become so huge outside of business settings. Personal computers were still very application-focused. Like the iPad is.

On OS X, a replacement HyperCard seems less necessary once you realize how many HyperCard remnants are scattered throughout the system. Much of HyperTalk remains in the AppleScript language. The rest of HyperCard’s coolest features live on in Xcode. Using Interface Builder, you can drag-and-drop interface elements, draw connections, and create a fully functional (if basic) UI without having to write any code. Databases are handled by the Core Data library, again without any code. But Xcode doesn’t (and definitely shouldn’t) exist on the iPad.

On the iPad, there’s no way to get apps except through the App Store, no way to develop them except through Xcode, and there are restrictions on what Apple will allow developers to do, for fear of interrupting a cellular network, or fear of ruining a user’s end experience (and by extension, as Gruber points out, their brand). A controlled development environment could “fix” much of that, giving Apple the control they want while allowing developers to make things more powerful than web apps but with less investment than the iPhone OS SDK.

Flash turned into the dominant platform for multimedia authoring, and even it got corrupted into a glorified interface for delivering streaming video. But — and I don’t know if anyone’s mentioned this yet — the iPad doesn’t support Flash.

The excuse that Apple’s defenders are using for the lack of Flash support is that open standards like HTML 5 are preferable to a proprietary format owned by Adobe. Streaming video support is a whole other issue, but what about “basic” Flash: games, presentations, or even banner ads? We keep seeing demos that show what can be done using only HTML 5, CSS, WebGL and the like, but there’s still no consumer-level authoring platform that’s as straightforward to use as Flash. (Which might sound odd to anyone who’s used Flash, but dragging and dropping keyframes on a timeline is still more accessible than writing code in a text editor). If they want the content to take off, then there needs to be a better tool for people to create that content.

People need something like HyperCard; it’ll sell more iPads. There’s a glut of special-purpose apps on the App Store for stuff like keeping wine lists or golf scores or, of course, making fart noises. That may help with the 150,000 available apps claim, but it doesn’t make the device itself seem more useful. Especially if you have to pay one or two dollars a pop instead of just making a simple app yourself. And Bento just isn’t cutting it; it tells you up-front exactly everything you can do with it, and if your application doesn’t fit right into that narrow selection of templates, then no sale.

And it’s more of a minor point, but it’s possibly the most important and least “selfish” reason to do it: it would help keep the iPad from being perceived as purely a device for consuming media, and let Apple reassert itself as the company that makes things for creative people. HyperCard was uniquely Apple, and it fit so perfectly into the Apple philosophy: giving you only the complexity you needed and only when you needed it, and making the act of creating things feel like fun instead of like work.

What’s more, people will get it now. Back in 1988, much of HyperCard was devoted to trying to explain what it was, exactly, and what kind of stuff you could do with it. In 2010, people just naturally understand hyperlinks and pages and multimedia.

How Apple Should Do It

I do believe that if an iPhone OS-centric successor to HyperCard were to happen, it would have to come from Apple. And that’s not because of my devotion to Apple or some naive or high-minded philosophy, but for very practical reasons:

  • It has to be ubiquitous. A huge part of HyperCard’s influence was due to the fact that it was included on every Mac. If you have to go looking for it, then you’re probably not going to bother. Especially if it’s not clear to you what it does, exactly.
  • It has to run interpreted code. It’d be a lot better if Apple just relaxed its rule against letting apps run interpreted code, so that there could be all kinds of rapid application development available. But until they do, any attempt at a HyperCard replacement would be hopelessly gimped and over-simplified.
  • It would compete with the App Store. Being able to create your own stacks (or whatever the new metaphor is) would be of little use unless you could distribute them. Even back before the internet took off, people traded stacks on floppies at User Group meetings and over BBSs. If Apple allowed that kind of distribution for one third-party developer, they’d have to do it for all of them, and I see that as being highly unlikely.
  • It’d probably have to use private frameworks. Any app that ran these stacks would have to be doing runtime configuration that I just don’t believe is possible with the public frameworks. (Or I just haven’t dug deep enough into them).
  • Apple is already so close to having a finished version.

That last point is what got me excited about the potential for HyperCard on the iPad. It began with the “Getting Started” document that’s the first thing you see when you start up Pages for the iPad.

The Pages tutorial is, in a word, totally sweet. You can move images around and see the text flow around them, insert graphs and charts and edit them in place, and assign borders and other effects using simplified pop-up windows. Using Pages on a desktop or laptop, and you get the sense I’m using a simplified entry-level word processor. Using it with your fingers on an iPad, and you think this is how all page layout software is supposed to work.

Now, one of the iLife applications that seemed to have a ton of potential, but just kind of fizzled out, was iWeb. (I don’t know its actual success, of course, just that I’ve never actually seen a website that was created with it). It makes one hell of a first impression, but after using it for a while, you quickly run into its limitations. And you realize that it’s not the best way to make a dynamic website.

It would, however, be a fantastic way to make a HyperCard stack, or an iPad app. You can drag all of the page elements around and edit their properties in place. You can set up connections between buttons and other elements on the site. There’s already a notion of static content (e.g. a blog page) vs. dynamic content (e.g. individual posts). It’s got a media browser, as well as several built-in widgets.

iWeb has to do all kinds of tricks to get the pages you make with its editor to look as nice when they’re rendered in a browser. (The most obvious is how it has to generate big, web-unfriendly images when you rotate them or add borders and drop shadows). But it wouldn’t have to if they weren’t targeted for a browser, but were intended to be viewed in the app itself. Or even if it were targeted for Safari and WebKit only, instead of any browser.

And again, while using iWeb-type controls to resize, rotate, and add effects to pictures is pretty cool with a mouse, it’s really cool when you’re dragging and pinching stuff directly.

For the kind of fairly simple databases that a HyperCard stack would require, the Core Data system should be plenty sufficient. Core Animation already has all kinds of fancy transitions that can just drop into multiple contexts.

For assigning functionality to the visual elements, Apple’s already got a library of candidates. Dragging links between elements in InterfaceBuilder is a natural. There’s also QuartzComposer, which lets you sequence effects by drawing lines between boxes. And there’s the Automator app, which puts a visual front end on AppleScript. On a desktop, visual programming environments, including Automator, invariably seem clunky and limited. It almost always seems faster just to type it out in a text editor. But on the iPad, dragging and dropping is much more natural than typing. Eliminating typing altogether would just make the whole thing useless, another Bento that relies too much on templates without allowing enough configuration and customization. But minimizing the typing makes more sense on the iPad than it would on a desktop or laptop.

I dunno, maybe the idea is completely counter to what Apple’s trying to do. But it seems like it makes so much sense, and it would address so many concerns, and it just fits in with everything they’ve built up to now. All the iWork and iLife apps feel to me like HyperCard is lurking there in the background, waiting to come out. On the iPad they’ve finally got a good reason to let it loose.