Jump over left menu
The Language of Computers
2, May 1969
This is a transcript of a talk given by Lord Bowden of Chesterfield, at Brighton College of Technology. the first Richard Goodman Memorial Lecture. Richard Goodman had placed Brighton on the computer map with courses of lectures attended by most of the computer people at the time. A series on Algol in 1964 had Djikstra, Dahl, Woodger et al all making trips to Brighton for the lecture series. Many of the Atlas Laboratory staff used to make the long journey there and back to attend. Several, including Dr Howlett, attended the Memorial lecture.
The lecture which I have the privilege of delivering this evening is intended to commemorate the work of a remarkable man who spent nearly twenty years of his life here in Brighton.
Richard Goodman won an Open Scholarship to New College, Oxford, before the War. He made his career as a mathematician, but he was a man of wide and varied interests. He was an active politician in his youth and a radical all his life. He wrote poetry when he was in Oxford and he published anthologies of his own work and that of fellow poets, some of whom have since become famous, but not all of them as poets. Mr Richard Crossman, who was at New College with Goodman, was one of them, but he has been more successful as a Cabinet Minister than ever he was as a poet.
Goodman taught for a short time in A.S. Neill's Experimental School at Summerhill and he was a journalist in Paris until the War broke out, when he joined the Navy as a radar operator. He went to Brighton after the War and for the rest of his life he devoted himself energetically to the development of his Department. He worked tremendously hard for his students, both in the classroom and outside it. He was always versatile and he was always a pioneer. After he died, his Department had to be split into three independent units! It was typical of him that he began to study computers long before they became fashionable.
Most people nowadays realise that computers are mysterious and important devices. It does not surprise the average man to learn that they are as complicated as supersonic aircraft or space vehicles. But few people realise that the work of the mathematicians who prepare the programmes for these machines has been as taxing, as difficult and as complicated as the design and creation of the machines themselves. Today machines have become faster and more reliable, and more and more complicated, but computer manufacturers still need programmers, just as much as gramophone manufacturers need musicians.
Twenty years ago, there were only a few dozen programmers in the world. They were all very competent professional mathematicians and I think I knew most of them myself. Today there are hundreds of thousands of them, but most of them are not even graduates. A few inspired mathematicians have invented some astonishing techniques which make it possible for ordinary men to communicate with computers and exploit them. Today a schoolboy can use a computer to solve problems which would have baffled experienced mathematicians only fifteen years ago.
This development fascinated Richard Goodman and I would like to talk about it this evening. But you can relax, I shall not attempt to describe either the machines or their programmes in detail. I don't understand either subject myself.
Perhaps I may be forgiven for a few personal reminiscences. I joined Ferranti in 1950. They had nearly finished building the first digital computer ever to be made by a commercial firm in England and they asked me to see if it would be possible to manufacture such machines and sell them at a profit. Our machine could do simple arithmetic a thousand times as fast as a man with an adding machine, but it was not at all obvious that anyone would be prepared to pay a hundred thousand pounds or so for it. It wasn't as reliable as we would have liked it to be; it absorbed information slowly by reading teleprinter ticker tape and it could only print out its answers digit by digit. The Census had disclosed the astonishing fact that the clerical labour force was growing faster than any other category known to the authorities. We decided to try and automate clerical work somehow; we were absurdly optimistic although we realised that our machine was very ill-adapted for the large scale commercial work out of which we hoped to make our fortunes.
I must remind you that this was in the days before IBM. I went to see Professor Douglas Hartree, who had built the first differential analysers in England and had more experience in using these very specialised computers than anyone else. He told me that, in his opinion, all the calculations that would ever be needed in this country could be done on the three digital computers which were then being built - one in Cambridge, one in Teddington and one in Manchester. Noone else, he said, would ever need machines of their own, or would be able to afford to buy them. He added that machines were exceedingly difficult to use, and could not be trusted to anyone who was not a professional mathematician, and he advised Ferranti to get out of the business and abandon the idea of selling any more. It is amazing how completely wrong a great man can be. The computer business has since become one of the biggest in the world. Hartree used to tell this story against himself as long as he lived, but I want to emphasise the fact that in 1951 it was much harder to see into the crystal ball than you might think. Ferranti needed a new product, and they were more hopeful than Professor Hartree, so I canvassed the optical industry and aircraft industry and the civil engineering industry and the newly established Atomic Energy Authority but I found that they all faced the same problems.
If the calculations were short, they were done on desk calculating machines operated by clerks. During the War, Professor Sydney Chapman asked the Home Office to teach long-term convicts to use adding machines for the war effort, but this admirable suggestion was rejected on the grounds that it was unfair to punish a man twice for the same offence, and that it was bad enough to be in jail. Nevertheless, there were large numbers of professional calculating machine operators and Dr Comrie had worked out complicated ballistic tables and flight paths for the RAF on the National Cash machines which he had used to calculate the Nautical Almanac.
If the calculations were long and complicated, there were three overwhelming objections to the use of a computer. The machine usually broke down before it finished the calculation, its memory was too small to hold all the data it needed and worst of all, it took so long for the mathematicians to get the programme right that it was usually quicker (and cheaper) to get the calculation done by clerks, or to build the device which the computer was trying to design, whatever it might be, and try it out. This was quite good enough for opticians who designed new lenses. But experimental aircraft are very expensive to build and the test pilot takes his life in his hands when he goes up for the first time. It would obviously be cheaper and safer to calculate as much as possible about new machines before they were built, and try to make sure that they did not kill anyone.
I came to the conclusion that there were a few calculations that would be worth doing on a computer. They were neither too big nor too small - the biggest was not more than a hundred times as big as the smallest. A few firms needed the results and were willing to pay for them, so we decided that there might be a future for the computer business, although it would be hard to find enough customers and much harder to find enough mathematicians. It did not seem a very promising enterprise. Noone in the world foresaw the boom which has made the industry grow so explosively since about 1960.
We were more worried by the shortage of mathematicians and programmers than by anything else, so I must try and explain why programming was so difficult in those days. A computer can do only and exactly what it has been instructed to do. The first machines were programmed in the very greatest detail by the mathematicians who used them. Every single instruction had to be identified and all its implications had to be considered before it was put into the machine. It is astonishing, and rather amusing in retrospect. to realise how difficult it used to be to get any programmes right: and to persuade the machine to work for long enough to use them. It was no small job to work out such a simple sum as the sine of an angle. I recall my struggles with a few simple routines only too well. Strong, patient men were reduced to frenzy and many a competent, diligent programmer began to doubt his own sanity when an apparently perfect routine failed to produce the answers he expected.
I think that part of our trouble was due to our upbringing. We believed subconsciously that a mathematician ought to be able to solve a problem and get the right answer sooner or later, even if he were wrong the first time he tried it. We were sure that if we took enough trouble, we should get our programmes right before we ever put them on the machine. But they were wrong time after time. It was humiliating. It was infuriating. Lots of people gave up altogether. I did for one.
Our task was complicated by the fact that we fed information and numbers into the machine through a teleprinter, and that instructions such as add, subtract, clear the accumulator and so on, had symbols such as & and quotes and the ordinary alphabet all mixed up. Programmes which had taken hours to prepare looked like gibberish to people who had never seen a programme before and they behaved as if they were gibberish when they went into the machine.
It was obvious that if programming was going to be like this, our expensive computers would only be used by a few, very remarkable people. I remember deducing that, if the speed of our machine had been increased a thousand fold, we should not have increased its output by as much as a factor of two, because we spent so long in getting our trivial routines to work. And I had to sell the wretched things, if I was to earn my living and keep my firm in business. I decided that I had the most peculiar job in the world, until I met a man on the Queen Mary who sold lighthouses on commission and he told me about some of his problems.
We decided to recruit some good chess players who could do crossword puzzles in their heads, but someone in the personnel department must have slipped up. We actually recruited some of the prettiest, most delightful young women I have ever had the good fortune to know. Women mathematicians in the mass can be astonishingly nice. They tackled our programmes with skill, determination and enthusiasm. We began to get results more and more often. We were in business at last. We never looked back! It was not until years later (when she was married and had several children) that I discovered that one of the girls could in fact do crossword puzzles at extraordinary speed - sometimes in her head, and that she was very fond of chess!
We persevered because we knew how much arithmetic had to be done in a design office or a bank and we felt certain that someone needed a machine which could add up a thousand numbers in a second. Sooner or later we were sure we should learn how to write those programmes more easily. We were relying on the fact that most calculations are repetitive, so that the machine can use the same routine thousands and thousands of times, for example it could work out the logarithm of any number we chose. All we had to do was to get the routine right once. We knew that a machine can steer its own way through a programme and adapt its own procedure as it goes. It uses what is called a conditional transfer of control and I shall explain how it does that in a moment. The applications of these two ideas have created a giant modern industry. The first seems obvious and it had been used for many years; the second is much more sophisticated and it was unfamiliar to all of us when we began.
You can imagine our astonishment when we realised that both ideas had been described in detail more than a hundred years before us in 1846 by Lady Lovelace, who was the daughter of Lord Byron and who was one of the most beautiful programmers who ever lived. She was the confidante of Charles Babbage, that eccentric Cambridge professor who devoted his life in an unsuccessful attempt to make a computer out of cog wheels and levers and fonts of type. We should all be thankful - and amazed, that Babbage's work and Lady Lovelace's book invalidated a whole series of master patents which were being filed in America after the War.
But for nearly ninety years after she died, Lady Lovelace's ideas were completely forgotten. Professor Aiken did not understand them when he built the first mechanical digital machines in Harvard during the War with the help of IBM. Engineers in the Moore School in Pennsylvania built the first electronic computer (ENIAC) to work out the trajectories of shells for the American Army during the war. This was probably the bulkiest machine that has ever been made, but it was very inflexible and it could only keep on doing the same sum, over and over again, because it could not use a conditional transfer. Lady Lovelace's principles were rediscovered by von Neuman in Princeton, by Turing in England and by Wilkes, Williams and Kilburn, who built the first machines in England about 1950.
I was fascinated by Lady Lovelace. I met her granddaughter, Lady Wentworth who was a magnificent old lady. She showed me her grandmother's papers and her portrait, which I used as the frontispiece of my book (Faster than Thought, published by Pitman in 1953 and frequently reprinted. I reprinted Lady Lovelace's fundamental paper as an appendix). Then she took me out to see some of the finest arab horses in the world. But that is another story.
Lady Lovelace explained how easy and how important it would be to use the same routine again and again. Her programmes were to be punched on cards, much as they are today, and Babbage devised techniques to send the same deck through the machine time after time. She went much further than that. She said : the machine is capable under certain circumstances of feeling about to see which of a certain set of eventualities has occurred and of shaping its future course of action accordingly. She knew how to make it steer itself through a complicated calculation by deciding what to do next after studying for itself what it had done so far. She knew, as Babbage put it, how to Make the machine drive itself forward by biting its own tail.
What happens is this. The machine is made to examine the contents of a particular store which contains a number which it has computed. If the number is positive, it then follows one set of instructions, if it is negative, it does something else. The programmer does not know which course of action the machine will actually take because he has not done the sum himself, but he has had to specify in detail what the alternatives are. If, for example, a client is in credit, a firm can let him have more goods, otherwise not. If the tension in a girder is less than the breaking strain, the bridge may be safe - otherwise not, and so on and so on. Any calculation depends on decisions like these. This conditional transfer of control, as it is called, is simple but all important. We based our plans upon the fact that our machines could do it. They could, as it were, play a mathematical version of Twenty Questions. for themselves. They could steer their way and chart a course for themselves. Their power seemed to be limitless.
In the end I became the first person who ever sold a digital computer on the commercial market. It went to Toronto, and the first job it tackled was to study the flow of the St Laurence River through the fragmented channel past the Thousand Islands. These calculations had to be done before the Seaway could be built. It had been estimated that clerks using desk machines would take twenty years to finish them. Our machine did the work in three months. The Canadians told us that the machine had paid for itself several times over by doing this one calculation so quickly.
Within four years of the installation of the very first machine in Manchester, Gordon Black had made it design a photographic lens all by itself. He instructed it to trace a series of rays through the system and find where they intersected the focal plane of the lens. The machine deduced the imperfections of the image; it then changed one of the parameters of the lens system, such as the curvature of one face of one component, and tried again. If the change had improved the lens, the machine went a bit further until it had optimised the first parameter, and then it started on the second. It went on and on until any change of any parameter degraded the lens, and then the machine printed out the specifications of the best lens it could make. The machine was instructed to make a three component lens out of Chance's best optical glass. Half an hour later it produced a first class Cooke lens. This was the design which had revolutionised the whole optical industry when it was invented by Dennis Taylor about 1895. It made the fortune of Taylor, Taylor and Hobson in Leicester; and Zeiss based their Tessar on it. Not bad for half an hour on a computer!
But, of course, the computer had done nothing really new. Optical designers had done as well fifty years ago. The point was that calculations done by hand were slow and very time consuming; furthermore a complicated lens would occupy a designer for half a life time - the machine was much faster than a man and much better able to tackle a dull repetitive calculation. Dr Wynne used a machine to optimise a system with seven or eight components, and produced a lens incomparably better than anything that any man had ever designed by hand, and this lens is in use today.
By 1960 a similar technique was optimising the design of nuclear power stations and at one time a bell rang in the design office in Risley every time the machine had reduced the price of electricity from the proposed new station by one thousandth of a penny per kilowatt hour. People came for miles to listen.
All these calculations depended on the repetition of scores of similar computations and a series of very simple choices which were well within the power of the machine. They would have appealed enormously to Lady Lovelace. To a remarkable degree they are implicit in her work.
But these programmes were written by a few very able men at a time when computers were an esoteric mystery, and very few people understood them, or could use them. Today a computer is an essential tool for a mathematician, and the art of programming has been so much simplified that big modern machines can be used by competent undergraduates, precocious schoolboy mathematicians, or by professional accountants and bankers and insurance clerks who have never been educated as mathematicians in their lives. I believe that the development of the techniques of programming which has made it possible for ordinary men to use these most complicated machines is one of the most remarkable of all the intellectual achievements of mankind. Very few people appreciate it. The work was done by a handful of men in fifteen years. Few of the men concerned are known to the public; Richard Goodman was one of them.
It is notorious that it usually takes an enormous amount of hard work to develop any new technique so that ordinary people can use it. Just think, for example, how long it took to produce motor cars that ordinary people could drive. It is just as hard to popularise new mathematical ideas as it is to get new machines into mass production. The computer revolution depended on the simultaneous development of completely new electronics and completely new mathematics. I shall speak first and very briefly, about the machines.
Since I first knew them, computers have become about a thousand times faster, much cheaper, much more complex but much smaller in size and very much more reliable. Noone could possibly have foreseen the rate at which they have improved. Our first machine had about 10,000 digits in its fast store. Each digit cost about £2 in circuitry, and it took a quarter of a millisecond to get at it.
A modern machine may have a million or more digits in its fast store, each of which costs about six pence in circuitry and each of which can be read in a little more than half a microsecond. The backing store in my old machine was a drum: it held about six hundred thousand digits which cost about 1d each. A modern machine may have a hundred million bits which cost 1/100 of a penny each in a disc file. It may have another thousand million bits on magnetic tape. This is equivalent to all the information in all the volumes of the Encyclopaedia Britannica!
A table may help:
|Mk 1||1952||£2.10.0||240||10,000 bits filled a room|
|1900||1968||£0.00.6||0.6||1 million bits take about half a filing cabinet|
|Machine||Size||Price per bit|
|Mk 1||600,000 bits||1d each|
|1900||100,000,000 bits||0.01d each|
Transistors have replaced valves and sandwiches of printed circuits, made automatically from strips of copper, have replaced the old-fashioned wires each of which had to be individually soldered. The printed circuits are far too complicated for engineers to understand. They have to be designed by another computer - a fact which must astonish the layman but which, so far as I know, has no theological significance at all and throws no light on the origin of life!
The price of all the components has come down dramatically. Today a single solid state package about an inch long which has 4 norgates in it costs about 13/- to make. It replaces 4 circuits each of which had 2 valves and 2 diodes in. In my time, the manufacturing costs of such a package would have been £20 a valve and £10 a diode. A single package would have cost £200 and occupied a chassis 12" square. Machines have become much more reliable as they have become faster. We were once very pleased if our slow old machine ran for an hour without a mistake Today a machine a thousand times as fast need not make a mistake more often than once a week. These changes are among the most dramatic in the whole of modern industry.
The smallest computer which is now being made in the ICL factory in Manchester has two thirds the power of the Atlas computer which was the biggest machine in the world five years ago. The firm has sold more than 1000 of its latest series, any one of which can do much more work than all the machines in the world could have done in 1953.
But I want to explain this all important revolution in the art of programming. There have been intellectual revolutions before and some of them have made it possible for unfamiliar techniques and ideas to spread among the hoi polloi. For example, Mr Pepys was Clerk of the Acts and the Administrative Head of Charles the Second's Navy. He never learned his multiplication tables until he was grown up and wanted to check some of the bills that he paid for timber in the King's ships. He described in his diary how he rose before daylight to learn the simple arithmetic which we expect our own children to learn in primary school. He was so pleased with himself that he taught his wife to add, subtract and multiply, but she found division was too hard for her and Sam taught her the use of globes instead. Mr Pepys became President of the Royal Society, and his name appears on the fly-leaf of Newton's Principia in which the idea of the Laws of Gravity was first expounded to the world.
Sir Isaac Newton had invented the calculus and he used it to investigate the dynamics of the solar system, but, before he wrote the Principia, he had to spend an enormous amount of time and effort to prove his theorems again by classical Euclidian geometry. He was one of the most inventive geometers who ever lived and some of his proofs are incredibly ingenious, but he had to be ingenious because his contemporaries could not understand his calculus.
Today a schoolboy mathematician who knows the calculus can prove that a uniform sphere behaves as if all its mass were concentrated at a point, but it takes a very good man to prove the same theorem by Euclidian geometry as Newton did in the Principia. Newton's mathematics was beyond most of his contemporaries, and the calculus was not used very much in England for nearly a hundred years after he discovered it. For one thing, Englishmen got carried away by absurd arguments about the rival claims of Newton and Leibnitz, They felt it was unpatriotic to use Leibnitz's notation of dx/dt for differentiation instead of Newton's less convenient X with a dot above. Babbage's first recorded ambition was to recommend the principles of deism instead of the dot-age of the University! A couple of generations passed before professional mathematicians used the calculus freely as a conventional technique.
Euler, who was one of the greatest and most creative mathematicians who ever lived, devoted many years to the task of simplifying Newton's mathematics. He made the calculus useful to ordinary people, and in the process he formulated most of the mathematics which is studied today by 6th form schoolboys and undergraduates.
I believe that the achievement of those mathematicians who have converted programming from a mystery to a discipline in the last decade ranks in significance with a century's work by Euler, his contemporaries and his successors, There were giants in those days - I believe that we have giants among us today, but I am afraid that we do not always recognise them for what they are.
And now I can turn at last to the development of those wonderful and most sophisticated inventions which are usually called languages and upon which all modern programmes depend. I am not going to talk about the details of individual languages. I don't understand them. There are scores of them. They are all very complicated and most of them have dialects which come and go as years go by, Men argue bitterly about them and their merits. but languages are here to stay and without them ordinary mortals couldn't hope to use modern machines at all. Fortunately few people need to understand the logical structure and nature of a spoken language, which everyone can speak. Programmers can use machine languages with confidence, however little they know about the real nature of syntax structure.
They began very modestly. I have explained how some routines such as those which work out the tangents of angles and the logarithms or square roots of numbers can be prepared once and for all and kept permanently in the backing store of the machine. It was fairly easy, therefore, to arrange that they could be called out and used if the programmer punched up the English word sine or log. This phrase identified the appropriate routine, much as the first three letters of the name RINgway identify the number 746 and connect a caller to my local telephone exchange. That was an easy and very important first step to help the programmer. Then there was the problem of computing a number, storing it somewhere and retrieving it when it was needed. It was a nuisance if the programmer had to do such a trivial task for himself every time, and keep track of all his intermediate results. It was not hard to make the machine choose a pigeon hole for the number, and record where it was without bothering the programmer. Methods such as these were used fifteen years ago - they helped a lot, but they could not be called a language.
Soon afterwards people began to write detailed instructions, such as V1 = V2 + V3, in which the sign = had a meaning - that V1 is to be computed by adding V2 to V3.
And then came V3 = V4/V5, which meant that the machine had to work out the ratio of V4 to V5, and thereby compute V3 which was stored somewhere in a location which the programmer never knew, but which the machine recorded as V3. This rather rudimentary language was used in Manchester fourteen or fifteen years ago. It meant that the ordinary programmer had much less to do, because part of his job was being done for him by the machine, which computed the details of its own operations from the relatively brief outline which the programmer wrote.
This scheme may appear to be quite simple, but the master programme in the computer which interpreted these instructions was very complicated. The order code in the machine was still much as it always had been. It defined the successive operations which the machine actually performed and it was restricted to the simple instructions, such as add, subtract, transfer the number to the accumulator and so on. This was the fundamental order code which the pioneers had used, but now the machine itself translated from one system of instructions to the other.
As time went on, people became more and more ambitious, the shorthand which the machine could interpret became more complex, the interpretive routine in the machine itself became even more sophisticated, more detailed and much longer.
Despite all the care which was lavished on subroutines, on interpretive routines and on symbols, progress was slow. Ordinary men found it easier to use the computers, but easy programming was bought at a price. A programme which had been interpreted by the machine was less efficient and much slower than one which had been written out in detail by a man. The system was very helpful to programmers. So many people used it that the few key men in England who were writing the interpretive routines were under great pressure to develop the system even further.
At about the same time, and for much the same reason, the Americans began to develop a similar system which turned into Fortran - which was the first computer language to be accepted internationally and which is used for three quarters of all the programmes in the world today.
One thing led to another. Now we have Fortran and Cobol and Algol and scores of other languages. Each of them has a grammar and a syntax of its own, to say nothing of a vocabulary and its subject matter. They were developed and used in America before we could use them in Europe, because at the time our machines lacked the enormous memories which are needed to hold all the complex routines which convert programmes written in the languages into the detailed sequence of operations which the machine must follow.
Cobol, which looks more like English prose than the other languages do and is much used in business and commerce, can interpret such instructions as subtract deductions from gross giving net, which will be needed by anyone who draws up a balance sheet. It involves several subtractions and a comprehensive search for deductions, and I must emphasise once again that the task of the man who writes out this simple and unambiguous instruction is easy and straightforward, whereas the man who devised a routine to make the computer obey it did something very remarkable indeed. Many phrases in Cobol involve thousands of operations which are quite unknown to the man - an accountant perhaps. who is using the machine. Some of the interpretive routines which are needed to exploit a programming language have become so complicated that many people have begun to wonder if they can ever be worked out in detail and be free from ambiguity.
For example, a Cobol programme can accept such instructions as perform tax-calculation. But in real life that operation requires the collaboration of a very good lawyer and an experienced accountant. To make matters worse, it is essential that the same Cobol programme must extract the same answer from any machine which uses it, although the machines may be big or small, fast or slow, and although the individual operations which they can perform may be quite different in detail. Is it possible that anyone can produce the complete routine for a machine?
Lawyers use incomprehensible jargon - or so many of us think - in their attempts to make the meaning of new legislation completely unambiguous. Some of the ablest men of every generation have devoted themselves to this task for hundreds of years, and yet the ambiguities of the law are obvious in nearly every case which comes to trial. Pure mathematicians are often vexed and astonished to discover that it is very much harder to programme the accounts of quite a small company than it is to work out the solutions to a dozen complex partial differential equations. Anything that involves people seems to be complicated and potentially ambiguous. Can a computer language be infallible?
English is a language full of redundancies. It seldom happens that a single mistake is of-itself enough to make a sentence totally incomprehensible if one reads it in context - that is why crossword puzzles are possible. But the instructions which a machine must follow are usually such that a single error, however trivial, produces total chaos. It is as if a single spelling error in a text destroyed its meaning completely and turned a whole book into gibberish. For this reason, a good interpretive routine makes the machine investigate the programmes which it accepts. It will reject them if they disobey the simple rules of grammar which the machine has learned. The master instructions inside the machine which must be prepared by its makers are becoming unbelievably complicated.
In 1955 IBM used to supply 5000 lines of code with their 650 sets; in 1957 about 40,000 lines with their 704's; in 1964 they provided 600,000 lines with their 7090; in 1966 they provided a million lines for the 360 series and in 1968 they provided eight million lines for the same machines - and these enormous programmes were intended to make it possible for other men to write their own programmes as easily as possible. They will take at least 5000 good mathematician years to prepare and they will cost about 50 million dollars a year while they are being written. Fifteen years ago, the software cost at least half the price of the machine on which it was used. Five years ago, people complained that their software cost as much as their machine. Today the software is often more expensive than its machine and it is at least as important.
The total number of programmers in the USA (the men who use machines for their own problems) has grown exponentially and increased ten-fold every five years ever since the business began nearly twenty years ago. If the number goes on growing in the same way until 1975 (which will soon be with us), there will be half a million programmers in America. This will be ten percent of the number of Americans in the age group 25 - 45 who are clever enough to learn to programme. If present trends continue until the mid-1980's every intelligent, able-bodied American might be programming!
The same sort of thing is happening in Europe. In 1958 lCT had about 50 programmers. Ten years later they had 2500. This corresponds to a 50-fold increase in ten years, which is nearly as fast as the growth of IBM. If all the mathematicians who will graduate from all the universities in Europe became programmers, we could not sustain this rate of growth for another decade. I repeat - the profession only began twenty years ago. In another ten years it will dominate the earth, if it goes on growing at the same rate!
The problem of uninterrupted exponential growth afflicts many other industries and it is beginning to cause trouble all over the western world. I think that this is one of the immediate causes of the brain drain, because so many professions which have always been independent have suddenly begun to compete with each other for the same very able men. For example, the number of men in the electrical engineering industry has doubled every eight years or so since 1850. If the process continues until the end of this century, every employed Englishman will be an electrical engineer. One can deduce with equal confidence that he will be a chemist too - and permanently stuck in a traffic jam!
All of these exponential growths will have to stop before long and I think that the computer business, which has grown faster than any other, must reach its limit quite soon. In particular, it is obvious that the master programmes (the computer software as it is called), which are going to take thousands of man years to write, will need large well organised groups of mathematicians to make them. But all the best programmes there are today have been produced by small groups of very able people who were left to get on with it for a year or so in peace. Every man understood everything in the programme. A group might grow to a dozen before it loses its coherence. Some big groups have written some very bad programmes in the last year or two, and I am afraid that ten thousand men would spend a long time doing an estimated 5000 man years of programming even if there are ten thousand men to be found who are good enough to do the work. It seems to be impossible for a very large group to work really efficiently. Everyone must know what his colleagues have done, if he is to do his own work. It is not possible to trample these big programmes to death. No executive can shorten the nine months it takes to produce a child however many men he puts on the job. These are enormous programmes - the gestation period of an elephant is very long.
An observer must ask quite seriously if the enterprise has already reached the limits of human endurance - or exceeded them. Is it going to be possible to do it? Is the present crisis - for it is little less, really due to a valiant attempt to exceed the bounds of the possible? It is even more difficult, more expensive and more time consuming to test these elaborate programmes than it is to write them in the first place. How can anyone check every possible case a machine may have to deal with in the next few years?
It is notorious that bureaucracies become inflexible as soon as they apply their rules rigidly in circumstances which were not foreseen by the men who framed the regulations in the first place, and probably did not begin to imagine all their implications. How much worse - how very much worse - it must be for men who are trying to programme a machine which has no sense of the realities of ordinary life! You will recall the story of the computer which was owned by the Gas Board. One of the customers was away for several months and he duly received a bill for £0.0.0. He ignored it, but the machine expected a reply. It sent another bill and when that was ignored it sent a final demand note which included a threat to cut off supplies from the customer's house. He thereupon sent his cheque - which pacified the computer. After a few days his Bank Manager asked to see him urgently. Why had he written such a peculiar cheque? To pacify the Gas Board's computer. Damn the Gas Board's computer. Do you realise that you have sent the Bank's computer crazy?
How does one expect a machine to know that if a young man of twenty can gather five pounds of blackberries in a day and a girl of eighteen can gather three, one cannot assume that they will gather eight pounds a day between them? I once threw the whole of the American Census Department into hopeless confusion all by myself. I had filled in a form which required me to state which language I could (a) speak, (b) read and (c) understand. I replied that I could read Latin, but I couldn't understand it. A little man came all the way specially to see me. It turned out that they could not code read without understanding on the census cards and if I insisted that this is what I did, they would have to alter and repunch the cards for 150 million American citizens! How can one make any system idiot proof? Even in principle?
A new American installation has been specified to have no more than two hours of down time for all causes including the failure of the hardware and of the software for forty years. Is this possible? Does it really mean anything? Can such a specification be satisfied by any technique which has yet been devised or can be imagined? How on earth could anyone be sure that he had met the specifications? I can only hope that this installation is not going to be used by Dr Strangelove.
Perhaps a new and more manageable system will be devised some day. Perhaps someone will drastically simplify the task of the relatively few courageous men who created the languages we have in use today. It will take a genius to do it and I can only hope that the hour will bring forth the man - and before too long, otherwise the whole system may collapse under the weight of its own complications and complexity. Computers have produced their miracles quite often in the last twenty years - new miracles may not be beyond the bounds of the possible. Perhaps the Chinese may do better than we have done so far. Their ideograms are comprehensible to men who cannot talk to each other. I wonder what will happen.
In spite of what we have all lived through in the last twenty years, lots of men who have designed new machines and installed them have assumed that Providence is with them, that the miracle has just happened and that this time new programme would be easy and cheap to prepare. Scores of people who should have known better have grossly underestimated the amount of work which was needed to produce their software. There are far too many examples of machines which did not work or earn a penny for their owners until they had done four times as much programming as they allowed for when they bought the machine and costed the installation. Large scale programming is so expensive that a firm which makes such a bad forecast can bankrupt itself and many firms have discovered the hard way that software always costs more than you expect.
But in spite of all its troubles and set backs, the computer business keeps on growing. ICL is the biggest computer manufacturer in Europe. They have sold more than a thousand big machines in the last three years. Their engineers are talking of the two thousand million pounds worth of business they would like to do in the next decade. And IBM grows beyond all imagination. Four years ago, it was the sixteenth biggest firm in the world. In the following year its sales were as big as those of the Imperial Chemical Industries and the British Motor Corporation put together. Its profits were as big as those of the Imperial Chemical Industries and the British Motor Corporation put together twice over, and it climbed to be seventh in the league table. It has done very much better since then and it is beginning to challenge Standard Oil. If it goes on growing in the same way, it will dwarf General Motors and take over most of American industry by the early 1980's. No great industry has ever grown so fast in the history of the world. What would poor Lady Lovelace think about it all? When will it ever stop?
Every time one is reduced to despondency by the difficulties of programming and by fear of future catastrophe, one finds that the engineers have saved the situation once again. Cheerfulness keeps breaking in. They may not have solved the problems of the software manufacturers, but they have just done something which will help the multitude of ordinary programmers very much indeed.
Ten years ago a programmer could go into the operations room and put his own tapes on the machine during the gaps between other people's programmes. Today hundreds of men use the same machine and the old informal system has broken down. A man prepares his tape, punches it up, sends it in to the machine operators, waits for a day and finds that something is wrong. He may discover his mistake in ten minutes, but he has to wait for another day before his revised programme gets on the machine, and he finds that something else is wrong. He has spent a day doing ten minutes work.
For this reason the engineers now build a series of quite independent consoles, from each of which a programmer can have direct access to a big machine. The machine itself will be working continuously, solving half a dozen problems at once; it switches itself automatically from one problem to another, so as to make the best possible use of all its resources, but it can spare the time to enter into a dialogue with a man at a desk a mile away. He types something on his teleprinter and at the next convenient opportunity, which may be after a second or so in which it has processed a few million digit, the machine calls down his programme from its store. The solitary mathematician can alter his programme and try it again. He will soon know if he is wrong again. The poor man may still be confused, but he has become confused in a more sophisticated way than he was before. He tries again. Slowly but surely he progresses until he gets his programme right. At this point someone may come in to tell him that the original equations are wrong, and he must begin again, but in the end all should be well.
The concept is magnificent, most of the hardware is finished and working. The master programme in the main machine has to ensure that all the operators get their turn, that they do not interfere with each other or with the main calculations which are being done half a dozen at a time, that each can get at his own routines in the machine without being confused by a bit of someone else's and finally that everyone gets the answers to his own problems. Does it alarm you or surprise you to learn that this master programme is not yet perfect? Until someone can get it right, everyone is going to have to develop his own programmes at the old rate of ten minutes effective work a day.
The limited success of these independent consoles has already inspired even more ambitious plans. If a machine can be linked to a console some distance away, it ought to be possible for anyone to use a complicated programme which has been put into the machine by someone else. If, for example, a man in London wants to design an electric filter, he can be linked by trans-Atlantic cable - or by satellite if he prefers, to a machine in Cambridge, Massachusetts which contains a programme to help him. He can supply the machine with details of band width and cut off frequencies, and it will work out the number of components, and the sizes of the inductances and condensers he needs.
I tried it myself a few years ago, and just to fool it, I asked it to design a filter with impossible parameters. It solemnly printed out a table of enormous inductances and absurdly small condensers. The design could never have worked. The machine should have printed ask a silly question and you will get a silly answer, but all it had been programmed to do was a simple routine calculation which an engineer could do for himself.
It is clear that computer aided design has its limitations. How are we ever to be sure that the general formulae for designing - say a suspension bridge, can be taken over from one calculation to another, or be used safely by a simpleton after a genius has worked them out?
It is only too easy to assume hopefully that a very complicated routine will get sensible results from poor data. This is never true. Nonsense in; nonsense out is a good working rule for all computations, and it always has been. About thirty five years ago one of my seventeen year old students built a simple analogue computer out of half a dozen transformers to solve simultaneous equations.
I set it to solve the set:-
X + Y + Z = 1 X + Y + Z = 2 X + Y + Z = 3
It blew the main fuse and put all the lights out. Digital computers. are never so dramatic, but they can and do print out yards and yards of rubbish unless absolutely everything is right!
The bright promise of centralised computation, which, so it was thought, would allow anyone to use his console to solve almost any problem has not been fulfilled. I think the idea has been a mirage which has misled many a weary traveller. I shall be fascinated to see what happens in the next decade.
But even if this type of dialogue between mathematicians and computers is less attractive than it might have been, the business of transmitting data in bulk for processing all over the world has grown explosively fast. Telephone engineers have used conventional cables to link computers to each other and to places where information is collected. The system did not exist ten years ago. Today as much information is transmitted over telephone lines in digital form as is transmitted by all the voice channels put together. The Americans say that, if they were to start designing their main telephone system again, they would begin with digital transmission and add the telephones as a simple after thought. Western Union was once the biggest telegraph system in the world, but it has been bought by a computer firm, and that is indeed a sign of the times.
The millions of digits which flow every second all over North America - and Western Europe, carry information about inventories for the armed services, stocks and supplies for shops and warehouses, about the accounts of the main banks, about the income tax returns of millions of citizens, about reservations on air lines and about commercial transactions of all kinds in infinite variety.