Computers And Society
David D Thornburg, Associate Editor
This two-part series on program/languages began in last month's column with a discussion of VisiCalc and Rocky's Boots. The concluding column examines the program Dancing Bear as a language and explores the potential impact of these types of languages.
That's Not A Program, That's A Language
In last month's column, I explored the idea that some software offerings that we might consider application programs are, in reality, computer languages. In order for me to conclude that a program is a language, it must have the following characteristics:
- A computer language must allow the user to create computer-based activities that are custom-tailored to the user's needs.
- The language must have a vocabulary and a grammar.
- The user should be able to edit and save his or her program.
- The user should be able to run the program.
I have read recently that some people think of word processing programs as languages. I disagree with this assessment of word processors since the word processor doesn't use the user's text to control the computer's activities. A word processor is simply a program designed to let users create text files that can be printed out. Admittedly, there are word processors that allow the creation of user-defined "macros" to perform complex formatting functions. But, while these macros are computer programs, this function is not a pivotal part of most word processing systems.
Dancing Bear As A Language
One program that is most definitely a language is Dancing Bear from Koala Technologies.
Koala is the manufacturer of the low-cost KoalaPad Touch Tablet which allows the simple use of a finger or stylus to convey position information to the computer.
One of the features of this device is its use of overlays that let the tablet be used both as a graphics or position input device and as a special-purpose keyboard.
Dancing Bear (currently available for the VIC) is a program which lets the user make an animated bear do a dance on the display screen. The stage on which the bear dances can be decorated with props by the user, and the bear can dance to user-defined music. This program (developed by Audio Light) uses the KoalaPad for all its input.
To see why this program is a language, we will briefly examine how it is used.
Creating A Dance Program
Dancing Bear uses the tablet overlay shown below.
This overlay divides the tablet into three regions: bear position (upper left corner), body orientation (lower two-thirds), and program control (upper right).
To create a new dance program, the user selects the DANCING option from the startup menu and presses NEW on the tablet overlay.
The bear is then shown in its starting position in the center of the stage.
In the upper-left part of the screen you can see a small bear icon with an arrow underneath it. This is the program listing. To create the next step of the dance, we might press NEXT and turn the bear's head a little to the left and lift its left leg.
As you can see, these changes are reflected in the listing.
The next few figures show other steps in the sequence of this dance.
Language Adaptability
The top of the last figure shows the listing for this dance program. This listing can be edited, saved, or run. A REPEAT function allows any portion of the dance to be repeated as many times as desired.
The finished dance can be tested, edited, merged with user-defined (or predefined) music, and the stage can be outfitted with props.
The prop room lets you outfit the stage with blocks and labels. The set can be as elaborate or as simple as you desire.
The music editor uses the KoalaPad to pick up notes and place them on a stave. As with the dance itself, the music can be tested and edited if desired.
The entire dance program (props, music, and bear motions) can be saved on tape for later use.
If we accept that Dancing Bear is, in fact, a programming language (along with VisiCalc and Rocky's Boots), one might legitimately ask "Who cares?"
I guess the point is that languages are fundamentally more powerful than application programs because they let the user gain control over the computer system. Admittedly, VisiCalc, Rocky's Boots, and Dancing Bear don't offer the degree of access to the computer found in languages such as PILOT and Logo, but they offer far more control than fixed-function application programs.
The personal computer is unlike any other appliance to ever grace the home. Where the washer, stove, or television has fixed functionality, the computer is, by design, a general-purpose machine. Ultimately, effective use of this machine will only come when each user feels comfortable in molding the computer's applications to his or her own needs. This molding process requires programming skills on the user's part.
Since the beginning of the personal computer industry, we have been trained to believe that computer programs were linear strings of text. In this regard, the only differences between BASIC, Pascal, and Logo are grammatical.
VisiCalc, Rocky's Boots, Dancing Bear, and other languages of this sort point to another type of language – one that is more parallel than serial in its programming style. It is significant that these three programs (and others that have similar characteristics) are designed for nonprogrammers to use.
I see the continued development of languages of this type as a revolutionary force that will finally make programming a natural activity for every user of a personal computer.