The great unfulfilled promise. (Philosophy - how it ought to be) Rodnay Zaks.
Ever since computers were introduced, the great promise has been that computers are easy to use, that anyone can use them easily. This is not true. This promise cannot, and will not, be fulfilled. Anyone using a computer or contemplating its purchase should understand this. Computers have benefits and limitations. I will explain what to expect, what not to expect, and what you can do about it.
First, I will look at the difficulties involved in accessing a program, then operating it. Then we will examine what will and will not happen in the future. We will distinguish two key issues now confused by manufacturers: the ease in using the computer proper and the ease in using the application programs. We will draw the important distinction between two types of application programs (active and reactive) and show why most application programs will never be "easy to use" without one key ingredient: skill.
Finally, we will examine what you can do to use computers effectively today or in the future and how to be successful at it. Let's now examine what's involved in accessing a program. Getting to Use a Program
As a designer of early computer systems (I designed and published one of the first industrial microprocessor-based computer systems in 1972) and as a user of most small personal computers since, I have witnessed the painfully slow improvement of convenience features on personal computers and programs until this day. Let's take a look at what's needed to activate a program:
* Set up the equipment. Connecting a printer or a modem just a few years ago still involved skills, efforts, and hope. This is today no more than a chore. Just plug the components together. This problem has been solved. It's easy.
* Operate the equipment. On early microcomputers, you had to press many keys and switches in a complex sequence just to do the simplest things: skills and patience were required. Today, one or a few simple commands, the movement of a mouse, or even the touch of a finger on the screen will cause operations to be performed. It's easy. Operating a computer no longer requires skills. The obvious chores have been overcome except maybe for the fact that most people would rather talk to the computer than press keys. This will be possible in the future. This problem has also been solved.
* Access the program. The reason you turn a computer on is that you want it to perform some useful action for you, such as word processing, accounting, or playing a game. In the past, a complex sequence of instructions had to be given. This chore has now been eliminated. Today, accessing a program may be as easy as plugging in a game cartridge or moving a mouse to designate the program you want to activate. The operating system of the computer takes care of the details and performs the tasks required. This problem has also been solved. It's easy. What's left?
* Use the program. In the current state of the technology, the user must type or point to commands on the screen and learn or memorize them to cause the desired action. Using the program involves a combination of chores and skills, depending on the sophistication of the program and what it does. It's not easy, and we shall see that, in many cases, it never will be. There remains the key difficulty that we will examine. Using a Program
Steps one, two, and three above normally involve no more than minor chores such as plugging in cables, connecting peripherals, and performing a few simple actions to cause the computer to activate the desired program. This aspect of computer usage was easy to automate and has now been automated successfully: it's easy.
We can compare this progress to the evolution of the automobile: At the beginning of the century, using a car involved a complex sequence that required chores, skills, as well as a lot of patience and, of course, luck. The engine had to be cranked up. If the weather was cold, it even had to be warmed up. The mixture of gas and air had to be adjusted, and many buttons and levers had to be pushed, pressed, turned or squeezed for the engine to start--maybe. With the progress of mechanical and electronic engineering, modern cars can be started by merely turning a key. All other chores have been eliminated so that the driver can now concentrate on getting where he wants to go. With computers, the situation is quite similar. Computers today are easy to turn on, and the desired program is easily activated, so that the user can now access the program in one or two steps. The only remaining problem is to get the program to do what the user wants it to do.
Similarly, operating a car has become more convenient, more comfortable, and perhaps safer today, but driving still requires basic skills that are still much like those that were required at the beginning of the century. Again, we will see that there is a significant analogy in the use of computers today: skills are required to "drive" them--as opposed to starting them. Active and Reactive Programs
An active program is one that allows you to give it a sequence of instructions. An active program generally acts on data you supply. For example, a word processing program is an active program, as is a spreadsheet program or even a programming language such as Basic. You issue instructions to the program that cause it to execute sequences of actions on your data until the desired final result is obtained.
An active program usually has little or no built-in data, and typically, you enter or create the data yourself, then manipulate it by giving commands to the program. For example, you type a letter (the data) then edit the letter with a word processor (a sequence of commands), or you type tables of numbers (the data) and then modify those tables using a spreadsheet program (a sequence of commands). To use an active program, you must learn its commands.
A reactive program is one that merely informs you selectively after asking you specific questions. Examples are educational programs that teach you math, typing, and other topics and, depending on your answers, modify their reactions accordingly. These programs are generally equipped with built-in databases that contain the information which will be presented to you. They present pieces of this information selectively to you, depending on questions and answers, i.e., the dialogue between the program and yourself. For example, an automated phone directory is a reactive program.
In summary, the essential difference between these two types of programs is that the instructions of an active program are changed or created by you, whereas the instructions of a reactive program are unchangeable. An active program is like a programming language: you specify a sequence of instructions to do something useful. On the other hand, a reactive program requires no specific program knowledge on your part and will guide you along a path to the information it contains.
Obviously, reactive programs can, and should be, extremely simple to use (as opposed to design). Virtually anyone should be capable of using them. There is nothing you have to know in advance about the program itself, although you may have to know about the topic, i.e., the database. If there are any remaining difficulties involved in the dialogue with the program, it is the fault of the software designer, and the chores or inadequacies can and should be removed in the future.
However, in the case of an active program, things are quite different: the user must master a new programming language, i.e., how to use the set of commands required to operate this active program. This is a skill that must be acquired. The softwase designer can make communication with the program easier or more fun but he cannot supply the skills required to use the program itself. The more sophisticated the program, the more resources it offers, the more skills may be required of the user. Active programs require skills. They are not easy to use without them. Skills
Skills are the key to understanding why computers will not be easier to use in the future. Most useful application programs available today are active programs. They require skills. This requirement will not go away. All the other aspects of using computers and programs will be improved, polished, and made more pleasant, but skills will still be required to operate active programs. The very purpose of providing a good active program is to bring you an advanced "programming language" (the application program) that can perform and automate complex tasks or procedures for you. Unless you acquire the specific skills required, you will be limited to using either reactive or simplistic programs. What is Needed
The burden placed on the computer manufacturers is quite simple: to sell computers, they must make them easy to use, i.e., alleviate or remove the remaining chores involved in accessing a program on a computer. Indeed they do. We are now buying convenient computers, with high-resolution screens, the convenience of pointing to the screen with a mouse or by touching the screen and the convenience of activating commands or functions by pointing to a symbol (called an icon) rather than having to type or move a cursor.
The remaining problem is making programs easier to use. This means two things: improved convenience in using the programs themselves and programs designed to require fewer skills or designed to teach them.
Unfortunately, designing a good active application program is analogous to designing a good programming language: it is a difficult art. In time, well-designed sophisticated programs will be introduced. An old programming saying is: "the simpler the program appears to be, the longer it took to design." Hardware and operating system standardization is required to make it worthwhile for software developers to invest time, effort, and money in designing such sophisticated programs. Designing better programs is a long and costly process. It requires a large number of computers sold and a sufficient permanence of the standards to make it worthwhile to carry out the development.
Developing a good reactive program is equally complex and even more risky since most reactive programs incorporate a fixed behavior pattern and a fixed information base and, therefore, have a high risk of mortality. If there is any change in the database or in the behavior, then the program must be redesigned--a major endeavor. This risk is acceptable for simpler programs as long as they have a very wide distribution (games, for example) but the risk is high for sophisticated home and professional applications. This is why the bulk of the programs currently available are active programs and are likely to remain so for the short-term future.
In summary, except for simple games and educational programs, if you want to use a sophisticated application program, say for business, you must acquire specific skills.
If you are willing and able to acquire those skills, you will be able to derive the full benefit of computers in years to come. This need for skills won't disappear. Manufacturers are generally afraid to tell you that useful programs are not easy to operate unless you learn new skills, and they have done their best to cover up that fact. What to Do
Sophisticated users understand that additional effort will be required to use a program. This is when a last-ditch marketing claim is made by the manufactures: "all you need is a (thin) manual." If you already have the skills--for example, if you already know how to use a word processor--then, indeed, all you may need is a manual. Just as if you know two or three programming languages, all you may need to use a new one is a manual. However, for the vast majority of users, this claim is simply not true. You need more than a manual; you need skills. What should you do?
A manual presents information about the commands and what they do. It doesn't teach you how to use them. To acquire those skills, you need to be shown how to operate the program through direct help, courses, or books. You need training.
People acquire skills in many ways. Many of us like to be shown how to do something. If you have access to a tutor or courses near to you, this may be the best solution. If you do not, then reading a suitable book or publication (one intended to teach skills) is usually the best way. This is what my company and I have concentrated on and why I feel the need to speak out on this important issue. Understanding this point is vital to the useful operation of a computer today and in the future. Conclusion
Many of the obstacles involved in using computers and programs today are on the way to being removed. It has now become easy to turn a computer on, access a specific program, and issue commands to it. In the future, improvements will be made in the way we communicate with application programs. At the same time, application programs will become much more complex and sophisticated, allowing you to automate tasks or perform actions that you would not have considered possible before.
To do that well, in most cases, you will still require one essential ingredient: skill. For each new type of active program that will be introduced, you will need to learn how to use it effectively. And this is the very power and magic of computers. Computers together with the programs installed on them are nothing but an extension of the human mind that allows you to either control the machine (using an active program), or be controlled by it (a reactive program), leading to almost infinite complexity.
You will, no doubt, want to acquire skills in an area which is useful or pleasant to you. In the process of acquiring skills, you will face the same difficulty all of us do: there are few good educators and fewer good educational aids. A very few publishers have been dedicated to providing the very best educational tools that can be provided in the form of books, and we hope they will allow you to derive the full power and benefit of what computers--as well as yourself--are capable of. I wish you a pleasant journey on your path to knowledge.