Introducing Revolution: The New HyperCard
Joe Wilkins January 16, 2007 Tutorials Mac Developer
First a little nostalgia. Back several years ago, prior to the emergence of OS X, there was a widely used, widely popular and widely supported Apple program called HyperCard. It made its appearance in the late ’80s and I was one of its biggest advocates. For several years, though a licensed architect, I made my living creating HyperCard stacks of a highly sophisticated nature. This was in the era of the Mac SE30 with its dinky little black and white 9-inch screen, and a 16 MHz processor without a built-in hard drive. HyperCard and my programs ran off of 3.5 inch floppy disks. Wonder of wonders! Compared to what Mac users are accustomed today, it was astonishingly slow, but who knew better at that time! The major stacks I wrote were, if you can believe this, for number crunching; a point of sale invoicing module and a monthly statement module. My client, a large blueprint company (not reprographics yet) in the San Diego area had been using a DOS program run on a Radio Shack Tandy Computer to do their accounting. It was not ancient, but was going to have to be replaced with something newer very soon, and the business that wrote the software wanted an outrageous fee for upgrading that; plus each day’s print orders had to be entered into the computer from their paper records.
Having seen the amazing things I was able to do with my “little Mac” on architectural projects printed out on a wide carriage, dot-matrix Apple Printer using a software package called MacDraft and then, later, renamed Dreams, they challenged me to come up with something that was more cost effective; and this was when they had to pay about $3,000 for each of the Mac SE30s they were eventually going to use. Needless to say, I took the challenge, working closely with their “bookkeeper,” Elizabeth Spence; and, by the time I was able to order and install the Macs and Apple dot-matrix printers they were going to use, I had a working version of the first HyperCard module that let them, for the first time, get away from the handwritten invoices they had been using for nearly 15 years. A couple of sample screen-shots of work done in the early days appear later.
The very first version, though it did the job and was much, much faster than doing print orders and invoices by hand with a pocket calculator; not to mention that the results were error free, recorded the information for them, priced it accurately, added the applicable sales tax and stored the results on an account card in the invoicing module; then printed an invoice for the customer to take with them. Before we could use the invoicing module, the client entered the information for roughly 1,500 of their customers. None of the personnel, except for the bookkeeper, had ever seen any kind of computer before. After the first day they were using this invoicing module with virtually no additional assistance from me.
Over the course of several months the invoicer was expanded and a new module was created into which each of the daily totals was stored for each account. Something that took quite a few minutes at that time, all of the invoice data for that day was transferred to this monthly statement module. It was used to print all of the accounts' statements at the end of the month. Fortunately, about this time Apple’s first Laser Printer became available, but a standard Apple dot-matrix printer continued to turn out the job invoices while the customer’s prints were being printed. Not really fast, but it did the job and got the clients out the door in a timely manner.
Speed was a concern by that time. Though I had no real programming experience to date, there was a Mac program called Compile-It™ that allowed the ordinary HyperCard HyperTalk scripts to be compiled into external commands and functions. Almost anything that did something within a HyperCard script could be changed from relatively slow moving HyperTalk to extremely fast machine code that didn’t first need to be interpreted by the HyperCard engine. It could just be “run.” Compile-It™ did have a few idiosyncrasies; but, for the most part it was just a matter of blocking out portions of the scripts for compiling and replacing them with the name of the external created by Compile-It™ from the blocked-out code. In most cases the original scripting was left in place, merely “commented out,” so that it could be reused in the event of a bug in the external that was replacing it. Using this technique enabled this series of HyperCard stacks (modules) to continue in use for the better part of 15 years, despite the new models of computers produced by Apple during that period of time. Before the modules were finally put out to pasture, via a sale of the company to a much larger one that used PCs, the first iMacs were at the front desk of the company; my HyperCard modules continued to work better and faster - much, much faster - than they ever had.
Zoomed out screen-shot of a manufacturing facility done when all I had was the small black and white Mac screen, showing custom fonts I had designed at the time which do not show up well in this zoomed out picture. Even at this zoomed level, I could not see this whole screen-shot on the SE30.
Another zoomed out screen-shot for one done later when I had color. The first one is from files that are still on my SE30. Both are between 12 and 15 years old.
Even today, under the Classic environment, these modules continue to work on a Mac running OS X, or they did until very recently; but with no color and the inability to create programs - stacks - that run natively on the new Intel Macs and on PCs running Windows, it is time to move on. That is where Revolution comes in. I must admit that I was initially turned off by Revolution and its prior HyperCard replacements - MetaCard, SuperCard and DreamCard; mostly due to the fact that I had been spoiled. In the HyperCard hay-days, every new Mac arrived with HyperCard pre-loaded and it was free. Revolution is not free. In fact it is expensive, but most good software that doesn’t come from Apple for free IS expensive. However, Revolution offers features that will now make it desirable to most HyperCard devotees. It has reached the stage of development with Version 2.7 in which Revolution has been released as Universal Binary capable. We’ll eventually get into explaining what that means for you - as soon as I find out.
So, what am I planning to do with this series on Revolution? Understand, that with the exception of what I have read about Revolution in their free newsletter (http://www.runrev.com) and some of their other press releases, I know nothing about Revolution, though I have been experimenting with it for the past month. I have several programs that I have written in FutureBasic, and I plan to redo them in Revolution. I also have a number of HyperCard stacks that I plan to convert with Revolution so that they are cross platform. I will be learning as I go. If you have read any of my much earlier contributions to Macinstruct, I have constantly maintained that the very best way to learn anything is to teach it to someone else. Consequently, I am going to learn Revolution by teaching it to you, step-by-step. In addition to the Revolution User’s guide, also available for free, I will be using Dan Shafer’s excellent book Revolution: Software at the Speed of Thought as an assistant. I have only just, rather quickly read this book; I have owned several other books written by Dan and they were excellent, so I don’t expect this one to be any different.
I expect to present the following Chapters at the outset:
- Introduction: With some similar commentary to this one, I will be introducing the series I plan to write about Revolution; also outlining where I will eventually go with the Code Mojo column.
- Chapter I: What can be done using Revolution? Including how Revolution does or doesn’t work as I had expected it would; or, should you buy Revolution; is it worth the asking price? How to start using Revolution - a HyperCard user’s perspective.
- Chapter IA: Response to readers questions and comments.
- Chapter II: Quick start, converting a simple HyperCard stack to a cross platform application.
- Chapter IIA: Response to readers questions and comments.
- Chapter III: A brand new, fairly simple cross platform application - this will probably encompass several chapters as of yet undefined.
- Chapter IIIA: Response to readers questions and comments.
This column will appear weekly on Macinstruct. Alternate week columns will be devoted to responding to reader comments and questions. There is an excellent, very active, knowledgeable user list to which users may subscribe, that I will probably use to help me out with this aspect of the column; but, for the most part I will stumble through the process in much the same manner that you might.
Subscribe to our email newsletter
Sign up and get Macinstruct's tutorials delivered to your inbox. No spam, promise!