SIGAPL

Why APL?

This paper was found in a box after one of our many moves. It is dated November 1983, but is probably older. It needs to be updated by a kind APLer (please email infodir_sigapl@acm.org). The paper barely mentions PC's and doesn't mention Windows, GUI programming, control structures, nested arrays and other "new" language features.

Why APL? Reproduced and edited from an anonymous, undated paper of the same title. Our thanks to the unknown author, and to anyone who can trace the source for us.

Introduction

APL is one of the most powerful, consistent and concise computer programming languages ever devised.

APL is an interactive language returning answers immediately.

APL is easy to learn and use; if you make a mistake, it is easy to fix.

APL code takes less time to write and debug than any other high level language. This makes it the most efficient and cost effective language from the combined personnel and hardware point of view.

Because of these features, APL is the ideal language for all types of people:

  • Those people who want to learn a programming language
  • Those who need a computer which works for them, not they for the computer
  • Managers interested in being managers, not programmers
  • Programmers who want to program

What is APL?

APL is a language for describing procedures in the processing of information. It can be used to describe mathematical procedures having nothing to do with computers, or to describe (to a human being) the way a computer works. Most commonly, however, at least at this time, it is used for programming in the ordinary sense of directing a computer to process numeric or alphabetic data.

The language was invented by Kenneth E. Iverson while at Harvard University. The language, originally titled "Iverson Notation", was designed to overcome the inherent ambiguities and points of confusion found when dealing with standard mathematical notation. It was later described in 1962 in a book simply titled "A Programming Language" (hence APL). Towards the end of the sixties, largely through the efforts of IBM, the computer community gained its first exposure to APL. Iverson received the Turing Award in 1980 for this work.

APL is a user-oriented notation, particularly well suited for communication from people to other people or to computers. The notation consists of a set of symbols (letters, numbers, punctuation, algebra, and special shapes), with a very simple set of rules (syntax) for putting them together to describe the processing of data. The data can be either numeric or literal (which includes words and text handling).

In fact there are about a hundred different "primitive (i.e. fundamental to APL) operations which can be performed. This can be compared to having a calculator with over 100 different function keys.

Following the old Chinese proverb that a picture is worth a thousand words, the APL symbol set is the equivalent of many words in describing algorithms or procedures. Often one or a few APL symbols (function) can have the same result as several lines of code in another computer language or of several paragraphs in English. An example is shown later in this article.

APL allows the computer to be used in the same way as many hand-held calculators. Any operation which can be performed on a small calculator can be performed just as easily on a computer using APL. The answer is returned immediately, just as with the ordinary calculator. With just a few keystrokes you can easily:

  • perform addition, subtraction, multiplication and division
  • take reciprocals, square roots or even factorials
  • sort up (or down) a set of numbers
  • raise any number to any power
  • take any root of a number
  • calculate logarithms and exponentials
  • examine separately the integer and decimal parts of a number
  • convert number bases
  • take absolute values of numbers
  • perform trigonometric functions
  • generate random numbers
  • rearrange arrays of numbers into different size and shape arrays, i.e. vectors, matrices, and multi-dimensional "cubes".

Is APL Hard To Understand and Use?

APL was originally created as a shorthand notation for the communication of mathematical procedures. It is easy to learn and easy to use because it was not designed to make things easier for the computer, but rather to make it easier for man to communicate with the computer.

The extensive use of symbols (or shapes) for company advertising purposes; for communication of information in public places; for traffic signs; etc., shows that our culture is a symbol-oriented and that people take easily to this use.

A number of APL symbols are already taught in every school as part of arithmetic and algebra. The additional ones are easy to learn and can be learned as needed. Thousands of students at the high school level and higher have already demonstrated that APL is easy to learn and can be used effectively in a short time.

Every higher order mathematical operation which can be performed by any large computer can be performed by an APL computer. The difference is that, with APL all of these operations can be performed conversationally while using the computer as a desk calculator. A series of keystrokes is entered, and an answer is immediately returned. If you type something that produces a machine error, the computer tells you exactly what the error was and where it occurred. APL error messages are so clear that any mistakes on your part become immediately apparent. In short, if you know how to use hand-held or desk calculators, you can begin to use an APL computer immediately. You can learn any number of primitive operations quickly by reading either the computer instruction manual or one of the standard books on APL.

Traditional application development usually requires much paperwork before any coding begins. While this is useful for many static application, which should be written from detailed specs, others can only be adequately planned through trial and discovery. Many, if not most, APL applications are written by creating a working framework (prototype) very early in the design cycle, and then by developing of additional versions with further improvements step by step. This is the concept of "throw away" code. The result is an application which more closely meets the needs of the user, allowing him/her to discover new and useful attributes of the applications when using it. In this way, APL helps not only during the coding period but during the design cycle as well.

APL is fascinating to use. It has sometimes been called addictive. A number of businessmen who were introduced to APL at a meeting were so turned on by the ability to do interesting and productive work in a very short time that they stayed up most of the night working at the terminals exploring their new found power! Experiences like these are commonplace and have changed attitudes about computers.

Who Uses APL?

APL is widely used in the United States, Canada and Western Europe. It is used by at least half the Fortune 500 industrial concerns. It is used in single departments in very small companies. It is provided as a centralized service in some companies and purchased from outside sources in others. APL applications cover the gamut of computer uses: business, scientific, accounting, engineering, education, actuarial, text processing, pension valuations, simulation, graphics, and many more.

Computers are programmed in APL by financial analysts, actuaries, business managers, clerks, administrative assistants, professional programmers, etc. The common bond among all users is that at last the computer has been made directly available to the end user, to enhance his/her own creativity without being bogged down with a list of computer details and restrictions.

APL encourages direct end-user involvement. In addition to being extremely powerful, APL is very easy to learn. The rules of the language allow non-programmers to create short working programs almost instantly, thereby providing immediate positive reinforcement. Together with the ability to create programs with English language names, this allows the end-user to become directly involved and reduces or eliminates the communication problem between the end-user and the professional programmer. In turn, this shortens turnaround and yields a more accurate representation of the user's needs.

    Dr. Alan Perlis, Director of Computer Science at Yale University, said in a recent presentation that APL was one of the few truly creative masterpieces of the computer world in the last 30 years. He also has said that he can cover three times as many concepts in his class time using APL as he could using other languages.

    When some of his students who have learned APL, but have not lived through the years of development of computer languages, are introduced to other languages, they wonder why anyone would use them, much less even invent them.

For teachers who want to get away from rote learning and use techniques that emphasize understanding and insight, APL is excellent. APL serves as a notation for both writing the algorithms of a discipline and then exploring the behavior of those algorithms via a computer (since the notation is also a program). Since APL is essentially system independent, a student runs into few computer architecture limitations or system limitations.
    APL has been adopted by the Graduate School of Management at UCLA as the standard computer language to be taught to all M.B.A. students. On other levels of education, APL is used in Public School systems such as Atlanta, Georgia. In this instance the application is to teach computing concepts and mathematics to grade schoolers.
APL allows a larger part of a project to be performed by one person. APL is an interactive, fast, powerful and terse computing language. Many more applications development projects can be carried out by a single programmer, rather than by a team. Thus, communications problems are avoided and other overhead costs (managerial, reports, meetings, etc.) are reduced. The end-user can learn just a small portion of the total APL (usually in only a few hours), and then he may add his own functions. He can then put these together into an interactive application. The building of these functions (most of them no more than five to ten APL lines) is much like the user's having his own tool-building kit so that he can design and build tools to meet his own needs.
    The quality control manager of one small company did his small-system programming while he was recovering from surgery. His installation paid for itself in just one application - by cutting the inventory cost to half of what it was using a manual method. This is the classic case of the end-user who learned enough APL to do his own programming. He did not have access to a professional programmer.
In addition to cost and time benefits that can come from the use of APL, another important if less tangible benefit is the increase in employee incentive, morale and job satisfaction which often accompanies access to APL. Employees gain a tool to help them do a better, more thorough job, and they expand their work and career horizons and possibilities. They have the satisfaction of control over their own data processing if they wish it, and a corresponding reduction in the frustration of not being able to get their own processing done when it is needed.
    APL is usually learned, not taught. Case after case has been told of people who picked up APL ability on their own, often after hours, often on "bootleg" projects which later became highly approved by management.
Due to APL's interactive nature and ease of use, it is ideal for many "what if" considerations and for re-thinking present jobs to see if there are better ways to do them.

There is a thrill of accomplishment which comes to persons who set out to learn to ride a bicycle, or skate, or hit a target, or master a particular kind of dive - when they actually accomplish that task.

That same thrill comes to the APL user who finds that it is possible to program a tedious job in a very short time; or to use a prepared application program which provides numbers and quickly makes a list or a plot or both; to type in text in a text-handling program which lets him quickly correct all mistakes and produces a finished document at high speed, with justification and paging and other features.

These accomplishments are partly due to the interactive nature of access to APL as compared to batch processing, partly to good application programs. You have to experience it to understand and appreciate it. APL users get this thrill from time to time as they use an APL system. This helps account for their enthusiasm for APL.

In addition to the missionary zeal of actual APL users to promote APL usage, there are other factors contributing to its growth. These include the availability of files with easy access, which make business applications with large databases practical; and the availability of hardware and software from an increasing number of vendors.

Much of the growth has taken place outside the standard DP installations. It indicates both a pent-up demand for computer assistance and the dissatisfaction of potential users with what they too often perceive as the inadequate cooperation, capability and procedures from these closed-shop operations.

    In 1970 a few time sharing services were offering APL. There are 30 or more which offer it in the U.S. today, plus others in Canada and Europe.
Some people run a computer completely dedicated to APL. Other mix APL and other languages and with batch operations. For example, the Atlanta Public School System uses APL and COBOL side by side. COBOL is used for routine batch input and output and file maintenance while APL is used on the same files for analysis.

Still others buy the economy of scale of a big computer from a time-sharing vendor. For example, it is possible to obtain a single terminal connection to an Amdahl 470 from S.T.S.C., Inc. Finally, you have small stand-alone machines like the SYSTEM 1000 from MCM Computers, the 5120 from IBM, Wycat, the IBM personal computer and many others.

A few uninformed people have made disparaging remarks about these machines as being too small and too slow to be useful. Like the proverbial bee, which continued to fly after some aerodynamic engineers proved that it couldn't, users have gone right ahead proving that their value is worth far more than their cost.

Some of the early MCM computers have gone into insurance companies for actuarial work. They have been reported to provide considerable savings compared to timesharing.

How Does APL Compare with other Languages

APL is a very concise language. It is normal for APL programs to have one-fifth as many instructions as programs written in other languages, and one-tenth to one-twentieth the number of instruction lines. Among the reasons for this is that APL is a symbolic language, and single symbols often replace multiple lines of code. Here is a simple comparison of a numerical sort in BASIC, FORTRAN, and APL:

BASICFORTRANAPL
 10 DIM X(100), (100)
 20 READ N
 30 FOR I =1 TO N
 40 READ X(I)
 50 NEXT I
 60 FOR I=1 TO N
 70 LET A=X(I)
 80 LET L=1
 90 FOR J=1 TO 10
100 IF A<X(J) THEN 130
110 LET A=X(J)
120 LETL=J
130 NEXT J
140 LET Y(I)=A
150 LET X(L)=1000000.
160 PRINT Y(I)
170 NEXT I
180 DATA
...
...
...
XXX END
   DIMENSION X(100),Y(100)
   READ(5,10) N,(X(I),I=1,N)
10 FORMAT (15/(F10.2))
   DO 20 I=1,N
   A=X(I)
   L=1
   DO 15 J=1,N
   IF(A-X(J))15,15,12
12 A=X(j)
   L=J
15 CONTINUE
   Y(I)=A
20 X(L)=100000.
   WRITE(6,30) (Y(I),I=1,N)
30 FORMAT(E15.2)
   END

In fact, the APL language has about 100 primitive symbolic functions. The ability to pre-store independently existing variables eliminates the need for creating them within a program. Also, APL permits many statements to be combined into a single line of code. Since fewer lines are coded, programming time decreases. More important, the modularity of APL encourages the generation of many small interdependent programs. As a result debugging time is decreased by approximately 50%. Since half of all programming time is devoted to debugging, the time saved is significant.

People who do not know APL may feel that it is not practical to learn the approximately 35 special shapes in the APL "vocabulary" which represent certain powerful primitive function. But only a few need be learned for any one application. And the ease of learning them is evidenced by the thousands of people from Junior High School student to non-computer professionals who have learned to use APL quickly and efficiently.

People who say that it is easier to program in COBOL than in APL omit to say that COBOL (and other computer languages) is complicated by computer-related restrictions and words reserved for special use, which in the case of COBOL amounts to a list of about 500 such words.

Some people believe that the ultimate goal is to program computers in English. However, experience to date shows that symbols may be better than English for specific cases of communication. For example, consider the programming and documentation of music. Can you imagine trying to write the score for Jingle Bells in words? "Three E's, the third one held twice as long as either of the other two; repeat; etc...!"

English (or any other language) has evolved over centuries as the best form of oral and written communication between people. But there are better ways for communicating between people and computers and the APL symbol set seems to be the most productive system yet devised.

    Professor H. M. Courtney, University of Texas at Arlington, has suggested that English (this applies to other languages too) is not always the best language for legal communication. He proposes that APL be used as a statutory language to supplement English when quantitative and logical relationships are involved.

    He suggests that "APL contains an exceedingly rich collection of primitive functions which might be adequate to express clearly and comprehensively legislative intent", (where quantitative and logical relationships are involved), and that APL be used to supplement the usual English language legal statements to provide clarity and brevity.

    A direct benefit from such a practice would be that the APL statements would also be an actual computer program which could be used to test whether the statements give the expected results from sample data.

Anyone who wishes can replace any or all of the APL primitive function symbols with words, quite easily. The simple algebra symbols would then become "Add", "Subtract", "Multiply", "Divide" (as in COBOL) instead of +, -, x, -. Counting keystrokes, the words take 25 versus only 4 for the sybmols. In this simple example, the symbols are six times as productive as the words, and this is about the ratio one often finds in comparing APL code against other language codes. The point is, in APL you can select your own level of verbosity, whereas it is preordained in other computer languages.

There have been many cases reported of a particular application which would not even have been started using traditional batch procedures because of the very long lead-time needed before any possible results could be demonstrated. APL, by reducing both total manpower resources and elapsed time, cna show feasible results in a time that is brief enough to encourage further development.

It is interesting to note that much of the success of the APL time-sharing services has resulted from helping people do jobs they could not get done conveniently through their own internal DP organization.

A common fallacy is that a manager, to protect himself, should only work with the traditional and well accepted languages such as FORTRAN, COBOL, and a few others. But DP managers who are really concerned about productivity and overall data processing costs will not want to stay with slower and most costly development and maintenance procedures when business management wants fast answers and APL can produce them more quickly and with less cost than other languages. As machine costs go down and labor costs go up, APL with its much faster programming time is an outstanding tool for reducing overall data processing costs.

    One of the vice-presidents of a major computer manufacturer, which is itself a large user of APL, says "APL is probably the single most productive tool we have for dealing with information required for the more dynamic forms of decision-making. We can come up with a rough draft of a needed application and submit it to the user for corrective comments within days or weeks. An urgent change in an application is usually implemented in hours. That means the system is timed to the dynamics of the business."

    Several people have reported that they can program first in APL and then reprogram into a compiler language and be ahead in both elapsed time and cost compared to doing the whole job in the compiler language.

In APL single function codes usually need less than one page or so; changes or new code are relatively easy to write. In other languages code usually runs to hundreds of lines and many pages; maintenance or new code will require considerably more time.

    Daniel D. McCracken, writing in the May 1976 Datamation Forum, indicated that the COBOL language could be improved with a few modest changes to the compilers. He also indicated that an obtainable goal for improving the productivity of COBOL programmers was as much as 30%. That would barely keep up with the cost of inflation.
Managers, instead of encouraging this relatively small increase in productivity should consider a change in languages; this could easily bring a gain of 300%, and order of magnitude greater, which seems to be the only way to get ahead of the inexorable rise in people costs.

Unlike COBOL, APL has the option of using a single character symbol or defining any desired name for the same function or a variation of it. APL can be as wordy as COBOL but COBOL cannot be made as concise as APL because it lacks the symbol set and the functions. This is one indication of the relative power and flexibility of the two languages.

    A PERT program comparison between ASSEMBLER, FORTRAN and APL showed the lines of code to be in the proportions of 25,000 to 10,000 to 750 and the man years of effort, 10 to 5.8 to 1.

    Atlantic Richfield Refinery was using remote job entry batch processing for engineering applications. When the engineers were introduced to APL, in less than one year they dropped FORTRAN and switched all work to APL. They estimate that APL takes about one tenth as many lines of code as FORTRAN.

    Dr. Fred Brooks in his book "The Mythical Man Month", says in regard to system programming, "I myself find it faster to work out algorithms in APL; then I translate these to PL/1 for matching to the system environment.".

Several people have written BASIC compilers in APL. The project takes about a week or two to write and debug. No one would try to write an APL interpreter in BASIC although some people have been adding APL-like functions to BASIC.
    A French center for Public Management Studies compared BASIC to APL and reported that APL took on fourth the programming time and one half the running cost.

    A computing service in England, in benchmark tests, found APL faster than compiled FORTRAN code for large matrix operations. They also reported that development time for APL was one third that for FORTRAN and that when using APL a ten-fold reduction in development costs was not unusual.

    Proprietary Computer System reports that IBM's ECAP (Electronic Circuit Analysis Program) is 7000 FORTRAN statements long and required 8 man-years to write and document. The equivalent APL program was developed on their APL system by a novice programmer in less than 6 week of part time effort, and it required less than 700 APL statements.

    The Manager of Interactive Programming Systems for one of the large mainframe manufacturers reports that some APL users in his company can be up to ten times as productive writing in APL as in FORTRAN. He also indicated that their APL interpreter is fast enough that reprogramming into FORTRAN does not provide enough of a saving to justify the reprogramming effort.

    Peter Redwood in his keynote address to APL76 in Ottawa said that Xerox has converted its financial planning computer use from FORTRAN to APL to provide much better response and flexiblilty.

    American Airlines started developing a financial model using a FORTRAN time sharing system. An informal parallel effort was started using APL in the evening. In just four days the APL model was showing preliminary results. By this time it was also clear that the APL version would operate at a fraction of the cost of the FORTRAN version. As a consequence, the whole project was switched to APL.

    At IBM, a major planning effort took 212 man-months for an elapsed time of 24 months and operated on a 35 day cycle when done in batch. In APL it took only 26 man-months, and elapsed time of 13 months, and now runs on a 12 day cycle. This nets out as a 6 to 1 advantage in programmer productivity for APL.

The Economics of Using APL

The question of cost should come, not at the sub-optimization level of a few lines of code, but rather at the total cost of data processing. A brief look at the total cost and the contributions of the two major factors helps to make the final decision.

One breakdown is that the total cost is made up of two factors: programming costs (mostly people costs) and running costs (mostly machine costs). Generally people costs are increasing and machine costs are decreasing. Therefore machine optimization costs have less effect than people optimization costs.

Some estimates now are that people costs may be as much as ten times the machine costs over the life of a computer program. In such a case, the entire removal of the machine cost can yeild no better than about 10% reduction in total cost, which is clearly impossible. However, it is possible to get a significant reduction in the programming cost.

Most managers know the costs of data processing but they do not know the total cost of each program over the life of its use. Studies of programming factors have given some very surprising results. Perhaps half the programs written are either one-shot programs or have a life that is very short: on the order of two to three months. These programs take only a few seconds of machine time to run. For these programs, the programming cost, including all compiling and debugging costs, can easily be ten times the running costs. Any machine optimization efforts for these programs are a sheer waste of resources.

Many programs become stable because they are impractical or even impossible to change. Their "stability" is then used as an argument against the need for change, much to the frustration of the operating personnel.

Machine costs during the batch development involve both compile- and run-time for each debugging cycle. This is considerably more than the corresponding APL interpreter run cost for each cycle or the even smaller individual line check possible using APL in calculator mode.

    In a recent benchmark test, a case was reported where identical answers were obtained from two time-sharing services for a standard regression application. The cost from the FORTRAN service was four times the cost from the service which was using APL.

"What advantage could APL have for some of these high-cost, low use programs? Assume $900 for programming cost and $100 for running cost in a non-APL setting. Now assume that APL takes more running time (not always true, but to be conservative 4 times). Let us say that machine cost stays unchanged per cycle (during a given and surely short period of time). Assume, also very conservatively, that during the same time, programming unit cost stays itself unchanged. As APL takes (very conservatively) one-third of the time to write (compared to the non-Apl shop) the programming cost will go down to as much as $300. The new total cost is now only $700 (300+400):a saving of 30% versus the original cost of $1000.

If we consider now these costs on a longer period of time... it's more likely to have the running unit cost reduced by a factor of 2 and the programming unit cost doubled, the new total will then be, considering both the technical and the economical factors, $800 (300x2 + 400/2). This is still 20% less than the original figure, a significant saving.

But to be fair, we have to compare this $800 with the cost which should be considered at the same time when programming or reprogramming (if necessary) using the original or similar technology... then the $800 should be compared to $1850 (2x$900 + $100/2).... Which represents a quite different portrait... a saving of more than 50%."

Why Not Get Into The APL Swing?

There is a series of myths associated with APL which have been offered as reasons for not using the language. They are worth discussing and putting to rest.

APL is not readily available
FALSE: APL is readily available for most mainframes; from many service bureaus in Canada, Europe and all over the United States; on a variety of terminals; from a single station desktop sized machine through small, medium and large computers.

APL processing is much slower than compiled code
FALSE: APL operating speed is fairly comparable to compiled code speeds and it can even be faster in some cases. It also depends on how often the program is changed and how often the program is run. Microcode assist in some machines has provided a significant speed addition.

APL is mathematical and not for business
FALSE: Business applications include arithmetic for calculations, formatting for output, numbers and words for data. APL provides as many or as few mathematical symbols as the user desires. APL programs can be written in English so they are as wordy as COBOL or they can be written in APL symbols which allow programs as small as one-tenth the length of the service companies specializing in APL, which evidences its applicability to business, estimates that over 80 percent of its revenues are derived from business applications.

APL has no files and the working area is too small to be useful in a business environment
FALSE: APL now has plenty of file access capability, and can easily work with files maintained in another language. APL workspaces can hold up to 12 to 16 million bytes, if that much is really needed.

APL is too complicated to learn
FALSE: APL has been learned quickly and effectively by junior and senior high school students as well as by adults, including many non-computing professionals.

APL requires too big an investment to start using
FALSE: A single terminal installation from a time-sharing company is an inexpensive way to start. Anyone of half a dozen well known desktop computers, modified for APL, do not require a big investment for starting with APL in a meaningful way.

There are very few application packages available
FALSE: Time sharing services have extensive libraries of very practical programs available to all their users with very little training. IBM is increasing its application packages. Many people feel that they can write their own specific programs, or get consultants to write them since APL programs can be written and modified very quickly.

APL is not widely known
FALSE: APL conferences have been held every year since 1969. APL is growing rapidly in Europe as well as in the United States because it is symbol oriented and therefore crosses international boundaries.

APL does not have structured programming
FALSE: If you really want to write a 'Do-while' and 'If-then-else'. etc., there are several simple APL functions which can be written with this 'approved' technology. The real question is whether they are even needed when programming in APL. Structured programming was invented to solve a very serious communication and documentation problem when large groups of people were writing programs which ran in the thousands of lines of code. APL, in which the code is much shorter, requiring much fewer people, doesn't have the same problem.

APL programs are harder to read than programs written in other languages
FALSE: APL programs can be written clearly or obscurely, as in any other language. There have been poorly documented procedures ever since data processing started. They are the product of poorly organized people, not of the languages. Since APL programs can be written so quickly, people have far more time left to provide good documentation. Admittedly, if you do not know the relatively small APL vocabulary (symbols), you can not read the actual code. The same applies to reading any language, including English. But other computer languages are meaningless without the knowledge of the extensive procedures which govern their operation. The appearance of readability is misleading.

APL is too complicated for managers to learn
IRRELEVANT: Managers should spend their time doing what they do best - managing. They should provide their assistants with the best possible tools so that the managers can have the best information as quickly as possible - and APL is one of those tools.

Programming groups will be put out of work if everyone can do his or her own work
FALSE: They will become smaller and more efficient. Programming groups are service organizations. They grew up because programming languages and techniques became too complicated for non-professionals to use. If the programming language is simple, as APL is, in many cases the user can quickly learn to program his or her own problems. It is often better for the person who has the problem to program it rather than turn it over with explanations to a systems analyst, who then turns it over to a programmer, neither of whom really understands the user's work or viewpoint. In the case of large systems and data handling projects, it will pay to have professionals do the actual programming, and then turn the system over to the users to run.

DP managers will lose control if 'everybody' does his or her own thing by having individual access to computers
FALSE: This is just an excuse for poor managing. A user should be in control of his or her own data. With APL, the end-user has a chance to be in control again. The end-user's manager should control cost and value relationships. DP management should have centralized control at the top operating level, particularly when it comes to overall database management.

Why don't more people consider changing languages? One answer is that most people were only trained in one language. They therefore have difficulty in comparing good and bad features of languages, they cannot adequately evaluate advantages and disadvantages of compilers vs. interpreters, symbol sets, syntax, structure, control, etc.

Another answer, often given, is that they have too much money already invested in programs. This is fallacious, for as mentioned above, probably half or more of all their programs have long since been discarded anyway, and maintenance on the rest may be taking as much as 80% of the programming budget. Here again APL can be effective since much program maintenance in APL can often be done in minutes or hours, and certainly several times faster than in other languages.

    In a recent paper, Professor McLean of the Graduate School of Business at UCLA even suggests that it may be cheaper to throw away the old code and do exactly what is needed today, rather than to try to convert the old to the new.


SIGAPL

Last Update: August 28, 2001
For questions, problems, or comments regarding this website, please send email to:infodir_sigapl@acm.org