Knowing that an Application is a Form of Communication
Computer communication occurs through the use of applications. You use one application to answer your e-mail, another to purchase goods, and still another to create a presentation. An application (sometimes called an app) provides the means to express human ideas to the computer in a manner the computer can understand and defines the tools needed to shape the data used for the communication in specific ways. Data used to express the con- tent of a presentation is different from data used to purchase a present for your mother. The way you view, use, and understand the data is different for each task, so you must use different applications to interact with the data in a manner that both the computer and you can understand.
It’s possible to obtain applications to meet just about any general need you can conceive of today. In fact, you probably have access to applications for which you haven’t even thought about a purpose yet. Programmers have been busy creating millions of applications of all types for many years now, so it may be hard to understand what you can accomplish by creating some new method for talking with your computer through an application. The answer comes down to thinking about the data and how you want to interact with it. Some data simply isn’t common enough to have attracted the atten- tion of a programmer, or you may need the data in a format that no appli- cation currently supports, so you don’t have any way to tell the computer about it unless you create a custom application to do it.
The following sections describe applications from the perspective of working with unique data in a manner that is special in some way. For example, you might have access to a video library database but no method to access it in a way that makes sense to you. The data is unique and your access needs are special, so you may want to create an application that addresses both the data and your needs.
Thinking about procedures you use daily
A procedure is simply a set of steps you follow to perform a task. For example, when making toast, you might use a procedure like this:
- Get the bread and butter from the r
- Open the bread bag and take out two pieces of
- Remove the cover from the
- Place each piece of bread in its own
- Push the toaster lever down to start toasting the
- Wait for the toasting process to
- Remove toast from the
- Place toast on a
- Butter the
Your procedure might vary from the one presented here, but it’s unlikely that you’d butter the toast before placing it in the toaster. Of course, you do actu- ally have to remove the bread from the wrapper before you toast it (placing the bread, wrapper and all, into the toaster would likely produce undesirable results). Most people never actually think about the procedure for making toast. However, you use a procedure like this one even though you don’t think about it.
Computers can’t perform tasks without a procedure. You must tell the com- puter which steps to perform, the order in which to perform them, and any exceptions to the rule that could cause failure. All this information (and more) appears within an application. In short, an application is simply a written pro- cedure that you use to tell the computer what to do, when to do it, and how to do it. Because you’ve been using procedures all your life, all you really need to do is apply the knowledge you already possess to what a computer needs to know about specific tasks.
Writing procedures down
When I was in grade school, our teacher asked us to write a paper about making toast. After we turned in our papers, she brought in a toaster and some loaves of bread. Each paper was read and demonstrated. None of our procedures worked as expected, but they all produced humorous results. In my case, I forgot to tell the teacher to remove the bread from the wrapper, so she dutifully tried to stuff the piece of bread, wrapper and all, into the toaster. The lesson stuck with me. Writing about procedures can be quite hard because we know precisely want we want to do, but often we leave steps out — we assume that the other person also knows precisely what we want to do.
Many experiences in life revolve around procedures. Think about the check- list used by pilots before a plane takes off. Without a good procedure, the plane could crash. Learning to write a great procedure takes time, but it’s doable. You may have to try several times before you get a procedure that
works completely, but eventually you can create one. Writing procedures down isn’t really sufficient, though — you also need to test the procedure by using someone who isn’t familiar with the task involved. When working with computers, the computer is your perfect test subject.
Seeing applications as being like any other procedure
A computer acts like the grade school teacher in my example in the previ- ous section. When you write an application, you’re writing a procedure that defines a series of steps that the computer should perform to accomplish whatever task you have in mind. If you leave out a step, the results won’t be what you expected. The computer won’t know what you mean or that you intended for it to perform certain tasks automatically. The only thing the computer knows is that you have provided it with a specific procedure and it needs to perform that procedure.
Understanding that computers take things literally
People eventually get used to the procedures you create. They automatically compensate for deficiencies in your procedure or make notes about things that you left out. In other words, people compensate for problems with the procedures that you write.
When you begin writing computer programs, you’ll get frustrated because computers perform tasks precisely and read your instructions literally. For example, if you tell the computer that a certain value should equal 5, the com- puter will look for a value of exactly 5. A human might see 4.9 and know that the value is good enough, but a computer doesn’t see things that way. It sees a value of 4.9 and decides that it doesn’t equal 5 exactly. In short, computers are inflexible, unintuitive, and unimaginative. When you write a procedure for a computer, the computer will do precisely as you ask absolutely every time and never modify your procedure or decide that you really meant for it to do something else.