[NOTE: This brief essay comes from my friend and colleague David Johnson [from whom I first learned about Hypercard on our old Mac SE, many years ago)/DP]
Why we need an Open Source Hypercard
By: David R. Johnson
Livecode has launched a kickstarter campaign to raise the funds needed to allow it to re-engineer their latter day version of Hypercard, release it to open source developers, and make it free to everyone for non-commercial use.
You should back this campaign.
As I will explain, an open source Livecode will enrich education, increase interest in science and engineering, teach problem solving skills, and create a new form of literacy,
When Hypercard was first shipped with the newly released MacIntosh computer, millions of people who had never even thought about programming started to use it to create interactive software. Its scripting language was so much like natural English that most people could teach themselves how to build things by simply looking at some examples built by others.
Tragically, Apple didn’t appreciate what it had and withdrew support for its Hypercard program (ceasing to ship it with the hardware). But the “everyone can code” flame was kept alive, barely, by various successor products from other companies. LiveCode, now distributed by Runtime Revolution of Scotland, is a much more powerful, but just as accessible, successor.
The problem is that no one knows about LiveCode. No one teaches kids how to program with it. The large community of Hypercard enthusiasts is aging. And the fact that anyone can write software, for their own purposes, has been washed away by “computer labs” that think all they need to teach is how to use applications and the presumptively more powerful, but much less accessible, technology of the web. I love the internet. I teach Internet law! But the gap between reading and writing interactive screen-based works has widened as the functions of online sites have become more complex.
As cell phones and tablets and app stores have begun to compete with the web, Hypercard (I mean Livecode) may get a second chance. It can build software for PCs, Macs, iPhones, Android phones and even Linux devices. The joy and wonder of seeing software they themselves built running on their own phone may yet spark the imagination of today’s teens.
Most people black out at the sight of javascript, much less C++. I certainly do. But we know from the Hypercard experience that anyone can approach an english-like scripting language that makes it easy to lay out a screen and experiment with small snippets of commands. “Put this word into field Fred”. “Move that button right 10” “Ask ‘what is your name?’ and put it into nameholder.” Livecode moves instantly between building and running modes. It’s “card” and “stack” metaphor is easy to understand.
Writing code should be viewed as an essential element of everyone’s education. We need to understand how the robots we are using work! Indeed, we need to be able to build them for our own purposes, without having to raise VC money or go to the IT department. If-then loops, setting variables, sending messages up a hierarchical message path, thinking through the architecture and behaviors of a software program, learning how to persist in the face of inevitable bugs, are all good training for problem solving of every sort.
There are some other student friendly options out there. Scratch from MIT is a great starting place for younger kids. Mozilla is working hard to encourage “webmakers”. And Khan’s code academy is a valuable online learning tool. But LiveCode gives older students and amateurs the ability to build more complex and powerful software and to distribute their work in more diverse environments. It facilitates experimental, iterative, coding, rather than requiring a novice to master lots of complex syntax before getting anything interesting done. And it is (almost) a language everyone already knows!
One great feature of Livecode is that it allows a novice (amateur programmer) to learn how to make the software do something just when that user has decided that that something is worth doing. Kids learning to code may build a game of the their own invention or just make an interactive greeting card for a grandparent. They will learn how to code in order to achieve their own goals. That’s far more engaging than trying to memorize complex syntax just because that is what is taught in a computer class. As Hypercard showed, classes aren’t even necessary.
If RunRev gets the resources it needs, it will make Livecode available for free to every student and teacher. (In its day, teachers used Hypercard to build all manner of innovative educational programs.) Experience in Scotland, RunRev’s home, has shown that high school students taught to build software in Livecode are twice as likely to develop an interest in science, technology, math and engineering. Even history and art students will be drawn in by the ability to manipulate its graphical tools. Young children are using Livecode to build interactive maps.
There is no telling what the next generation of Hypercard enthusiasts might come up with. Of course, as was true in Hypercard’s time, lots of not very polished software will be created by amateurs. But we know from the web that enabling innovation and distributed publishing can also produce lots of great new things.
After we got the printing press, it took a while for everyone to learn to read. And a bit longer for everyone to learn to write. We now understand how empowering those skills are, even for people who are not professional readers or writers. Writing software is a form of literacy no less needed by the entire population, even those who will never become professionals paid to code.
Educational games for our students ought to be built by teachers (and students!), not engineers. Expert systems dispensing legal advice ought to be built by lawyers, not engineers. Anyone who needs a little bit of interactivity to help achieve a personal goal ought to be able to build it on their own. Apps will become more innovative, substantive and valuable if they spring from the minds of people solving their own problems.
Livecode, in the hands of a skilled user, is as powerful as any other software out there. It has been used by NASA and by professional programmers who view it as their secret weapon. But it is also approachable by girls who hate math, by rank amateurs (like me) who write messy code but enjoy every minute of it, by anyone who speaks English and can use the built in dictionary. If the kickstarter project succeeds, an open source LiveCode may extended to reach people who speak other languages as well.
I was one of the early Mac users who found it exciting to learn how to “program” with Hypercard. (My first program involved teaching some graphical fish to learn how to school. What a kick when they swam around the shark!) I now use Livecode to build interactive games for my law students. Sure, my code is messy and, well, amateurish. But it works and helps my students study law.
My students all avidly use the internet and smart phones and iPads, but most don’t realize that even the math phobic among them really could learn how to code. They won’t become professional programmers. But they would understand technology in a deeper way, gain a tool that helps them solve their own problems, and have fun. It’s time we gave all students — and everyone else — a chance to become literate in this new way.
Everyone in the world can code. Let’s start now.