HyperCard for the Web

September 26, 2009 at 9:05 am 9 comments

I am a long time HyperCard fan. My 1993 dissertation was on the design and evaluation of an environment I built in HyperCard to have students learn physics and programming by building simulations (in HyperTalk).  I built a commercial media composition tool MediaText in SuperCard, a HyperCard clone.

If the Apple claims are true, HyperCard still is the most successful end-user programming environment ever.  HyperCard was included with every Macintosh that Apple sold from 1987 to 2000. I’ve heard a claim that 1/3 of all Mac users actually tried programming in HyperCard — literally, tens of thousands of Hypertalk experimenters. If that’s true, then more people have programmed in HyperCard (at least a little bit) than probably any other programming language.

I still play with HyperCard-like programs when they come out (like PythonCard and Revolution), but haven’t really used any of them much.  They seemed stuck in an old model of what applications are about. When I or my students try to use them for something new, they regularly break on us. They don’t have the flexibility of the original HyperCard.

I’m having fun playing with the new version of Revolution, revMedia from RunRev. The interesting thing about this version is that the editor is now free, and the stacks live inside the Web browser.  They’ve built a plug-in for MacOS and Windows (and they promise Linux, too).  It works pretty darn smooth — the stack just shows up inside the browser, period.

Technically, there’s nothing new here. The Squeak plugin put EToys in the browser years ago, and Scratch‘s website is enabled by a really nice Java applet to run Scratch projects.  What’s fun for me is simply seeing HyperCard live inside the browser.  HyperCard has a bunch of really interesting ideas in it that are still not matched by anything else today, so it’s exciting to be able to play with those ideas again in a modern setting.

Entry filed under: Uncategorized. Tags: .

The Phonics of Computing Education What if computer science was required?

9 Comments Add your own

  • 1. Barry Brown  |  September 26, 2009 at 1:15 pm

    Ah, Mark, you make me “homesick” for the good ol’ days.I have long thought that Hypercard would make a great beginner’s programming environment. Sure, it’s object-oriented model doesn’t scale up to large projects, but beginner’s don’t write large programs, anyway. In many ways, Hypercard has the same pedagogical limitations of Alice 2, but don’t tell that to the middle and high schools that use Alice successfully.

  • 2. Ian Bogost  |  September 26, 2009 at 4:50 pm

    I hadn’t heard that Hypercard statistic before. It’s impressive. Reminds me of how the Apple ][ and C64 booted into BASIC, where many people decided to try programming. Makes you wonder if the best first step is just bundling dev environments.

    By way of post hijack, this is a great time for me to mention that Nick and I would love to have a Hypercard book in our Platform Studies book series (MIT Press).

    • 3. Barry Brown  |  September 26, 2009 at 9:08 pm

      I’d say yes: bundling a dev environment would make a big difference. But *which* environment? One might say the Mac comes with several: Java, Automator, AppleScript, python, ruby. But the Mac isn’t churning out a generation of developers.

      Imagine the outcome if the computer came with, say, Alice. Or Scratch.

      • 4. Mark Miller  |  September 27, 2009 at 3:02 am

        But the Mac isn’t churning out a generation of developers.

        Well I can tell you why. I’ve looked over the developer documentation for Leopard and it’s not geared well towards beginners. If anything, you get bits and pieces of “help” information about the different development options, akin to man pages. As best I can tell there’s not a tutorial in site on the system that would hint at the ability to program on a Mac. As best I can recall there’s no mention of it in the manual either, except maybe a blurb about Automator. There is a development suite included on the OS X install disc, XCode. I’ve looked over that. The documentation for it is totally geared towards professionals.

        The Apple developer website is totally geared towards professionals as well. I had better luck just looking up on Google for non-Apple-sponsored tutorials on AppleScript. Of course, I had to know that AppleScript existed to even know to look it up. I had only heard of it from other developers, reading on developer forums.

        I wasn’t that impressed with Automator when I first tried it. The drag-and-drop interface is nice, but I had trouble getting it to record my actions accurately. Just doing a brief search now I’m beginning to think that it would be better to just use AppleScript with it. I had to figure that out though. There was no mention of AppleScript in the system documentation I’ve looked at, that I recall.

        Automator pointed me to Apple’s Automator website, which gave me a nice overview of what it’s for, at least. Trying to get it to do what it says it’s capable of was another matter. I’ve looked at a few demos of Automator and the only idea it gets across is performing steps in a sequence or a loop. That’s a start, but it doesn’t allow you to delve deeper than that. I was running it tonight and I noticed that I can’t introspect any of the actions in a workflow. I can’t look at the source code by selecting an action.

        I tried delving deeper into the Automator website tonight and lo and behold I finally found some decent material on it and AppleScript, but I had to go through some non-intuitive actions to get there. There are some third-party links along the right side of the page, and right down at the bottom is one called “Mac Break”. I clicked that, then saw an option called “Learn” on the next page, and only THEN did I see an option to learn about AppleScript in a tutorial fashion. In any case a lot of the material seems to be written for adults, not children or teens. The way the whole thing is oriented seems to say to kids and teens “Just use Automator. You don’t need to look at anything else.”

        I’m not saying that there’s another competing developer program that’s any better. I worked in .Net for several years, early in this decade, and the only way I could even get started with it was to buy a big thick book for $45 (and that was at a discount). I had already been working in C for several years, and a bit in C++. So I knew to check out the bookstore, and how to evaluate which would be a good book to learn from. A beginner would’ve been totally lost (unless they knew by default to look for a “Dummies” book on it–referring to the “Dummies” series of books for beginners on any subject).

        I remember one MVP in the Microsoft developer community worried aloud several years ago that MS was “pulling up the skill ladder” such that beginners could not get a leg up on becoming programmers by themselves. This happened because MS dropped support for the old Visual Basic, and had replaced it with VB.Net, which required a lot more technical skill to master.

        Windows 98 introduced a scripting facility in the system, called Windows Script Host. It’s been on Windows ever since. It’s a non-interactive script initiator that allows VBScript or JScript interpretation by default, and which allows access to any COM object in the system. Would any beginner know about it? No. There’s system documentation on it, but you have to look for it. It doesn’t give you a tutorial, just basic technical documentation about what it does and how to access it. Nothing in the system pointed it out to anybody, either, like, “In case you’re interested…”.

        Microsoft produced some “express” edition IDEs about 4 years ago (I guess), which are free on their MSDN website, but again, there’s no tutorial on them, and you’d have to know about them to find them.

        I’d say that Apple has also “pulled up the skill ladder”, but at least tools that beginners can grasp are there, and from how it’s described there’s a better development architecture there for them than there is on Windows. That’s the best I can say about it. The problem is there’s really nothing on the Mac telling beginners “Hey, over here! Check this out!” They have to practically stumble upon it.

        I’ve probably said this before on this blog, but in the 1980s computers used to come with introductory materials on programming. Buyers of computers knew that the facility was there, and they would gain a bit of an idea of what it was about. It gave them enough that if they were interested in the idea they could get into it more. Now developer tools on systems are just thrown in as an afterthought. No one is even told about them up front. Some would say that’s a good thing. Mark knows well that if you mention the P-word it scares people off! It just seems hard to find a friendly non-threatening beginners guide to this stuff. My point is that wasn’t always the case.

      • 5. Ian Bogost  |  September 27, 2009 at 10:37 am

        Mark’s right that Apple’s OS X dev tools are unapproachable. And even though Java, Automator, AppleScript, python and others are technically in the machine, you really have to know what you’re doing to know how to find them, let alone use them.

        Personally, I think it’s quite important to be able to compile and run native applications with developer tools for them to provide motivation. C64 BASIC doesn’t compile of course, but you can start PEEKing and POKEing into memory and really make the machine do everything it’s capable of. Hypercard also let you build APPLs.

        Scratch and Alice and such are nice, but I wouldn’t underestimate the feeling one gets from getting a native program running. Despite the issues described above, Apple Automator feels much closer to this than does python.

  • 6. Mark Miller  |  September 28, 2009 at 6:40 pm

    Following up on Ian’s comment:

    I started hearing a few years ago from friends and fellow programmers the question, “I’d like to get my kids started on programming, but where should I start?” When I tried to look at that question myself I realized that given my limited knowledge base at the time I didn’t have a good answer, except for the way I learned it…on the same machines (by which I meant “run on emulators”). When I talked about that with friends they agreed, but they didn’t feel too satisfied with that answer. They wished there was something more modern, but easy to grasp.

    From what I have since come to understand, Python might be an answer, since I’ve heard that it has a package available for it that’s akin to turtle graphics. Ruby might be another one, though it wouldn’t be as satisfying (kids like quick access to graphics capabilities). I recall a few years ago reading an online article by someone saying that they moved their kids from Python to Squeak, since the environment was more uniform and easier to deal with. According to the author Python forced the user to “mode switch” in their thought process, and that confused his kids. Squeak doesn’t have that problem, since everything is an object, just one concept they have to understand for everything. Scratch and Alice are not bad ideas either. Again, it’s just a matter of making people aware of them.

    I think Automator on the Mac could be a good intro. for people of any age. It presents a simple interface, and gets a couple ideas across. It presents a nice easy step into the idea of programming, because you can think about what you would do to get something done and translate that into steps the computer can take to do the same process. Kind of Logo-like in principle (though there’s less opportunity for deep thinking, I have to admit). I just think that Apple is missing an opportunity by not presenting some programmable extension of it that is more kid-friendly. I’ve been saying for a couple years now that our modern computer systems are “progressing inch by inch towards Smalltalk” (an “inch” of progress each decade). The main missing ingredient at this point is late binding. Since I’ve come to learn in the last few years about some of the great ideas in computing I’ve realized what a missed opportunity Hypercard was (the fact that Apple dropped it). I thought Apple dropped it earlier than 2000. I remember a famous incident in the early 1990s where Apple had just converted from Motorola to PowerPC chips (I think this was when System 7 came out) and their then-newest version of Hypercard didn’t work on it (I think it was called Hypercard 2). Kind of embarrassing for them, I remember, though I think it revealed what Apple thought of Hypercard, as the forgotten stepchild.

    I had limited exposure to Macs in the 80s and 90s, and I never quite grasped what Hypercard was when it was available. I was so used to the idea at that point that programming = code. I could be wrong, but it seemed like Hypercard was more of a multimedia environment where one could drag and drop media onto it, and then somehow set up interactions between a user and different elements you had dropped into it. So I never used it. I remember reading a bit about it though. The one thing I was really impressed by was its scripting language. It practically read like English. In hindsight I’d say it was definitely a good example of what was possible.

  • 7. Steve  |  February 1, 2011 at 6:16 am

    After perusing the net for a few hours, I’ve concluded probably the best method of getting HyperCard to run on the current OS X (10.6.6) is to make the effort to get the SheepShaver emulator installed and running. Back when HyperCard was still supported, I became very adept at creating complex applications with it. One app processed and imported large amounts of software source code, so much so that HC would get buggy. I had to build in a check for the current stack’s size, and create and link a new stack when 1MB was reached. The linking between all the multiple stacks was done with a complex array implemented in hidden fields. I would really love to find a simple way to get access to run HC stacks on current Macs, or even directly in a browser, but I won’t hold my breath waiting for Apple or anyone else to develop a method; that would be wishful thinking. So I will probably just slug through the SheepShaver emulation route.

  • […] talked about RunRev/LiveCode here before.  It’s 90% HyperCard, updated to be cross-platform and with enhanced abilities. […]

  • 9. gasstationwithoutpumps  |  April 9, 2012 at 12:38 pm

    As a bioinformatics researcher, I do my own coding in whatever language is most convenient for me (mostly Python these days, except when I need speed, and then C++). The community is not too important, except for picking up packages and hints about good ways to do standard things.

    As a bioinformatics teacher, it is very important that I get students to program in languages that are in common use, as code is usually shared, modified, and maintained by many people. When I started teaching bioinformatics, PERL was the common scripting language, and I taught it (though I always hated how ugly it was). Once students convinced me that Python had finally gotten enough traction in the bioinformatics community, I gladly switched to teaching Python instead.

    Note: my students are supposed to already know how to program (generally in Java, since that is about all that CS departments can be counted on to teach), but it amazes me what a range of programming ability and ability to learn a new programming language the students have. I would have thought that it would be easy to switch from Java to Python, but some students do not find it so. Perhaps it makes a bigger difference what one’s first programming language is than I usually believe, which makes the common choice of Java as the first language a bigger mistake than I had thought.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,332 hits
September 2009

CS Teaching Tips

%d bloggers like this: