Bring Back User Programming: The Case for a Revived BASIC or HyperCard

2001 – Back in the old days (that would be the 1980s), when you had a computer in the classroom, you used it for grades. We also used to put ditto masters (sort of like carbon paper with more residue, used for making at most around a couple hundred copies of something) through the dot matrix printer and called ourselves clever for doing it.

Apple II systemBack then, being “computer literate” on an Apple II computer meant you needed to know AppleWorks for the Apple II and be able to write programs in BASIC.

These days, of course, we have much more sophisticated software for a variety of purposes. There’s AppleWorks for the Mac, fundamentally the same program as before but with greater functionality from WYSIWYG to presentation mode; and programs such as iMovie, Graphing Calculator, VideoPoint, Logger Pro (another direct descendant of the Apple II days), and others have come to show us bigger, better, and faster ways of doing things.

In the shuffle, though, something has been lost – the ability to easily make programs for yourself.

Originally there was Applesoft BASIC, a line number driven interpreter that could be used to write simple programs. And write them we did, generating number-guessing games, projectile motion simulators, sine wave drawing functions, and drill-and-kill programs for multiplication practice. We wrote them, and our students were impressed, because we did it ourselves and didn’t buy it off the shelf. Our programs now sit in cardboard boxes in our garages, not forgotten, but replaced with half a dozen commercial programs such as Interactive Physics that do the job better – or perhaps not replaced.

In those days, when you bought a computer magazine, it was filled with programs you could type in from scratch. That’s how many of us learned to program, because college courses were only open to engineering and computer science majors – and they were aimed at Unix anyway. Today, no respectable computer magazine would attempt to publish a BASIC program, although you might be surprised to learn that Sky and Telescope magazine still prints one occasionally and maintains an archive of them on its website.

Now why do you suppose they do that? They say the reasons are that BASIC is ubiquitous – everyone can get it, BASIC is free, and there are several astronomy programming books on the market still written in BASIC. The computing world has passed these guys by, and they seemingly don’t care. They don’t even assume that you have a spreadsheet – and the reason is that they don’t care about the computer as an object of study in and of itself. It’s just a way to get from A to B with a minimum of fuss.

I think that a lot of the computing world is, as my friend Peggy says, incestuous: computers and software are designed by programmers for programmers, and the rest of us can go hang.

But I digress. (Branch?) Back to the basics.

There are BASIC interpreters for the various platforms. For the Mac there’s the venerable Chipmunk BASIC, which has been around for years and runs on virtually any Mac. PCs came with BASIC as a part of DOS for years and have only recently phased it out as Redmond has de-emphasized the DOS environment.

Other offerings include a number of commercial BASIC wannabes such as REALbasic, True BASIC, FutureBASIC, and so on. REALbasic [now Xojo] gets perhaps the most press and exposure, and it and the others portray themselves as easy to learn as BASIC. If you’ve ever run a demo, you know that’s not true. Controlling REALbasic requires the user to learn an entirely new lexicon consisting of compilers, subroutines, handlers, APIs, and syntax that bears little resemblance to the BASIC of old. And truth be told, there are more similarities between Excel and BASIC than there are between these new versions of BASIC and what we thought of as a standard command-line based, interpreter level BASIC in those days.

On the other hand, writing a good BASIC program was no piece of cake either; you had to keep track of line numbers, and every now and then you had to renumber the lines to make room for new code. Professional programmers today (and even then) would sneer at such a thought; for one thing, jamming new code in-between the lines of stuff already written smacks of poor planning; for another, no major language today uses line numbers – you might even have to explain what line numbers are to a young programmer.

So am I advocating a return to BASIC? No, not really. If you really want BASIC, it’s still there; so nothing really has been lost. What I want is something that fulfills BASIC’s mission on a modern computer with a modern interface.

What I want is a program as easy to start off with as HyperCard used to be. HyperCard could build a stack in a few minutes; but hidden underneath was a programming language with which one could write real (if limited and slow) programs. Unfortunately Apple has abandoned this once mighty technology because they lost the vision of the users who want to control what their computers do instead of being subjected to the interface whims of other programmers. I signed the Save HyperCard petition, too, but I’m fairly well convinced that HyperCard, at least as we used to understand it, is dead.

Timex Sinclair 1000There are HyperCard substitutes: SuperCard and HyperStudio come to mind. I’ve used older versions of HyperStudio, and it seems like a nice enough program. It’s primary failing is that it doesn’t come bundled with the computer. Heck, the first computer I spent money on was a Timex-Sinclair 1000; in that little 1K RAM machine, BASIC was the OS. That’s all there was short of machine language.

I’m sure there are people reading this (heck, even people who know me in person) who will accuse me of simply being lazy or a Luddite or worse. Let me point out that it is not my intention here to become a professional programmer any more than an iMovie user expects to get the next Academy Award. I don’t want to write programs for a living; I want to teach effectively, write a little utility useful to me and perhaps a few other amateur astronomers now and then, and derive a little personal satisfaction in making the computer obey my wishes. It don’t think it’s a lot to ask given the sophistication of today’s hardware.

I think Apple needs to rethink the possibilities of a HyperCard-like program and ask themselves if they are up to the challenge of creating a new user experience that would open up interactive multimedia production again. I’m not asking for the fastest program ever written; nor am I asking for something as powerful as REALbasic or MetroWorks CodeWarrior. I want an iMovie of programming compared to these other Final Cut Pros.

What would such a beast be like?

Well, for interface, Apple could capitalize on the legacy of HyperCard and make it a card-based interface. True color integration and movement away from bitmapped graphics to object-oriented graphics would be a big improvement. However, the calculation fields and manipulations possible in FileMaker Pro would make it a lot more versatile than the clumsy and obscure HyperTalk language. If you like AppleScript, you’d like HyperTalk, which makes you sound like you barely know English. “Take the side of the Thing and put it in the container of the thing on the bottom of the row while scratching your head,” you’d write. This should be object oriented and grammatically tolerant of everything except logic errors. Like early versions of BASIC, it shouldn’t make distinctions between integer and floating point variables, because if your computer is as fast as you think it is, the speed gain is offset by the added complexity.

The only thing missing would be a bit more control over graphics and a way to interface to the outside world, which HyperCard had to some limited degree.

I’d like to set up simple programs with a construction set much like Interactive Physics, which is actually pretty versatile but slightly unintuitive in how to click on object controls and interpret icons. I want to add fields, calculate values, and control records of data like FileMaker, except for the fact that FileMaker is clueless on graphics. I want the user experience to be like what you get with a finished HyperCard project. And I want to be able to do real work without even smelling code – until I’m ready to get to that step. This beast ought to be QuickTime compatible, moderately fast (I mean, why do we even have faster computers if we can’t do things like this?), and most of all, it ought to come on the machine. Call it iProgram or something more friendly if you like.

I haven’t yet seen the graphical interface accompanying AppleScript in OS X 10.1, but I suspect it’s more like REALbasic than HyperCard and filled with pleasant sounding terms requiring a user go out and buy a book to decipher before starting to actually use it. Like AppleScript in OS 9, I doubt the user’s guide is much more than a series of reminder notes for those already experienced in its use.

Someone said to me recently that users suffering from an endless parade of upgrades would probably be better off skipping a couple of revisions per program. If you look at word processing, for example, just typing a simple letter without fancy special effects, using Microsoft Word is a nightmare compared to the old Apple II AppleWorks. Why does it keep underlining everything? Why can’t I turn that off without digging through a dozen help files?

iMovie is a triumph because fundamentally Apple understands that people want to do sophisticated work and not have the computer interface get in the way of the work. iMovie doesn’t do everything – the video production students at our school sneer at me every time I mention it – but on the other hand, they tend to sprinkle too many special transitions and effects in their work, so I can sort of understand the source of their frustration.

But for me and millions of others, we just want to remember what it was like to be able to make a little single-purpose demo or tutorial program and be able to say, “I made that.” And as with iMovie, you shouldn’t have to take a foreign language course or spend hundreds of dollars in order to get that feeling.

Keywords: #basic #programming #hypercard

Short link: