https://ed-thelen.org/comp-hist/APL-hist.html
return to home
a little on APL
Table of Contents:
- A PERSONAL HISTORY OF APL by Michael S. Montalbano
- a few comments by Curtis A. Jones, Apr 17, 2013
+----------------------------------------------------------------------------+
| |
| October 1982 |
| TR-03.214 |
| |
| A PERSONAL HISTORY OF APL |
| |
| |
| by |
| Michael S. Montalbano |
| |
| International Business Machines Corporation |
| General Products Division |
| Santa Teresa Laboratory |
| San Jose, California |
| |
| ---------------------------------- |
| |
| A PERSONAL HISTORY OF APL |
| |
| Introduction |
| |
| I have several reasons for calling this talk a personal history. |
| |
| For one, I want to make it clear that the opinions I express are my |
| own: they are not the opinions of my employer or of any other |
| organization, group or person. If you agree with them, I am happy to |
| have your concurrence: if you disagree, I'd be happy to defend them. |
| In any event, the praise, blame or indifference my views may inspire |
| in you should be directed to me and to no one else. |
| |
| What I plan to discuss are things I have done, seen or experienced at |
| first hand. Thus, this talk is merely an opinionated collection of |
| anecdotes. I want to emphasize this from the outset: it is my second |
| reason for calling this a personal history. But my most important |
| reason is that I feel strongly that we need a good, thoughtful, |
| accurate history both of APL and of computing itself. While I'd be |
| flattered to have this account included as part of that history, I |
| don't want anyone to mistake it t as an attempt at the real thing. |
| |
| The Importance of History |
| |
| We neglect history at our peril. The truly incredible growth of |
| digital computer technology has transformed our world almost |
| overnight. This transformation is not only continuing, it is |
| accelerating. It gives every promise of continuing to change our |
| institutions and the circumstances of our daily lives at a faster and |
| faster rate. If we are ever to understand where we're going, it's |
| important that we take a long, careful look at where we've been, |
| where we are, and how we got from there to here. If we don't do this, |
| we won't be able to control events; they will control us. As far as |
| I'm concerned, that's what's happening right now; a runaway |
| technology has us at its mercy because we have not developed |
| techniques to understand and control it. |
| |
| H. G. Wells described human history as a race between education and |
| catastrophe. This observation is more pertinent today than it ever |
| has been in the past. But, in the specific case of the proliferation |
| of stored-program digital computers, the education-catastrophe race, |
| in my opinion, takes a particular form: it is a race between |
| technology and methodology, between gadgets and ideas. |
| |
| We are developing gadgets at an explosive, accelerating, self-fueling |
| rate we shall be swamped by these gadgets if we don't hasten to |
| develop and apply the ideas we need to control them. |
| |
| To me, this need defines the importance and the mission of APL. APL |
| provides the best set of gadget-understanding and gadget-controlling |
| ideas currently available. Looking to the future, it provides the |
| best base for the methodology we must develop if we are ever to bring |
| our gadget-based technology under control. |
| |
| This opinion is based on experience. I was working with computers |
| when they were merely gleams in the eyes of the early designers: I |
| was working with APL when it was nothing but a collection of |
| incomprehensible characters scattered through publications with |
| catchy titles like: The Description of Finite Sequential Processes. |
| In other words, I've been working with both computers and APL since |
| their very early days. And, in looking back on this experience of |
| just over 34 years, (which is my own personal experience of |
| computing), I find that it can best be summarized in n terms of two |
| key ideas: |
| |
| * The stored-program idea: the idea that a procedure or algorithm |
| can be stored as a collection of switch settings in exactly the |
| same way as the data on which the procedure is to work and, as a |
| consequence, that executing such a stored procedure consists of |
| starting it and letting it flip switches until it is done. This |
| was apparently first stated explicitly in n a paper drafted by |
| John yon Neumann in n 1945. ^1 |
| |
| * The efficient-notation idea: the idea that these vast collections |
| of switches, changing their settings in thousandths, millionths, |
| billionths, trillionths,... of a second, would be pretty hard to |
| manage if we didn't develop a good way to describe them and think |
| about them. I don't know whether this idea was ever presented |
| anywhere in just these terms. Instead, it seemed to be implicit |
| in the activities and writings of many people. But, in my |
| opinion, it received its most effective and fruitful expression |
| in the writings of Kenneth Iverson and others who followed his |
| lead. The most important publication expounding this idea is the |
| book from whose title the letters APL derive their significance.^ |
| 2 |
| |
| The stored-program idea provided, and continues to provide, the basis |
| for our current runaway technology. The efficient-notation idea, if |
| we take it seriously and do a lot of thinking and hard work, will |
| help us curb the runaway and direct it t into fruitful and productive |
| channels. |
| |
| You may find this brief summary of computing history controversial. I |
| hope so. We need vigorous, informed, philosophical controversy. And, |
| as a contribution to this controversy, let me state some of my other |
| biases in n as controversial a manner as I can. |
| |
| Biases of an APL Bigot |
| |
| There exists a growing class of people, of which I am happy to |
| consider myself a member, who are called "APL bigots" by friends and |
| foes alike. The friends use the term affectionately; the others do |
| not. |
| |
| The bigotry consists in believing that APL is the way computing |
| should be done. I think it's fair to say that no one can properly be |
| called an APL bigot who doesn't believe this. |
| |
| In one respect, my bigotry may not be as great as that of the general |
| run. I believe that APL and assembler language are the way computing |
| should be done. To this extent, I am held suspect by true APL |
| evangelicals. |
| |
| In another respect, my bigotry is so much greater than theirs that, |
| now that I am making it t known, I fear I may be excommunicated as a |
| schismatic. I believe that, important as APL is in computing, it is |
| even more important as an instrument for rationalizing the management |
| process. |
| |
| Modern management is in trouble. Don't take my word for it. Read the |
| daily papers, the weekly newsmagazines and the flood of books and |
| articles that describe management's difficulties and offer cures. |
| Some of these, of course, assert that Japanese management is an |
| exception to the general rule; the cure these people offer to |
| nonJapanese management is to learn from the Japanese how to do it |
| right. |
| |
| I don't believe this. I believe Japanese management is in as much |
| trouble as any other. Its current successes are no indication that |
| its management isn't afflicted by the same difficulty as the |
| management of organizations anywhere else in the world. Expressed |
| simply, this difficulty is: |
| Nobody knows what's going on. |
| |
| Your reaction to this assertion may be emotional. You may believe |
| it passionately or reject it passionately. If you have either of |
| these reactions, you may not have understood what I said, so I'll |
| repeat it: |
| |
| The problems of modern management are primarily attributable |
| to one cause: |
| |
| Nobody knows what's going on. |
| |
| So there you have it: the basic message that motivates this talk: |
| + Management's primary difficulty is that it has no good way to |
| describe its processes and thus develop objective means to |
| correct or improve them. |
| |
| + Other fields have faced this problem in the past. The ones |
| that have solved it most effectively are those that have |
| developed a notation appropriate to their subject matter. The |
| most conspicuously successful examples of notations that have |
| virtually created the fields they describe are, of 'course, |
| the specialized symbologies of the so-called "hard sciences". |
| |
| + The workings of management can be expressed as extensive, |
| intricate digital procedures. These procedures cannot be |
| designed, analyzed or described effectively without a |
| notation specifically designed for the purpose. |
| |
| + APL is such a notation. |
| There are, of course, many other important difficulties that |
| management faces: obsolescent plant, intensified competition, |
| environmental concerns, employee morale, strained labor |
| relations, residues of past mismanagement (reflected in such |
| things as excessive debt, inadequate capital, incompetents in key |
| positions,...) and so on. But these difficulties are made |
| unmanageable by our inability to describe-them in a way that |
| promotes insight and facilitates communication. |
| |
| Clearly, in expressing this opinion, I am swimming against the |
| tide. The widespread current belief is that we are experiencing |
| an "information explosion". How can I accuse management of being |
| inadequately informed when virtually everyone else says that they |
| are overinformed? How can I say that management doesn't have |
| enough information when everyone else says they have so much |
| information that they are swamped by it? |
| |
| Let me be blunt: I think the "information explosion" is a myth. I |
| do not deny-- how can anyone deny?--that we are generating vast |
| quantities of paper, tapes, disks, etc., with optical or magnetic |
| symbols recorded on their surfaces. What I am denying is that |
| these recorded symbols, in themselves, are information. They are |
| not. They become information only if, as a minimum: |
| |
| They are accurately calculated. |
| |
| They present a true picture of reality. |
| |
| They are understood by the person to whom they are presented. |
| |
| Of these three conditions, only the first stands a better than |
| even chance of being satisfied. For the purposes of effective |
| management, all too much recorded data does not present a true |
| picture of reality and is not understood by the person it is |
| supposed to inform. |
| |
| What does this all have to do with APL? Let me answer by |
| recounting the pre-APL experiences (at the U. S. National Bureau |
| of Standards, the U. S. Naval Research Laboratory, and the Kaiser |
| Steel Corporation) that convinced me that the computing field |
| needed, more than anything else, an efficient notation for |
| describing digital procedures. Then let me follow up with the |
| post-APL experiences (at IBM and Stanford) that convinced me that |
| APL was the notation we needed. |
| |
| The U. S. National Bureau of Standards, 1948-1952 |
| |
| I started to work in May, 1948 as a mathematician in the Applied |
| Mathematics Laboratories of the National Bureau of Standards in |
| Washington, D. C. I was given a job description which, like every |
| other one I have ever had, bore no relation whatsoever to what I |
| actually did. My first assignment was to program a division |
| subroutine for the UNIVAC. The UNIVAC that was then being |
| designed by the Eckert-Mauchly Corporation could add, subtract |
| and multiply but it could not divide. (Division was added later. |
| The list of computer instructions or "order codes", to use the |
| terminology of the times, was updated and given an identifying |
| C-number as the UNIVAC's design progressed. If my memory's not |
| playing me tricks, the- order-code 1 list list that was current |
| when I started work was C-7. ) |
| |
| I was given a description of the UNIVAC. It described acoustic |
| delay lines, excess-three notation and end-around carry. I had |
| the feeling that I was entering a dark, eerie world in which |
| words would be used as charms and incantations rather than to |
| communicate definite meanings. I was right. |
| |
| I was surprised that no one took the trouble to show me the |
| UNIVAC for which I was to program division. After a few days I |
| learned why. The machine described so confidently and completely |
| in the literature that I had been given had not yet been built. |
| (The first UNIVAC was not delivered until three years later. But |
| at least it was delivered. Our group spent a lot of time |
| programming what were then called "feasibility tests" for a lot |
| of machines that never got off the drawing boards.) |
| |
| Programming for nonexistent machines started to pall after a few |
| months. Our group had punched-card equipment (including the 602 |
| calculating punch) with which we calculated mathematical tables. |
| I switched to this activity at just about the time the Office of |
| the Air Comptroller asked the Bureau of Standards for assistance |
| in using electromechanical (later electronic) equipment to |
| calculate Air Force budgets. With the procedures then in use, it |
| was taking eighteen months to prepare a-yearly budget. There was |
| general agreement that this was not satisfactory. |
| |
| I was assigned the task of getting budget computation mechanized |
| under the direction of George Dantzig, who was in charge of the |
| Air Force budget project. His job was to devise the calculations |
| we were required to perform, that is, he told me what was needed. |
| I wired the plugboards and, later, wrote the programs that gave |
| him what he specified. |
| |
| The original calculations were called "triangular model" |
| calculations (I understand they were given the acronym TRIM after |
| I left the project.) The later calculations were solutions of |
| linear-programming problems, applying the simplex technique that |
| George Dantzig originated. The name of the Air Force project, |
| SCOOP, (Scientific Computation Of Optimum Programs), like TRIM, |
| suggests that wherever a computer goes an acronym's sure to |
| follow. |
| |
| I programmed the triangular-model calculations for the 602, the |
| 602A, the 604 (the electronic calculating punch) and was about to |
| program them for the CPC (the Card-Programmed Calculator) when |
| the SEAC became available and I switched back to programming |
| instead of plugboard wiring. |
| |
| The SEAC (National Bureau of Standards Eastern Automatic |
| Computer) was the first stored-program digital computer to |
| operate successfully in the United States. (The first |
| stored-program computer to run successfully anywhere in the world |
| was the EDSAC, designed and built by the University Mathematical |
| Laboratory at Cambridge, England.) I introduce this information |
| here because, computing history being what it is, it does not |
| seem to be available anywhere else. |
| |
| Of the many memories and ideas derived from my four years at the |
| Bureau of Standards, three are relevant to our present purpose: |
| 1. I learned to be cautious about how I used the solutions of |
| large systems of equations with uncertain coefficients. I |
| believe the triangular model is an extremely effective, and |
| neglected, tool for a large class of planning problems. But, |
| if the coefficients used in its equations have a large |
| measure of variability or uncertainty, you must use its |
| answers with caution. |
| |
| 2. I learned how desperately we needed a good notation for |
| describing algorithms. I sat through many presentations and |
| discussions of solution techniques for linear programming |
| problems. These presentations were largely chalk dust and |
| arm-waving. The essential ideas, which are extremely simple |
| once they are understood, were obscured rather than |
| illuminated by the terminology and notation used to describe |
| them-. |
| |
| 3. 1 learned that gadget development was outstripping idea |
| development and would continue to do so unless we did |
| something about it. I suggested that we do something about |
| it. My management was receptive to the idea (or told me it |
| was) but said there was no money in the budget for idea |
| development. That, of course, was the problem. It has been |
| the problem ever since. This failure on the part of my |
| management to fight for research in ideas was one of the |
| reasons I left the Bureau. |
| |
| U. S. Naval Research Laboratory, 1952-1954 |
| |
| At the Naval Research Laboratory, I became part of an |
| interdisciplinary team applying the latest operations-research |
| techniques to the development of man-machine systems.] |
| |
| Brave words. |
| |
| The "disciplines" included physics, mathematics, philosophy, |
| sociology, various brands of psychology, naval science |
| (represented by officers in the United States Navy), and I don't |
| know what all. |
| |
| Our tasks were the obvious ones: develop ways to make naval |
| operations more efficient by incorporating new gadgets into |
| systems that used them to best advantage. A typical assignment |
| might be either general, for example design of a combat |
| information center for a ship, a task force, or a shore-based |
| control center or specific, for example, taking a new weapon, |
| like a homing torpedo to be fired from the deck of a ship into |
| the water near a distant submarine, and deciding how best to |
| incorporate it into a system including a ship, sensing devices, |
| communicating devices, and other weapons. |
| |
| I learned many things during my two years at the Naval Research |
| Laboratory (among them that clinical and experimental |
| psychologists tend to despise each other) but for our present |
| purposes the most important things I learned were: |
| |
| + It's hard to plan effectively for a future you can't predict. |
| |
| + No numbers are frequently better than some numbers. |
| |
| + Nobody knows what's going on.^3 |
| |
| Predicting the future is, of course, particularly difficult for |
| the military since a future requiring military action is apt to |
| be precipitated by some catastrophic event. I attempted to |
| develop techniques for dealing with this by first describing the |
| three states in which the Navy might have to operate: |
| |
| + The peacetime state. |
| |
| + The transition state from peace to war immediately after |
| hostilities have commenced. |
| |
| + The wartime state. |
| and then describing the transformations required to convert from |
| one state to the other in n the most efficient way possible. |
| |
| I didn't get very far with this, but, if I had the responsibility |
| for con contingency planning for any organization, civil or |
| military, I would return to the three-state model I started to |
| develop for the Navy and build on it. |
| |
| And, again, I would need an efficient notation. |
| |
| It was during the time I worked at the Naval Research Laboratory |
| that I first became aware of the ease with which people can |
| deceive themselves with meaningless figures. This is not a |
| criticism of the Navy. It is a criticism of virtually all modern |
| management. |
| |
| You are much better off with no numbers than meaningless ones.. |
| The minute you believe numbers uncritically, that is, without |
| understanding how they're calculated and how well they measure |
| whatever they're supposed to measure, you will generate a breed |
| of employee who will produce numbers and not results. Your |
| data-processing system will then serve not to describe reality |
| but to lie about it. |
| |
| Kaiser Steel Corporation, 1954-1961 |
| |
| I started with Kaiser Steel as a mathematician, a new kind of |
| employee requiring a new job description. I started in the |
| Fontana Procedures Department of the Controller's Division. The |
| Industrial Engineering Department (which was in the Operations |
| Division and thus always in a kind of uneasy rivalry with the |
| Procedures Department) had the responsibility for administering |
| job descriptions. I learned later that the one we filed threw |
| them into a tizzy; they felt it was another sinister move on the |
| part of the Controller's Division to take over the work they were |
| supposed to do. |
| |
| I left Kaiser Steel, not quite seven years later, as Director of |
| Research and Computer Planning. |
| |
| In the interim, I learned about iron and steelmaking both at |
| Kaiser and, through industry association meetings and literature, |
| at other American and Canadian steel plants. I learned about |
| other industries by participation in the activities of |
| cross-industry associations. By the time I left Kaiser Steel, I |
| had had several years in which to observe management in action. |
| The comments I've been making, which you may have regarded as |
| flippancies, are honest descriptions of what I observed. |
| |
| Consider some examples. They are from Kaiser Steel, because that |
| is where I worked, but I can testify that they are representative |
| of all management. |
| |
| Precision Rounds. At the time I was there, Kaiser Steel |
| manufactured an alloy steel product called "precision" rounds |
| because the diameters had to be controlled to very close |
| tolerances. There were two schools of thought about the place of |
| precision rounds in our product line. One school held that it was |
| the most profitable product we made. The other said we were |
| losing our shirts on it. |
| |
| How could this be? Couldn't our cost accountants tell us whether |
| we were making money or losing money? |
| |
| The answer is: no, they couldn't. Two different groups, working |
| off the same set of figures, reached diametrically opposite |
| conclusions. This was the first of many experiences (including |
| attendance at a Stanford gathering of the most prestigious |
| accounting firms in the world) that led me to the conclusion that |
| most cost accounting is applied metaphysics of an extremely |
| ethereal kind. Counting angels on the head of a pin is a useful |
| exercise in data-gathering compared to much cost accounting. |
| |
| The problem was, as it always is, the basic data with with which |
| we had to work. Rounds of any kind had to go through a finishing |
| operation. Scheduling finishing operations and describing what |
| took place was one of the most difficult tasks in the mill. |
| Production figures out of the finishing operation were always |
| suspect. The difference between the two schools derived primarily |
| from the different ways they interpreted those figures. At least, |
| that's the best explanation I was ever given. |
| |
| Tin Mill Flippers. We installed a management incentive plan at |
| Kaiser Steel while I was there. The incentive plan for the tin |
| mill was delayed for a while until we straightened out a rather |
| embarrassing problem that cast doubts on the accuracy of our tin |
| mill production recording. We were reporting more tin plate |
| coming out of our shears than we put into them. |
| |
| Management was understandably hesitant about paying performance |
| incentives on figures that were so obviously, stupidly wrong. |
| |
| The difficulty arose from the way we processed rejects. As the |
| sheared plate went by an inspection station, it was examined for |
| pinholes, surface blemishes and other defects. When a defect was |
| detected, the inspector pressed a button that switched the faulty |
| plate to a reject pile. Unfortunately, a few plates before and |
| after the bad one were also diverted to the reject pile. These |
| were usually prime plates that we could not afford to sell at |
| secondary prices. |
| |
| The prime plates in the reject piles were separated from the true |
| rejects by a group of women called "tin mill flippers". They |
| worked at large tables, examining the plated surfaces carefully |
| and separating the plates into prime and secondary piles. The |
| difficulty arose here. Because of the way reporting was done, |
| some of the plates were counted more than once. |
| |
| We caught this bad data because it was so obvious. A shear can't |
| produce tin plate; it can only cut it. To shear more tin than you |
| were given was clearly impossible. |
| |
| But, of course, this kind of mistake indicated just the tip of |
| the iceberg. The errors that weren't so obvious weren't caught |
| and corrected. And they existed, let me assure you of that. Even |
| worse, they were almost certainly manipulated by people who were |
| better at doctoring figures than at making steel. |
| |
| Slab Inventories. Steel ingots are broken down into blooms if |
| they are to be processed into products like H-beams, I-Beams and |
| the like and into slabs if they are to be processed into hot or |
| cold-reduced product like sheet and strip. Our biggest |
| semi-finished inventory at Kaiser Steel was in slabs; we had |
| between 80,000 and 100,000 tons scattered in piles over wide |
| areas of the mill grounds. |
| |
| Slabs are big, heavy chunks of steel. You'd think it would be |
| hard to lose one. It's not. It happens every day. Although I've |
| been out of the steel industry for more than twenty years, years |
| in which we've landed men on the moon, I'm willing to bet that |
| right now, somewhere in the world, a rolling mill is idle because |
| it's waiting for a slab that's sitting on the ground not too far |
| away. |
| |
| My reason for discussing these examples is to illustrate the |
| complexity of the activities we are trying to manage. This |
| particular example, as it happens, also shows how quick |
| management is to seek a technological rather than a |
| methodological solution. |
| |
| There are many reasons why, despite the existence of a huge slab |
| inventory, a rolling mill has to wait until the slabs it needs |
| are found. The problem as a whole is a complex one and does not |
| lend itself to quick-fix solutions. But a technological quick-fix |
| for part of the problem was proposed and, after I had left the |
| company, bought and installed. It was a costly failure. |
| |
| At the risk of teaching you more about steelmaking than you ever |
| wanted to know, let me describe this attempt to solve a |
| methodological problem by technological gadgeteering. |
| |
| The steel produced by one open-hearth melt is called a heat. A |
| major part of a slab's identification is its heat number. Since |
| the process of producing slabs from ingots usually grinds |
| impurities into some of their surfaces, the slabs making up a |
| heat had to be distributed among areas called scarfing bays where |
| men with oxyacetylene torches would burn out the impurities. The |
| slabs then had to be reassembled into a heat; the heat had to be |
| deposited somewhere in the slab yard; and the heat number and |
| slab-yard location had to be reported to the production |
| schedulers. |
| |
| The existence of surface impurities that required scarfing thus |
| caused much of the delay and confusion that attended the |
| progression of the heat from the slab mill to the reduction mill. |
| The technological solution proposed for this problem was called a |
| "hot scarfer". It burnt off all the surface of a slab immediately |
| after it was reduced to its final dimensions. This was supposed |
| to eliminate the need for splitting a heat up into scarfing bays. |
| |
| Thus, at this point, management had a choice: |
| |
| 1. Methodological. Put in the time, effort and money it would |
| take to develop a satisfactory, realistic scheduling and |
| inventory control system for slabs. This would necessarily |
| require investigation of all the many sources of difficulty, |
| not just the kind of difficulty that the hot scarfer was |
| supposed to eliminate. |
| |
| 2. Technological. Buy a hot scarfer and hope the slab scheduling |
| and inventory problem would go away. |
| |
| No contest. The lure of the tangible, glamorous gadget always |
| wins out over the intangible, colorless idea. They got a hot |
| scarfer. I say "they" because this was done after I left; I am |
| happy to say that I had no part in the decision. To the best of |
| my knowledge, the hot scarfer never worked satisfactorily. It is |
| one item of evidence justifying my belief that technological |
| quick-fixes seldom achieve their objectives. (This, incidentally, |
| is even more true for data processing than it is for |
| steelmaking.) In this particular instance, the gadget was |
| expensive to purchase and to operate, it burnt off good steel as |
| well as surface impurities, and did not do what it was purchased |
| to do: reduce wait-for-steel time in the mills that used slabs as |
| inputs. |
| |
| What does all this steelmaking jargon have to do with APL? |
| |
| In all of my computer experience, I have found that the chief |
| obstacle to getting anything done is the absence of any clear, |
| concise, precise, formally manageable way to describe and analyze |
| what we're actually doing and to describe and design a |
| transformation to what we should be doing. |
| |
| I gave several talks on this topic at professional meetings of |
| various kinds. (I later used the written form of these talks, and |
| other papers I wrote during my employment at Kaiser Steel, as |
| class notes in the Business Information Systems classes I taught |
| at the Stanford Graduate School of Business.) One of the earliest |
| of the talks, "Formalizing Business Problems", was given at the |
| first Electronic Business Systems Conference held in Los Angeles |
| in 1955. This aroused the interest of Murray Lesser, at what was |
| then the newly established IBM facility scattered throughout |
| several locations in downtown San Jose (the one that developed |
| into the General Products Division in which I now work). We met |
| to discuss what we could do to develop some of the ideas we had |
| in common. |
| |
| The result of our discussions was a joint venture, called the |
| Business Language Research Project, in which employees of IBM, |
| Kaiser Steel and Touche, Niven, Bailey and Smart participated. My |
| contribution to the project was something I called |
| "field-and-branch identification" which I later developed into |
| the approach to systematic systems analysis that I describe in my |
| book on decision tables.^4 I will discuss this more fully later. |
| |
| Lest I leave you with the impression that nothing effective can |
| be done about the data-processing problems of industry, let me |
| assure you that this is not the case. Among the accomplishments |
| of which I'm proudest are some of systems I installed at Kaiser |
| Steel. At least one of them, a tin-mill in-process inventory and |
| production recording system impressed the phone company so much |
| that, since we were using some of their equipment to record |
| production and to communicate between processing points, they ran |
| an ad in the Wall Street Journal featuring a picture of our tin |
| mill and describing our system as an example of what could be |
| achieved if you called in their Production Recording Consultant. |
| We never had the benefit of a Production Recording Consultant's |
| services because the phone company never told us they had one. |
| Maybe he was made available to some of the people who read the |
| ad. |
| |
| So things can get done. But getting them done is slower, more |
| difficult and more costly than it has to be. That is why we have |
| the application programming backlogs that we do. We need a |
| better, more systematic way of dealing with complex digital |
| procedures. |
| |
| We need systematic systems analysis. |
| |
| Now do you see the connection with APL? |
| |
| IBM, 1961- |
| |
| I started to work for IBM in the Advanced Systems Development |
| Division, San Jose. I have since worked in the Palo Alto |
| Scientific Center, the Palo Alto Systems Center and the Santa |
| Teresa Laboratory, where I am now in APL Development. |
| |
| At the time I started my IBM employment, the ASDD library used to |
| circulate a daily list of its acquisitions to all employees. I am |
| a kind of pack rat when it comes to written material and I |
| acquired all kinds of library offerings that, I'm sorry to |
| report, I never took time to read. Among the publications that I |
| thus acquired, scanned, and filed for future reference were |
| several reports containing a strange, exotic notation. I was |
| skeptical about the value of these reports since, by that time, I |
| not only had my own ideas as to what was needed but I had also |
| seen many attempts by many people to develop notations, charting |
| techniques, and other descriptive schemes. I didn't think much of |
| any of them. By and large, history seems to have agreed with me; |
| most of them are happily forgotten. |
| |
| However, when I learned that the author of several of the papers |
| full of Greek letters, slashes, little circles, curlicues, and |
| other cabalistic symbols was coming out to San Jose to talk about |
| his ideas, I decided that I'd read one or two of his papers as a |
| preparation for his talk. |
| |
| My life hasn't been the same since. |
| |
| My first acquaintance with the notation that has since become APL |
| (for several years it was either "Iverson Language", "Iverson |
| Notation", or just plain "Iverson") started with an IBM Research |
| Report by Kenneth Iver- son called, The Description of Finite |
| Sequential Processes. |
| |
| I don't have the paper handy at the moment so what I'm about to |
| tell you is all memory; it may be mistaken in details but not in |
| essence. I seem to remember that the first page was mostly given |
| over to heading material, possibly an abstract, so that there |
| were only two short columns of reading matter on it. And, again |
| memory, it took me several hours to understand what those two |
| short columns were all about. |
| |
| The author's approach was so different from anything I'd ever |
| encountered that I had a difficult time adjusting to his frame of |
| reference. At the end of the first page, a fair assessment of my |
| state of mind would be that I had glimmerings but no hope. |
| |
| The second page took about as much reading time as the first but, |
| since it had twice as much matter, I was clearly improving. The |
| glimmerings were now fitful gleams. One thing had definitely |
| chanced, however. I had no doubts about the value of what I was |
| reading. I was now virtually certain that the author had |
| something to say and that I'd better find out what it was. The |
| third page had an illustration that, in a few short lines, |
| described George Dantzig's simplex algorithm simply and |
| precisely. |
| |
| That was the overwhelming, crucial experience. |
| |
| In the previous thirteen years, I had participated in so many |
| murky discussions of what was here presented with crystal clarity |
| that I knew that what I was reading was of enormous significance |
| to the future of computing. |
| |
| So, when Dr. Kenneth Iverson came out to talk to us at San Jose, |
| I was not only a convert, I had a fair idea of what he had to |
| say. In the upshot, this meant that I was the only one who could |
| ask him questions. Ken had some good, sharp people from Research |
| and Advanced Systems Development in his audience but I'm pretty |
| sure I was the only one who had been lucky enough to read what he |
| had to say beforehand so that I had a fighting chance to follow |
| him when he did what he usually does: hit you with one idea after |
| another so fast that your mind goes numb. |
| |
| I had been alerted to the fact that Ken might know what he was |
| talking about by a fellow employee named Don Fisher who was |
| working in the same group that I was. After Ken's talk, he came |
| to visit Don and I got a chance to meet him. It's hard to believe |
| that that first meeting took place more than twenty years ago. |
| But it's true. I've been an APL bigot for a long, long |
| time--since before there was an APL, in fact. |
| |
| Stanford, 1962-1967? |
| |
| Shortly after I went to work for IBM, Dan Teichroew, a friend of |
| mine from the Bureau of Standards days, asked if I would be |
| interested in spending part of my time at Stanford, participating |
| in a study of "Quantititative Management Techniques" being |
| conducted at the Graduate School of Business. Dan was a Professor |
| of Management at the GSB and he wanted my permission to approach |
| IBM about the idea. Naturally I was delighted by his proposal and |
| even more delighted when my management gave its approval. |
| |
| The next several years were among the most satisfying and |
| productive I've ever spent. And, in my opinion, not only did I |
| benefit from them but so did everybody else who was involved: |
| Stanford, IBM, the students who participated in the research |
| program and attended my Business Information Systems classes and, |
| more to the point of this talk, APL itself, whose first |
| implementation was a FORTRAN-based batch interpreter that was |
| developed on the IBM 7090 in Pine Hall at Stanford. |
| |
| In the Formalizing Business Problems talk that I had given in |
| 1955, I asserted that the problems we were facing required a |
| partnership among computer users, computer manufacturers and |
| academic institutions if we were ever to develop the body of |
| knowledge we needed to manage computers properly. For a while |
| there at Stanford we had two-thirds of what I'd recommended and, |
| as you will see, I concentrated a good deal of effort on seeing |
| that the third was represented as well. |
| |
| When I started at Stanford as an Industrial Research Fellow, the |
| present School of Business building did not exist. I occupied an |
| office in Polya Hall, near the temporary buildings used to house |
| Business School faculty and staff. IBM, at that time, shared the |
| 7090 with Stanford and thus had the use of a few offices in Polya |
| Hall, the building which housed the university's Computer Science |
| faculty and staff. I was assigned one of those offices. |
| |
| This was ideal. I not only participated in the activities of the |
| Graduate Business School: I was also part of the Computer Science |
| complex at the university. Both of these associations had APL |
| implications and I'd like to tell you about them. |
| |
| My activities at the School of Business can be described in n |
| four parts |
| |
| 1. Work with graduate students on the "Quantitative Techniques" |
| project. |
| |
| 2. Guest lecturing in Business Information Systems courses |
| taught by Dan Teichroew and John Lubin. |
| |
| 3. Development of my own Business Information Systems course |
| after Teichroew and Lubin left the university. |
| |
| 4. Teaching Operations Research courses as a Lecturer in |
| Operations and Systems Analysis. |
| |
| APL and Quantitative Techniques. My purpose in describing my |
| preAPL history to you was to let you know how my ideas about what |
| management needed were formed. If you were paying attention, it |
| should come as no surprise to you that, as soon as I was given an |
| opportunity to do something about it, I started to investigate |
| the implications for management of an efficient notation for |
| describing, analyzing and designing digital procedures. |
| |
| I investigated two techniques: decision tables and APL. The |
| latter is the one relevant to this talk. I've long regretted that |
| I never wrote up what I did; let me remedy the deficiency now. |
| |
| A Programming_Language was published just in time for me to use |
| in my researches at Stanford. It was a godsend. I used it to try |
| to answer the question: |
| |
| Is it possible to write programming specifications in such a |
| way that ambiguities, misunderstandings and outright mistakes |
| in programming are minimized? |
| |
| The answer I got surprised even me. |
| |
| Here's what I did. For a set of problems, of increasing |
| difficulty, I would write a solution procedure, using the |
| notation of A Programming Language I would then ask the graduate |
| student assigned to me to: |
| |
| + program the procedure in any programming language he chose, |
| |
| + execute the procedure for a representative set of data values |
| |
| + give me his program and answers so that I could compare them |
| with the specifications I had written and the answers I had |
| previously calculated. |
| The result, which I still find surprising and impressive, was: |
| In every case, what was programmed was exactly what I specified. |
| |
| I'll comment in a moment on how rare this is under any |
| circumstances. But these particular circumstances were so extreme |
| that they merit some discussion. |
| |
| A Programming Language was and is crammed full of ideas. I |
| studied it assiduously, and enjoyed it, but it was not easy |
| reading, at least not for someone of my mental capacity. I was |
| lucky that my Stanford assignment provided me some time to spend |
| on it so that I could both use it and explain it when my students |
| asked questions. |
| |
| But think of them. The life of a graduate student is a busy one. |
| They had less time than I had to study strange notations. How |
| could they make sense of the chicken scratches I said were their |
| programming specifications? |
| |
| Somehow, they did. |
| |
| I gave them completely abstract procedure descriptions, even |
| avoiding standard words where they might have provided clues to |
| the nature of the procedure, and they programmed exactly what I |
| specified even though they had no prior experience with the |
| notation and never became expert at using it. |
| |
| Thinking back on it, I understand why an intimate familiarity |
| with this strange notation would have been desirable but was not |
| essential. The only part of the notation they needed to |
| understand was the part I used. I told them to look up the |
| meaning of the symbols in Ken's book but I also told them that |
| I'd explain and illustrate the meanings myself if they wanted |
| help. But I wouldn't do anything but explain the symbols. They |
| had to translate the symbolic description into a program. |
| |
| They did, with no arguments and no discussions about what the |
| procedure was supposed to do. The procedure was described |
| completely abstractly. They had no idea what external |
| significance it had. They were not led astray by ideas of their |
| own about it. They figured out what I wanted done and then did |
| it. Contrast this with the usual way in which a business |
| procedure gets programmed. Somebody, usually called a system s |
| analyst, casts about, comes up with some general ideas, puts them |
| down as programming specifications and presents them to somebody |
| else, usually called a programmer, who |
| |
| + asks the analyst lots of questions, |
| |
| + programs what he thinks the analyst wants, |
| |
| + is told that what he has done is s completely wrong, |
| |
| + quarrels with the analyst about what he said and what it |
| implied, |
| |
| + forces a reworking of the specifications, |
| |
| + tries another program, |
| |
| + is wrong again, forcing another rework of the specifications, |
| |
| + and so on until finally, after a long period of false starts |
| and reruns, |
| |
| + some program is accepted as an implementation of some set of |
| specifications, both programmer and analyst now being so sick |
| of the entire procedure that they no longer care whether what |
| is finally programmed is what was originally wanted. |
| Is what I'm describing familiar to you? Does it, perchance, occur |
| in your organization? |
| |
| To me, specifications cannot properly be called specifications |
| until they are as abstract as blueprints or mathematical |
| formulas. Specifications using the cords of everyday speech are |
| always subject to misinterpretation. Most of the costs, delays |
| and other inefficiencies that attend the development of data- |
| processing procedures are due to these misinterpretations. The |
| abstract APL program specifications I tested at Stanford |
| strenghtened my belief in the opinion I've just expressed. |
| |
| Content. What did I ask the students to program? Let me select |
| four examples. |
| |
| Rings-O-Seven. The first example was from A Programming Language |
| page 63, Exercise 1.5. It was a solution of a "rings-o-seven" |
| puzzle, in which rings on a bar were to be removed according to |
| certain rules. The bar was represented by a logical vector in |
| which the presence of a ring was indicated by a 1 and the absence |
| by a 0. |
| |
| This was just a warmup experiment, but it had an informative |
| result. My programming specifications, naturally, described the |
| solution procedure I had devised. It was wrong. But it was |
| programned exactly the way I specified it. |
| |
| Think of it. No arguments about who misunderstood whom. The |
| systems analyst was wrong; the programmer was right. |
| |
| Wouldn't you like to be able to make that determination without |
| bickering, recriminations or tears? |
| |
| (After my blushes subsided, I wrote a correct procedure. It was |
| programmed correctly and gave the right answers. I tell you this |
| because I'm vain and don't want you to remember me for the only |
| mistake I ever made in my whole life.) |
| |
| Internal Rates of Return on Investment. Financial theory at that |
| time was troubled by the fact that the then current procedures |
| for calculating rates of return on an investment gave ambiguous |
| answers in some cases. The difficulty arose when the cash flows |
| that characterized the investment were a mixture of positive and |
| negative amounts. This led to an equation with multiple roots, so |
| that, in many cases, two equally ridiculous rates of return were |
| calculated. |
| |
| Dan Teichroew felt that the difficulty lay in the assumption that |
| the same interest rate should be applied to the negative cash |
| flows as to the positive. What he suggested was that there would |
| be a unique, meaningful solution if we assumed that the rate to |
| be applied to the negative flows, which were, after all, |
| borrowings, should be a putative "cost of money" which would not, |
| in general, be the same as the return on the investment. |
| |
| Given this assumption, I provided a proof that an "internal rate |
| of return" on the investment would be uniquely determined when a |
| "cyst of money" was assumed. |
| |
| I then specified, in "Iverson language", a procedure that |
| determined a rate of return for a fixed cost of money and a |
| specified series of cash flows. The actual calculation was |
| programmed by J. P. Seagle, a graduate student. I no longer |
| remember what programming language Pete used, possibly a |
| home-grown (Stanford) assembler for the 1401. The results were |
| reported in a couple of papers by authors the very ponderosity of |
| whose names (Teichroew, Robichek, Montalbano) testified to the |
| validity, excellence and importance of the research they |
| described. |
| |
| Critical-path calculations. Critical-path and PERT calculations |
| were all the rage at that time, with many papers being devoted to |
| efficient schemes for "topological sorting" and for detecting |
| inconsistencies in precedence relationships. |
| |
| I became interested in the problem and decided that the need for |
| topological sorting could be eliminated and that consistency |
| checking did not require a separate, special program. I used APL |
| (Iverson language) to describe a solution procedure in which |
| topological sorting was not required and consistency-checking was |
| a fallout from the basic critical-path calculation. |
| |
| This time, in addition to having Pete Seagle program the |
| calculation, I programmed it myself, in MAP, the IBM 7090 |
| assembly language, and FORTRAN (for input-output subroutines). My |
| program exploited almost every bit in the 36-bit 7090 word. This |
| permitted me to store enormous networks internally, so that I was |
| able to achieve calculation speeds far in excess of any other |
| method then available. |
| |
| I was not then, and have not since become, an expert |
| assembly-language programmer. I had risen to too august an |
| eminence at Kaiser Steel to do much programming, though I snuck |
| some in now and then, when no one was looking. My critical-path |
| algorithm was the first programming I had ever done for the 7090 |
| which, like MAP and FORTRAN, was completely new to me. |
| |
| With the precise specifications of the APL procedure as my guide, |
| programming assembly language for a machine with which I had |
| little experience went very quickly and with no errors other than |
| mistypings. The program I developed was a useful one that I later |
| used in classes in the Business School and in the International |
| Center for the Advancement of Management Education at Stanford. I |
| described it in a paper called High-Sped Calculation of the |
| Critical Paths of Large Networks that appeared both as a Palo |
| Alto Scientific Center report and as an IBM Systems Journal |
| article. The algorithm presented in the paper used the old |
| notation (the one in the book) since the new (the one for the |
| typewriter) had not yet been designed. |
| |
| So APL turned out to be a particularly useful way to specify a |
| program for an inexperienced programmer--me. |
| |
| Linear Programming. The last program specification I want to |
| discuss was done by a student, Don Foster, who had even less time |
| than the general run of student I'd been working with. I believe |
| it was his last term at the School of Business. This is always a |
| hectic time but in Don's case he had the added distraction of |
| planning for a European trip. Even without my assignment he was |
| leading a harried life. |
| |
| I gave him a version of the simplex algorithm (basically the one |
| that had originally sold me on APL) from which I'd removed all |
| clues like, "unbounded", "infeasible", etc. |
| |
| The solution was programmed in jig time, since Don was champing |
| at the bit anyway. The programming language was FORTRAN. The |
| program ran the first time it was tried. It produced the right |
| answers. |
| |
| What was interesting was Don's reaction when I told him what he'd |
| programmed. Like all good business school students of that era, |
| he'd received instruction in linear programming. But he hadn't |
| been told how easy it was. The arm-waving and chalk dust had |
| concealed the basic Simplicity from him as they had from me. |
| |
| Business Information Systems |
| |
| As a guest lecturer in Business School courses, I advanced the |
| argument that I've been advancing throughout this talk, that we |
| need an efficient notation for describing procedures. I |
| illustrated some of what could be done with APL and decision |
| tables. |
| |
| In my Business Information Systems course, I did the same, but I |
| also encouraged activities that would permit students to find out |
| for themselves whether or not I had valid reasons for what I was |
| recommending. One of the course requirements was completion of an |
| approved project. As an example of the kind of project I had in |
| mind, I would suggest that they go to a local company, get a copy |
| of an important report used by several departments, and visit |
| each of the departments, asking whoever got the report what he |
| thought the report told him, how much he knew about how the |
| figures in the report were determined, what actions he based on |
| the report, and how he decided on his actions. |
| |
| Few of the students had had detailed business experience at that |
| point in their careers. Business to them was defined by the other |
| business school courses they'd taken: finance, marketing, micro- |
| and macro-economics, accounting, theory of the firm, |
| organizational behavior, and so on. These were good courses but |
| none of them were concerned with or had the time to devote to |
| determining what was happening at the working or first-line |
| management level of an organization. |
| |
| The intent of my course was to forewarn my students that business |
| was, in practice, a good deal more disorganized than they were |
| likely to realize from most academic discussions. |
| |
| I had some skeptics in my classes, people who felt I was |
| overstating my case. None of the skeptics who attempted the kind |
| of project I suggested remained skeptics. Some, shattered by |
| their experiences, felt even more strongly than I that no one in |
| management knew what was going on. |
| |
| Several students caught the APL bug. They went out on missionary |
| activities of various kinds after graduation. The effects of some |
| of these are still being felt--in, for example, organizations |
| like IBM and American Airlines, to name the two I know most |
| about. |
| |
| Stanford's Computer Science Department. |
| |
| Although I was housed with members of the Computer Science |
| Department, I had no official connection with it. All of my |
| interaction with faculty, staff or students was informal. |
| |
| From the standpoint of APL as it now is, however, this |
| interaction was the important one. This was not because of |
| anything I did. It was primarily because I was a reminder of the |
| existence of "Iverson language" and a kind of catalyst who served |
| to bring together the right people at the right time. |
| |
| The Computing Science Department of those days was an ALGOL |
| stronghold. It had a Burroughs B5000, later upgraded to a B5500, |
| an IBM 7090, and a PDP-1, probably the first computer I ever saw |
| with a cathode-ray tube terminal. I don't know whether "Star |
| Wars" (the game) was developed at Stanford. I do know that a lot |
| of "Star Wars" was played there. |
| |
| Stanford had developed its own version of ALGOL, called SUBALGOL, |
| for the Burroughs computer that had preceded the 85000. I believe |
| the number was B220, but my memory might be playing me tricks. At |
| Kaiser Steel, our first computer had been a B205, predecessor of |
| the B220, if that's what it was. |
| |
| The significance of this information from the APL standpoint is |
| that two, possibly three, of the people who played key roles in |
| developing the very first APL system had been instrumental in |
| producing SUBALGOL for Stanford: Larry Breed, Roger Moore, and |
| (the one I'm not sure about) Phil Abrams. |
| |
| I met Larry as a result of a talk I'd given as one of a series on |
| "Programming Languages" conducted by the Computer Science |
| Department. He expressed an interest in what I'd had to say about |
| what I was doing in the School of Business with the notation |
| described in A Programming Language. He and Phil Abrams took |
| action on this interest in a very real, very Productive way when |
| the IBM Systems Journal article, appeared. What they did, and its |
| aftermath, is described in Appendix A, an annotated verse history |
| of APL's early days. |
| |
| Larry and Phil not only developed the batch APL interpreter I |
| mention in the verse, they did so many other things that I wish |
| they and others involved in APL's origins would get them down on |
| paper. For example, one of them should tell the story of Elsie |
| (for Low Cost), an APL mini before there were minis. |
| |
| But, in essence, all I did was happen to be around, saying the |
| right things to the right people. Things took off when the right |
| people got together. |
| |
| Incidentally, one of the people involved in the Programming |
| Languages seminar to which I referred above was Niklaus Wirth. |
| Unfortunately, Klaus didn't get the proper message from my talk. |
| He went his own way and developed PASCAL. |
| |
| APL at IBM |
| |
| The history of APL at IBM has been a curious one. In the early |
| days, those of us who believed in APL were regarded as being a |
| little (perhaps more than a little) strange. Since much of the |
| strangeness was concentrated in IBM Research, this was tolerated. |
| Practical people (the kind of people who make sales and meet |
| payrolls) expect research people to be strange and are usually |
| disappointed when they're not. So the strange people in Research |
| were written off as overhead and left to amuse themselves with |
| their incomprehensible, impractical symbols. |
| |
| What that particular Research group did, of course, was produce |
| the most solid, dependable, useful time-sharing system anyone had |
| ever seen. |
| |
| I wish I could tell you what it felt like in those early days to |
| have the use of a system that was up twenty-four hours a day, |
| seven days a week. No one had ever known such a luxury. People |
| who didn't bother to investigate never believed us when we told |
| them about it. |
| |
| But some people did investigate what the researchers had |
| developed and started to use it to do IBM's key bread-and-butter |
| applications. This way of doing business was so productive that |
| it spread like wildfire. By the time the practical people found |
| out what had happened; APL was so important a part of how IBM ran |
| its business that it could not possibly be uprooted. The |
| wild-eyed researchers had produced a moneymaker. No talks about |
| product "strategies" and the evils of language proliferation |
| prevailed against the simple fact that: |
| + if you worked for IBM and |
| |
| + had access to an APL time-sharing service and |
| |
| + had something you wanted to get done on a computer quickly |
| and economically |
| then the best way to get it done was to use APL. |
| |
| I wish someone who knows the details of how that came about would |
| write about it. I can't do it. I was three thousand miles away |
| when it took place. APL (called VS APL for reasons beyond the ken |
| of mortal man) is, of course, now an IBM program product. I don't |
| know how much more practical than that you can get. |
| |
| Summary: Systematic Systems Analysis |
| |
| I could go on but I see you're falling asleep. Let me end by |
| rephrasing what is either explicit or implicit in what I've |
| already said. |
| |
| In the preface to my book on decision tables, I say |
| |
| if you wish to use digital computers effectively, the first |
| thing you should do is digitize your procedure descriptions. |
| |
| As usual, this was something I realized I was doing after I'd |
| finished writing and took time to think about what I'd written. |
| The key idea of the book (the potential of which, incidentally, |
| no one has as yet successfully exploited) is that procedures can |
| be digitized in the same sense that bubble-chamber and |
| spark-chamber pictures are digitized for analysis by a digital |
| computer. |
| |
| A decision table is a digitized procedure description; it |
| describes a correspondence between vectors of decision values and |
| vectors of action values. |
| |
| The particular form of the digitizing is not important. Decision |
| tables may or may not be the most effective way to get the |
| digitizing done. The important thing is that it be done and done |
| in a way that permits checking for consistency, redundancy, |
| completeness. |
| |
| But how is such a digitized procedure to be developed, |
| maintained, managed, modeled, interpreted, translated, improved, |
| extended,...? |
| |
| To me, the answer is clearly APL. If we are ever to do "systems |
| analysis" systematically, we must |
| 1. Digitize our procedure descriptions |
| 2. Manage our digitized descriptions with APL |
| We must divert our research to developing ideas rather than |
| gadgets. Good ideas are at hand. Let's develop them. |
| |
| Epilogue - Twenty Years After |
| |
| The latest IBM version of APL is an Installed User Program called |
| APL2. For those of us who had to bootleg our APL efforts within |
| IBM for a long time, the announcement of APL2 is gratifying |
| because it indicates the kind of management backing and |
| recognition that we missed when We felt that APL was regarded as |
| a limited tool for a small, specialized audience. |
| |
| Management put its support on record in another significant way. |
| IBM recently instituted awards for outstanding technical |
| achievements. The first of these to anyone at the Santa Teresa |
| Laboratory was just awarded to Jim Brown, manager of the group |
| that developed APL2. |
| |
| I haven't had a chance to use APL2 very much yet. I've been too |
| busy writing a workspace manual for VS APL. So I can't pretend to |
| an extensive knowledge of its details. But, recently, I used APL2 |
| to do something that I haven't been able to do for 20 years. Page |
| 19 of A Programming Language describes a bank ledger that has |
| three columns: the first column contains customer names, the |
| second account numbers, the third balances. Unassigned account |
| numbers had the entry "none" in the corresponding row of the name |
| column. |
| |
| Until APL2, no system available to me within IBM would allow me |
| to form an array of that kind. Nor could I write, in any |
| straightforward fashion, the four programs, producing reports |
| from that ledger, that appear as one-liners in the book with |
| which, twenty years ago, I started my investigation of |
| "Quantitative Techniques in Management" at the Stanford Graduate |
| School of Business. |
| |
| With APL2, I was able to do precisely that. As a way of rounding |
| out twenty years of APL history, I thought I'd show you what I |
| did. It's contained in Appendix B. |
| |
| -------------------------------- |
| |
| APPENDIX A. APL BLOSSOM TIME -A HISTORY IN VERSE |
| |
| My contribution to APL 81 was the verse that I discuss below. The |
| most I'd expected, when I wrote it, was that Jim Brown might play |
| it at some informal gathering. I couldn't anticipate what |
| actually happened. A group including Jim Brown, Larry Breed, John |
| Bunda, Diana Dloughy, A1 O'Hara and Rob Skinner rehearsed their |
| guitars and voices until they were of a truly harmonious |
| sweetness and sang "APL Blossom Time" at the APL 81 banquet as |
| part of the evening's entertainment. I. P. Sharp's Peter Wooster |
| prepared overhead transparencies that made it possible for the |
| audience to sing along. And I'm sure other people whose names I |
| was never told contributed to what was, for me, an extremely |
| heartwarming experience: the sound of people singing, laughing |
| and giving every evidence of enjoying the words I'd written. |
| |
| Despite its frivolity, APL Blossom Time is authentic history. I |
| thought it might be useful to get the details on record by |
| annotating each section of the verse. |
| |
| APL BLOSSOM TIME |
| A nostalgic reminiscence of the early days of APL, remembered to |
| the tune of The Battle of New Orleans. |
| +-----------------------------------------------------------------+ |
| | Back in the old days, in 1962, | |
| | A feller named Ken Iverson decided what to do. | |
| | He gathered all the papers he'd been writing fer a spell | |
| | And he put them in a little book and called it APL. | |
| | | |
| | Well... | |
| | He got him a jot and he got him a ravel | |
| | And he revved his compression up as high as she could go | |
| | And he did some reduction and he did some expansion | |
| | And he sheltered all his numbers with a ceiling and a flo'. | |
| +-----------------------------------------------------------------+ |
| |
| If you've read the earlier part of this book, this verse doesn't |
| need annotating. If you haven't, go back and read it. |
| |
| +------------------------------------------------------------------------+ |
| | | |
| | Now Sussenguth and Falkoff, they thought it would be fine | |
| | To use the new notation to describe the product line. | |
| | They got with Dr. Iverson and went behind the scenes | |
| | And wrote a clear description of a batch of new machines. | |
| | Well... | |
| | They wrote down dots and they wrote down squiggles | |
| | And they wrote down symbols that they didn't even know | |
| | And they wrote down questions when they didn't know the answer | |
| | And they made the Systems Journal in nineteen sixty-fo' | |
| +------------------------------------------------------------------------+ |
| |
| Though the scan required that I place Sussenguth's name first, |
| this is perhaps misleading. Ed Sussenguth has done a lot of good |
| work for IBM but, except for his participation in this paper, I |
| don't know of any other in n which he used APL. |
| |
| Adin Falkoff, on the other hand, was one of those crazy-symbol |
| Iverson-language authors whose papers I started requesting from |
| the ASDD Library when I first joined IBM. I remember one paper in |
| particular. It struck me because it seemed to be written by |
| someone who hated jargon as much as I did. One of the data- |
| processing fads current at that time was the "associative |
| memory". Adin, like the rest of us, had to use the term because |
| everybody else was using it. But he rather wistfully (can you |
| imagine Adin wistful?) pointed out that a more descriptive term |
| would be "content- addressable memory". |
| |
| And, of course, as you all know (or should know, if you don't), |
| Adin Falkoff, in both technical and administrative capacities, |
| has been in the forefront of APL developments ever since the days |
| of those early, incomprehensible reports out of IBM Research. |
| |
| The paper referred to in the verse is A Formal E. escription of |
| System/360, by Falkoff, A. D., Iverson, K. E., Sussenguth, H. IBM |
| Systems Journal, Vol. 4, No. 4, October, 1964. |
| |
| About "questions where they didn't know the answers": the paper |
| was indeed, to the best of my recollection, the first to use the |
| question mark as an APL function. |
| |
| I gave my copy of that issue of the Systems Journal to Larry |
| Breed. (I had already ordered several more. John Lawrence, editor |
| of the Systems Journal at the time, had the APL functions in the |
| article printed separately for more effective study. I ordered |
| several copies of those, as well.) Larry and Phil Abrams |
| conducted a seminar on the System/360 paper that extended over |
| several weeks. They also produced a list of "cliches", to assist |
| in understanding regularly recurring patterns, and a list of |
| errata, to remind the authors (or the typesetters) that they |
| didn't know it all. |
| |
| The sessions conducted by Larry and Phil were well attended. When |
| Ken Iverson came out to give a talk at Stanford, he drew the |
| biggest crowd the Computer Science auditorium had seen up to that |
| time. I told my Business Information Systems class to attend |
| since they would hear something better than anything I had to |
| say; this also gave me a chance to attend myself. |
| |
| +-------------------------------------------------------------------+ |
| | | |
| | Now writing dots and squiggles is a mighty pleasant task | |
| | But it doesn't answer questions that a lot of people ask. | |
| | Ken needed an interpreter for folks who couldn't read | |
| | So he hiked to Californ-i-a to talk to Larry Breed. | |
| | | |
| | Oh, he got Larry Breed and he got Phil Abrams | |
| | And they started coding Fortran just as fast as they could go | |
| | And they punched up cards and ran them through the reader | |
| | In Stanford, Palo Alto, on the seventy ninety oh. | |
| | | |
| +-------------------------------------------------------------------+ |
| |
| Ken Iverson and Larry Breed first met in my office at Polya Hall. |
| Since this may be my only claim to fame, I'm glad to put this |
| historical fact on the record. |
| |
| Larry was about to graduate. Ken had a job to offer him. We now |
| have APL. |
| |
| I remember a phone call of Ken's, shortly after Larry had joined |
| him and Adin at IBM Research in Yorktown, in which he said |
| something like: "This young man thinks he can write a translator |
| in a couple of months." He sounded as if he were wondering |
| whether he'd made a bad bargain. I assured him that if Larry said |
| he could do something in a couple of months he would probably do |
| it in a couple of weeks. He and Roger Moore were legends in their |
| own time during Stanford's SUBALGOL days. |
| |
| Stanford has left a mark on APL second only to that of |
| left-handed Canadians. For a while, there was a theory that all |
| of APL was being dominated by left-handed Canadians. I have been |
| told that when Mike Jenkins, at lunch in the Yorktown cafeteria, |
| was observed to be left-handed, someone facetiously asked him if |
| he happened to be Canadian. He happened. |
| |
| I tried to start a similar factoid^5 about right-handed |
| Brooklynites, hoping to get included along with Falkoff and |
| McDonnell. I forget what happened to that. I think one of them is |
| lefthanded. I know I'm not. |
| |
| +----------------------------------------------------------------+ |
| | | |
| | Well a Fortran batch interpreter's a mighty awesome thing | |
| | But while it hums a pretty tune it doesn't really sing. | |
| | The thing that we all had to have to make our lives sublime | |
| | Was an interactive program that would let us share the time. | |
| | | |
| | Oh, they got Roger Moore and they got Dick Lathwell, | |
| | And they got Gene McDonnell with his carets and his sticks, | |
| | And you should've heard the uproar in the Hudson River valley | |
| | When they saved the first CLEANSPACE in 1966. | |
| +----------------------------------------------------------------+ |
| |
| APL bigots seem to be characterized by literacy and a feeling for |
| history. The first time-sharing APL system was implemented (as |
| IVSYS) on an IBM 7090 at Mohansic. In those days, there was no ) |
| CLEAR command. To get a CLEAR workspace, you had to load one. The |
| one that came with the system was called CLEANSPACE. Although it |
| was no longer needed when )CLEAR was introduced, CLEANSPACE, |
| along with the time and date it was originally stored, has been |
| preserved in Library 1 of a continuous sequence of systems ever |
| since: the Yorktown Model 50, the Philadelphia Scientific Center |
| Model 75, the Palo Alto model 158, the Santa Teresa model 168 |
| and, as I discovered for the first time just a few hours before I |
| wrote this, the Santa Teresa Model 3033. At one point, after a |
| disaster had caused the loss of CLEANSPACE, it was carefully |
| restored with the correct date and time. The objective, of |
| course, is to preserve a record of the moment when APL first |
| became a time-sharing computer language. |
| |
| Preserving CLEANSPACE in APL2 presented a problem, since |
| workspace names are limited to eight characters in CMS, the first |
| "environment" in which APL2 has been offered. However, as you can |
| see from the following exhibit, which is a copy of what appeared |
| on the screen in response to a )LOAD 1 CLEANSPACE command that I |
| executed on our APL2 system (which operates under CMS) the |
| problem has been solved, or, better, circumvented. |
| |
| +-------------------------------------------------------------------+ |
| | [APL-hist-p] | |
| +-------------------------------------------------------------------+ |
| |
| Note that not only is the time given, the time zone of the area |
| in which the storing was done is also given, indicating that the |
| original workspace was stored when United States Eastern Standard |
| Time was in effect. Note also that the original workspace size |
| was 32K and that the time zone in which CLEANSPACE was loaded to |
| produce this example was Santa Teresa Daylight Savings Time. |
| |
| What hard workers AP L. bigots are' I've checked my handy |
| perpetual calendar and, as far as I can tell, November 27, 1966 |
| was the Sunday of what must have been a four-day Thanksgiving |
| weekend. What were those loonies doing working such crazy hours |
| during the holiday season? |
| |
| The !'carets and sticks" reference is to a paper by Gene |
| McDonnell on the logical and relational functions--the ones whose |
| symbols can be constructed out of "carets and sticks". |
| |
| +----------------------------------------------------------+ |
| | Well, when A1 Rose saw this he took a little ride | |
| | In a big station wagon with a type ball by his side. | |
| | He did a lot of teaching and he had a lot of fun | |
| | With an old, bent, beat-up 2741. | |
| | | |
| | Oh, it typed out stars and it typed out circles | |
| | And it twisted and it wiggled just like a living thing. | |
| | Al fed it a tape when he couldn't get a phone line | |
| | And it purred like a tiger with its trainer in the ring. | |
| | | |
| +----------------------------------------------------------+ |
| |
| A1 Rose was, and I assume still is, one of the most spectacular |
| APL demonstrators there ever has been. The verse refers to a |
| vacation he took in which he was accompanied not only by his |
| family but by what was laughingly called a portable 2741. This |
| was a 2741 that came in two parts which, when ready to be |
| "ported", looked like two big, black pieces of luggage. Wherever |
| Al went, he'd find some likely APL prospects, park the station |
| wagon near an electrical outlet and a phone, lower the tailgate |
| and start hammering on the keys. |
| |
| In those days, getting connected to a working APL system was a |
| chancy thing. As a safeguard, A1 recorded, on tape, what went |
| across the acoustic coupler during a sample session. When he had |
| problems getting to a real APL system, he`d play the tape into |
| the acoustic coupler and produce a simulated computer session |
| that was an exact copy of the real thing. |
| |
| I remember that double-black-box 2741 very well myself. I, too, |
| did quite a bit of APL demonstrating in those days. At the |
| University of California at Davis, the demonstration was given on |
| the second floor and there was no elevator. I had to haul those |
| two big boxes up a long flight of stairs. I'm glad I didn't find |
| out until later how heavy they were. When I sent them Air Express |
| to an IBM System Engineer in Seattle, I learned for the first |
| time that they weighed 120 pounds. Well, I'm not too bright but |
| I'm pretty strong. |
| |
| +----------------------------------------------------------------------+ |
| | | |
| | Now, there's much more to the story, but I just don't have the time | |
| | (And I doubt you have the patience) for an even longer rhyme. | |
| | So I'm ending this first chapter of the tale I hope to tell | |
| | Of how Iverson's notation blossomed into APL. | |
| | So.. | |
| | Keep writing nands when you're not writing neithers, | |
| | And point with an arrow to the place you want to be, | |
| | But don't forget to bless those early APL sources | |
| | Who preserved the little seedling that became an APL tree. | |
| | | |
| | Dedicated to the pioneers of APL with respect and | |
| | affection by | |
| | J. C. L. Guest | |
| +----------------------------------------------------------------------+ |
| |
| J. C. L. Guest is the pseudonym I used for sore light verse I |
| submitted to Datamation several years back. There were four |
| pieces in all. The Far-flung Data Base, SYSABEND Dump, Virtual |
| Memory and Decision Making. |
| |
| If you were offended by the unkind things I said about modern |
| management in this talk, don't read Decision Making. You won't |
| like it. |
| |
| -------------------------------- |
| |
| APPENDIX B - TWENTY YEARS AFTER |
| |
| The following four figures show how I applied APL2 to Program 1.9 |
| (Example 1.1) of A Programming Language, page 19. |
| |
| The first figure shows the sample bank ledger I used and the |
| calculations I performed to illustrate the ledger's shape and |
| various facts about its composition. Note that the name entry for |
| an unassigned account number is a single blank rather than the |
| "none" used in the original example. |
| |
| The second figure shows two versions of the four reports (P, Q, |
| R, S) required in the example. In the first, the output is |
| unformatted. In the second, "picture format" is used to format |
| the numeric part of the report. |
| |
| The four required reports are: |
| |
| 1. P - name, account number and balance for each account with a |
| balance less than two dollars. (Although the original example |
| did not require this, the illustrated calculations do not |
| include unassigned account numbers in the report.) |
| |
| 2. Q - name, account number and balance for each account with a |
| negative balance exceeding one hundred dollars. |
| |
| 3. R - name and account number of each account with a balance |
| exceeding one thousand dollars. |
| |
| 4. S - all unassigned account numbers |
| |
| The third and fourth figures show the programs for the |
| unformatted and formatted reports respectively. They could have |
| been written as the four one-liners of the original example, |
| except that report P, the one producing a list of accounts with |
| balances of less than two dollars would have included unassigned |
| account numbers. To avoid this, the unassigned account number |
| report, S, was produced first and an array T, consisting of all |
| assigned accounts, was used to create the subsequent reports. |
| |
| The other lines in the report merely introduce spaces to separate |
| the successive reports. |
| |
| +-------------------------------------------------------------------+ |
| | [APL-hist-p] | |
| +-------------------------------------------------------------------+ |
| |
| +-------------------------------------------------------------------+ |
| | [APL-hist-p] | |
| +-------------------------------------------------------------------+ |
| |
| +-------------------------------------------------------------------+ |
| | [APL-hist-p] | |
| +-------------------------------------------------------------------+ |
| |
| +-------------------------------------------------------------------+ |
| | [APL-hist-p] | |
| +-------------------------------------------------------------------+ |
| |
| ------------------------------------ |
| 1. First draft of a report on the EDVAC, J. von Neumann, June |
| 1945, (report), Moore School of Electrical Engineering, |
| Univerity of Pennsylvania, Philadelphia, Pa. |
| |
| 2. A Programming Language, Kenneth Iverson, John Wiley, 1962 |
| |
| 3. In making this comment here, and not earlier when I was |
| describing the work I did for the Air Force, I do not mean to |
| make an invidious comparison of the services. The work I did |
| for the Air Force didn't require me to know whether either |
| the data we used or the answers we calculated corresponded to |
| reality; all I had to do was to supply plugboards or |
| programs. At the Naval Research Laboratory, on the other |
| hand, it was my responsibility to get good answers from good |
| data. That's when I found out there wasn't any good data. |
| |
| To even things out, let me observe that the Air Force doesn't |
| know what's going on either. As for the Armor, well, I served |
| in the Army. I can tell you about the Army. |
| |
| 4. Decision Tables, Michael Montalbano, Science Research |
| Associates, 1974 |
+----------------------------------------------------------------------------+
a few comments by Curtis A. Jones, Apr 17, 2013
+--------------------------------------------------------+
| I do follow the IBM1130 group and have actually used |
| their APL\1130 at the museum. Getting APL\360 running |
| is pretty cool, and we owe Len a huge debt of |
| gratitude for making the APL\360 source available for |
| that. But APL has come quite a way since then. I |
| refuse to say a "long" way since then because the |
| language itself was well designed and has changed |
| remarkably little. But it's been extended and lots of |
| connections to interfaces and data have been added. |
| |
| I don't remember Jim's Weigang's "getting started" |
| page, but I can add a little about developments since |
| the October 2003 date of that page. First, note that |
| Jim discusses APL*PLUS for the PC from STSC |
| (Scientific Time Sharing Corp.). Their mainframe part |
| became Manugistics named after a logistics management |
| program that ran on their APL. Their PC products were |
| acquired by APL2000 in Princeton, NJ from which you |
| can purchase APL+WIN and other APLs. http:// |
| www.apl2000.com/ APL+WIN Ver 13 was released on |
| Monday. So that APL is still around. I don't see a |
| "hobby" price on the APL2000 site, but the interpreter |
| the Jim mentions can, I think, still be found and |
| downloaded. |
| |
| The page also mentions IBM's TryAPL2 and Workstation |
| APL2. I think the comments on TryAPL2 are more |
| negative than it deserves, but then I had a small hand |
| in distributing TryAPL2. (Ask me how I coined |
| "guerrilla marketing" around 1991.) I think it served |
| well its intended purpose of providing for free a |
| complete APL for students to use for schoolwork. It's |
| connections to outside files were limited to avoid |
| commercial use. And it's certainly pretty easy to get |
| a time-limited copy of the current Workstation APL2 |
| from IBM. That's what I use. The copy I have running |
| right now came through IBM's Academic Initiative which |
| provides software for school use. |
| |
| Dyalog APL named their online demo TRYAPL. http:// |
| www.tryapl.com/ Dyalog also has "educational, personal |
| and commercial versions" of their APL, which is being |
| actively developed and promoted. |
| |
| Jim Weigang's page also mentions the I.P. Sharp APLs. |
| It's been said about their PC APL that for the PC/360 |
| (?) customers (an IBM 360 in a PC box) they'd take out |
| the emulator and add a digit to the price. It may be |
| dated, but on today's fast PCs it might perform pretty |
| well! And the SHARP APL for Linux must be pretty good, |
| too. And it's free. There are some old I.P. Sharp |
| hands around the area, partly because they had an |
| office in Palo Alto. At many of the museum events you |
| can see Joey Tuttle, Paul Berry and Larry Breed in the |
| audience. |
| |
| For Mac and Linux there's APLX: http:// |
| www.microapl.co.uk/apl/ |
| |
| For those even more mathematically inclined than the |
| typical APL user, there's J, the language Ken Iverson |
| produced after APL. For the investment banker, Palo |
| Alto's (still?) Arthur Whitney sells K and Q. Steven |
| Wolfram admits that APL was a significant influence on |
| Mathematica. |
| |
| Wai-Mee Ching has a free APL-like language available |
| called ELI: http://fastarray.appspot.com/default.html |
| |
| The ACM SIGAPL page lists some current activity around |
| APL: http://www.sigapl.org/ |
| |
| http://www.sigapl.org/links.php#FAQ |
| |
| Sam Sirlin's APL FAQ list is updated fairly often in |
| the USENET group comp.lang.apl (which is included |
| Google Groups). A direct link to the December "issue" |
| is ftp://rtfm.mit.edu/pub/usenet-by-group/ |
| comp.lang.apl/APL_language_FAQ |
| |
| Catherine Lathwell is working on a documentary on the |
| history of APL: http://www.aprogramminglanguage.com/ |
| |
| Curtis |
+--------------------------------------------------------+