Recently I read a post entitled The Hypercard Legacy. For those not familiar with HyperCard, it was a tool that in the 80s and 90s enabled ordinary Mac users to create their own computer programs.
More than a quarter-century after HyperCard’s release, I find it interesting how far we have strayed from this “anyone can code” mentality, into today’s walled-garden environments where only approved applications may be downloaded from an app store.
I rarely used HyperCard: today I have vague memories of sitting in the Macintosh lab at school, fiddling with its drag-and-drop interface and its chatty HyperTalk programming language.
However, in the mid-90s, I experienced a similar revelation. The technology? Visual Basic.
What made Visual Basic such a game-changer? For me, it was two things.
1. The Form Designer
The Form Designer greatly simplified creating a user interface. Need a textbox? Drag a textbox from the toolbar to the form. Same for a label, a button, a scrollbar, etc.
Instead of endless fiddling with window classes and positions, with the Form Designer, you could lay out a user interface in just a few minutes, using an intuitive interface, and without writing a single line of code.
2. The BASIC Language
This was a benefit to me personally: I grew up coding MS-BASIC, so stepping from QBASIC to VB was much easier than learning Pascal or C++. (I have nothing against Pascal: it’s a fine language for learning how to code. No comment on C++.)
It turned out that this was a benefit to a lot of people. BASIC is an easy language to learn: between the language and the form designer, it suddenly became possible for someone who wasn’t a software developer to lay out a user interface, then double-click and write a little bit of “glue code” to turn it into a functional program.
Coding for Anybody
That’s what I see as the benefit provided by tools like HyperCard and Visual Basic: they simplified the process of creating an application. Anybody could learn to create a basic (if not BASIC) program, without needing to learn C++ or have a computer science background.
What’s the impact of having tools “for anybody”?
HyperCard is clearly an inspiration for, and possibly a predecessor of, the World Wide Web and HTML webpages. Today it’s hard to picture a world without the web.
Visual Basic may have played no small role in the success of Windows. Even today, many businesses still run legacy VB applications, written by some forgotten coder in the 90s, the source code long since lost.
MS Access has been adopted as a de facto database and DB interface for many a small company. Its VB-style form designer make it easy to use, thus businesses tend to continue using Access long after the business has outgrown Access.
Can anyone who was online in the 90s forget GeoCities, the “Websites for Anybody” website? The same could be said for MySpace, which allowed anyone to have a page with photos, music, and terrible terrible background images.
The State of Things Today
In a sense, we’ve gone astray from this “anyone can code” philosophy.
Apple has long since discontinued HyperCard. Its popular iPhone and iPad are walled gardens: forget about even loading your own apps without going through their App Store (or jailbreaking your phone).
Visual Basic is now part of Microsoft Visual Studio. In one sense it is more available than ever: Visual Studio Express is downloadable at no cost. However, the VB language itself has changed to the point that it’s nearly unrecognizable as MS-BASIC — and many new developers Visual Studio developers favor the C-flavored C# (C-sharp) language.
Even on the web, GeoCities gave way to MySpace, which gave way to Facebook and all the other modern social networking sites. Though these sites help everyone connect, they have become more and more restricted in terms of what the user can do to change the behavior and the appearance of “their” pages.
In my view, though, these attempts are misguided. Even though I called these tools “coding for anybody”, these tools are really “application development for anybody”, with minimal coding.
The goal, therefore, isn’t to help people code. Instead, the goal is a tool that lets anybody do 80% of the application development work without writing code, and then making the remaining 20% of the coding as simple as possible.