Transcript
Transcript prepared by
Adám Brudzewsky and Bob Therriault
00:00:00 [Ken Iverson]
Suppose that these people had done like the modern users of computers seem to want to do, become enamored with the mechanics of the typewriter itself. And it's a marvelous gadget. The linkages in there are incredible. And you could spend a lot of time studying and explaining these things. And that, it seems to me, is what we're doing with the stuff in the computer. Instead of saying, "Okay, this is this tool. This is how you communicate with it. Learn interesting and useful ways to use it in something that interests you." Instead, we put the focus on the mechanics of this stuff. And that's where the mystification comes.
00:00:53 [Bob Therriault]
Welcome to The ArrayCast. The words that you just heard were spoken by Dr. Kenneth Eugene Iverson, the creator of the APL Language and 1979 Turing Award winner. He is the reason that this podcast even exists. In the next hour and 50 minutes, you will hear a conversation recorded in 1982 between Dr. Iverson and Whitney Smith, a freelance journalist. Whitney was collecting interviews about Dr. Iverson's employer, I.P. Sharp and Associates, to be aired on the national CBC radio program, Ideas. [01] These audio files are being heard for the first time publicly in over 40 years. And we're grateful to Whitney for providing our audience access to them. The following recording has some starts and stops as it is being captured with the sole purpose of later being edited. I've made the decision to keep these glitches intact, as I think that it shows how Dr. Iverson so easily accommodated the needs of the radio medium, even though, as you will hear shortly, he had just been woken from his afternoon nap. As I assembled this episode, I found myself envious of Whitney's opportunity to speak with Dr. Iverson, but also grateful that these thoughts were recorded for posterity. I hope that you enjoy this episode as much as I enjoyed putting it together.
00:02:18 [Roseanne Wilde]
I don't know. I think he just woke up.
00:02:21 [KEI]
Hello, how are you again?
00:02:24 [Roseanne Wilde]
Do you want to start from the beginning? We want to stage this. I just woke you up, I'm sorry. Let's try this. Whitney, this is Ken Iverson. Ken Whitney Smith from the CBC.
00:02:37 [Whitney Smith]
Hi, Ken.
00:02:39 [KEI]
Hi, how are you? Nice to see you, I guess.
00:02:40 [WS]
Yeah. Can I come in and and talk to you in your office here?
00:02:42 [KEI]
Sure thing.
00:02:43 [WS]
Sure.
00:02:45 [KEI]
Yes, well, I worked for 20 years at IBM, and I found it a very good company to work for, with a great deal of freedom. Now, my experience is probably not typical, though, because, first of all, I was fortunate enough to be looking for a job at the time when there was, in the late 50s, early 60s, when there was a great deal of interest in research, and a great deal of money, and a lot of willingness to put money into new and rather unusual things. And then, after about 10 years, I was made an IBM Fellow, which is a position that was created specifically to give people a lot of freedom to work. So, although my experience is not typical, but I must say it was a very nice place to work. Now, perhaps the most significant difference, as far as I'm concerned, with this company, apart from it being smaller and being a very, I was going to say loosely run, but that's not the word for it, it's well, something that Ian said to me when I was considering joining Sharp was that he said, "Coming from IBM, you will probably be upset to find that we don't make long-range plans. We sort of deal with things as they come." Well, to me, that sounded perfectly fine, because that's the way I have always worked, although IBM doesn't necessarily. But probably the big difference to me in Sharp is that, although APL, that I developed, has gained a lot of use and has become, I think, a significant tool in IBM, it is still a minuscule part of IBM's business. Whereas here, this is our business.
00:04:57 [WS]
Okay, what about other... Okay, tell me the story about you and Ian Sharp.
00:05:02 [KEI]
Oh, now this is apocryphal.
00:05:05 [WS]
I mean, obviously, one of the differences in this company and IBM is that your relationship with the president and who the president is, is different than...
00:05:14 [KEI]
Yes. Well, this, of course, is a story that's secondhand, so I can't really vouch for it, but I was told that, some years ago, that Ian Sharp was sitting around the London office after hours, about six o'clock, talking with one or two people, and the phone rang, and it was some customer who had run into some trouble in his programming and desperately needed some advice, which Ian was able to give him. And this man was so grateful, particularly since it was after hours, that he said, said, said how grateful he was, and said, "May I have your name?" And he said, "Yes, it's Ian Sharp." The man at the other end of the phone apparently thought this was just a nice joke, you know, he happened to have the same name as the company, so he said, "Must be pretty nice to work for a company with the same name." And this would be a marvelous opportunity to really flatten him by saying, "Yes, I'm the president." Instead, Ian said, "Yes, I suppose it is," and hung up. [laughter]
00:06:29 [WS]
Oh, I love that. That's a wonderful story.
00:06:33 [KEI]
Well the the reason I think it's a wonderful story is it's it's from everything else. I know it's it's absolutely believable.
00:06:39 [WS]
What does this say about the ensure? What is this? What is this story say about the insurer? I mean, you know him, so it ticks off things.
00:06:41 [KEI]
Well, it's just that, well, I think, I think the the difficult and unusual thing for anybody is is to deal with success, whether it's success in a professional way, financial way, management way, or whatnot, and this tells me that, what I know already, that Ian doesn't allow this sort of stuff to go to his head, as we say.
00:07:13 [WS]
TThat's such a great story. What are, does Ian have any philosophies, or does he have any platitudes or maxims that he quotes, or that he likes to talk about?
00:07:32 [KEI]
Well, I can't really think of any. It just seems to me the main thing is he has a practical sense and is not baffled by a lot of talk, and if he has any maxims, it tends to be things that are slightly ironic and negative. For example, he was, his background was in operations research. He was one of the early people in operations research, which came to be called management science, you know. So he knows what this stuff is, but he also likes to speak of management science fiction, which I think reflects the correct thing, that those techniques were very much overblown and oversold, at least for a period, and so calling it management science fiction, I think, is a useful term.
00:08:27 [WS]
Everyone around, at least most of the people around here seem to be quite happy. Now, happy, fulfilled is a better word, let's say, with this place. Maybe that's not true, but that's the impression I get. Maybe it's because they're paid well enough or something like that, but they seem to be fulfilled. Why do you say that? Is that much different than some place like IBM that's run well? Are people fulfilled?
00:09:07 [KEI]
Well, again, all of my professional life, since I became interested in mathematical work and computers, I've really just been with three institutions, with teaching at Harvard, and then for 20 years with IBM, and now with Sharp. So I don't know really how to compare this. The other thing is that in my work at IBM also, I was in the research division, and there the general feeling is that yes, people are fulfilled because they are mostly able to do what they are personally interested in. And this seems to be the case here, although this is far from being a research organization. It's too small a company to afford long-range research, really. And I think that that's the astonishing thing, is it's a service organization, and yet it seems to be able to attract people who like to work relatively independently. Perhaps one comment. My son made on this. He's worked for the company, I think, for about 15 years, much longer than I have. And one comment he made years ago, after I had visited here, and been rather astonished at how free things were run, and I asked him, "How is it possible to run a company with more or less people working on what they want to, more or less?" And he said he thought that people selected themselves, that he had seen many people come, and might be perfectly good people, but were not of the sort that were sort of self-starters and figure out for themselves what they want to make of this job. And that after a year or so, they would become so frustrated with, in effect, waiting for somebody to tell them what to do, that they would find something else. So that in a sense, as I suspect is true of any organization, it tends to select the people that fit into their way of doing things.
00:11:40 [WS]
How do you feel about being in a company where APL is being developed and is a product? Is it not a product?
00:11:54 [KEI]
Well, I'm not sure that's the right way to say it as a product. It's really the tool. It's a product in the sense that we make it--on this floor, we may essentially make a tool for use by our people, by our clients, to develop the systems that they need. So it's a product in a sort of an indirect sense, I suppose. And how does it feel to be working for such a company? Yeah, being the inventor of-- Well, it's great. As I said earlier, that working with IBM, even though it had some impact on IBM, it was so far from the--so tiny compared to the overall business that it wasn't significant. And here, it's quite different. And also, I just feel that here is the place where I am going to have the most influence on the continuing development of the language that I could expect to find any place. And that's a very nice feeling.
00:13:07 [WS]
I mean, who are you? Where did you? Where do you?
00:13:09 [KEI]
All right. Well, I was raised on a farm in Alberta. We were about 15 miles from the nearest town. I went to a one-room school. I think I got a remarkably good education there, partly because there was just one teacher. And one of the things that happens in such a situation is that the older children have to help the younger children. And I believe more and more that the best way of learning something is to be put in a position where you have to also teach it. Now, since I assume that you can edit this as you want, let me make an aside on this, which I think is a very amusing story. Are you planning to talk to Lib Gibson? [02] Yeah. Well, maybe I should let her tell the story, but on the other hand, maybe you should know about it.
00:14:00 [WS]
Yeah. Okay.
00:14:03 [KEI]
When Lib--Lib was hired into Sharp in the early days when they were just really getting started in marketing APL. And so first she was told to--given a manual and told to learn APL. And so when Ian Sharp came in, she said--asked her how she was getting along. She said, "Fine, but is there going to--is there a course available in APL shortly?" He says, "Yes, there's one starting next Monday." She said, "Oh, that is great. I want to take that." He said, "You'll be giving it." But as I say, this is second hand and you better get the thing from Lib.
00:14:54 [WS]
Okay. Keep going.
00:14:57 [KEI]
Oh, are we still on? Yeah. Yeah. As I say, we're going to be interrupted in a second again, but-- Okay. All right. I was--I was raised on a farm in Alberta about 15 miles from the nearest town. I quit school at 13 in the Depression and went to work at home and for neighboring farmers. And probably would have stayed on the farm except for the fact of the war. I went into the Army in--at 21. And when I--during--when I was in the Army, I took the opportunity to use the Canadian Legion correspondence courses in order to finish up most of my high school. And then I transferred to the Air Force. And in the Air Force, for the first time in my life, I fell in with people who knew something about colleges and professions. In fact, back--from back home, it never occurred to me that doctors and lawyers and whatnot existed or needed special training. Anyway, I did fall in with a lot of people in the Air Force who either had interrupted their college education or were planning to go back to college, and so on. So one of my friends in particular told me that--that I should go back to college--or that I should go to college. And in fact, he would come back and beat my brains out if I didn't. Then the--as you probably know, the veterans' benefits for college were really quite generous in Canada. I guess much the same as in the States. But anyway, I was able then to--to finish up my high school and went to Queen's University for four years studying mathematics and physics. Then the head of my department advised me to go on to graduate school, and I was still able to do so again with government support. So I then got my doctorate in applied mathematics at Harvard and was--I was fortunate enough to graduate just at the time when--when Professor Aiken was putting together what became, I would say, the first program in computer science. And I was one of the junior faculty that was appointed to--to start that work. So that's how I came to be involved in the computer work. As to the invention of a language, that essentially was just the following, that in trying to write about topics of application of the computer and teach courses related to it, including graduate courses in operations research, I found that the notation that was available was-- was inadequate. The mathematical notation that I was--had been taught, I found, was inadequate in many ways for--for this kind of thing. Consequently, I tended in my own--in my work to simply gradually develop notation, and I soon became, in a sense, more interested in the notation than in the specific topics. Consequently, as I was teaching different areas, I would tend to develop notation and use the same notational schemes in other areas. So the--the language really just developed in--as a tool for communicating with people, and it was only--well, it developed for communicating with people and developed in a lot of different topics, a lot of different areas. Then when I--I left Harvard after teaching there for six years and joined IBM Research, and there for the first time I was able to have resources so we could think seriously about making what we call a computer implementation of a language, in other words, in effect, setting up the machine so that it can speak the language, in other words, to execute anything that you would--any sentence that you can express in the language would then be understood and carried out by the computer. And so it was at IBM that I was first able to get the resources to do that sort of thing, and since then, then APL has become a--a language usable for practical purposes on the computer, and that has been, you know, what--what the world--most of what the world has seen of it. This is not exactly a one-paragraph thing that you asked for. I guess you can cut it out.
00:19:52 [WS]
Why did you go to IBM? Why did I go to IBM? From teaching at Harvard.
00:20:01 [KEI]
Oh, well, the--the reason that you go someplace is because you're leaving someplace else, and I left Harvard because I didn't get tenure. Harvard has a--had a--had, and I think still has, a very humane system, namely that you get a five-year appointment as an assistant professor, and by the end of the four years, they make a decision whether you're going to be granted tenure or not, and if you're not granted tenure, then you're out. And as I say, I think this is a very humane thing because in many cases I have seen people clinging on desperately for year after year after year, thinking they're going to get tenure. And also, if you have had even an appointment--a junior appointment at Harvard, it's not a bad stepping stone for getting someplace else. At least it wasn't--wasn't in those days. So it's not doing anybody any serious disservice, either. So at that time, IBM was greatly expanding their research division, which in fact had been formed not--not too long before that. That was in 1960. Furthermore, one of my very good friends who had--who had been a graduate student at Harvard also, Fred--Fred Brooks, had joined IBM several years-- several years earlier, and so I knew a good deal of the kind of work that he was doing, and he urged me to join IBM because he thought it was a good company to work for. And it turned out that they also offered--made me the best salary offer as well, so it wasn't a difficult choice.
00:21:48 [WS]
UM, have you made a lot of money from inventing APL?
00:21:54 [KEI]
Not that I can notice.
00:21:57 [WS]
I mean, well, like you're an inventor. You've you've got something that's that's that's used.
00:22:01 [KEI]
Oh, all right. Well, let me--let me--first of all, the fact that--the fact that APL gained some reputation in IBM got me this appointment as an IBM fellow, and IBM fellows are paid a little bit better than normal. As a consequence--well, and also, once your salary gets up like that for whatever reason, it tends to stay there or not drop, so I think I've benefited from that. But as far as benefiting directly from the language, as far as having a proprietary interest in anything, no, not at all. Well, that--perhaps I should say something about my--my working under Professor Aiken. That was a really marvelous experience, because not only the--
00:22:54 [WS]
I'm sorry. Who is Professor Aiken? I mean, I've never heard of Professor Aiken.
When I went to Harvard, I went to the math department, and in the first year there, I took--simply because I had read a little bit about computers and realized that there was a course in computers there--I went and took it, even though it was in another department, and it was given by Professor Aiken. And this was a really marvelous experience for me, because Professor Aiken had a way of stimulating his students to realize that here was a field in which there was still a lot of interesting work to do, and he was constantly talking about unsolved problems, things that were left to do. And it was a real exhilarating experience, because in mathematics, typically, you get the impression that everything was done at least 200 years ago, and all you need to do is to get stuff packed into your head. So consequently, I was very much attracted to this, and I--and I then transferred from the math department into this department in which this work was being carried out, and thereafter then studied under Aiken. I did my thesis work under Aiken. But apart from the teaching about computers and mathematics, he also was a very practical man with a lot of good ideas about how you get things done. And I could give you a lot of quotes of that kind, but one of the things that's pertinent here was the fact that he said, he said, "Don't ever get involved in patents or litigation over your work." And then he went on to give examples of colleagues of his who had--they were usually people in an academic position, a professor or something like that, and they have some invention, some computer or something like that, and the first thing that they try to do then is to form a company, to exploit it, and then, you know, maybe that's what they wanted to do, but it certainly does--did not allow them to continue to do real professional work. And he gave example after example, and of course there are a lot of examples of this too. The man who invented FM, Major Armstrong. If you've ever read that story, it's pathetic. And the really pathetic thing is this. I don't think there was any indication that he was suffering. He was living comfortably and all that, but he developed this obsession with this was his property and he was going to exploit it. So I have partly from, I think, perhaps largely from Aitken's influence, I've always felt that, you know, far from charging for it, I would like to pay people to take the ideas rather. And Armstrong finally committed suicide. It's sad.
00:26:11 [WS]
And it's--so I think-- But wasn't it after he actually heard that he got the money?
00:26:17 [KEI]
I don't remember.
00:26:19 [WS]
I think he had won some-- He had just won the recognition, he'd won the litigation, and he'd received a certain amount of money, and then he didn't. Like two hours later.
00:26:29 [KEI]
Well, it's a--you know, there's only a certain amount that you can do in your life, and if your purpose is to make money, I assume you can do that. But I think this other is much more interesting.
00:26:46 [WS]
Well, you've got enough money to--
00:26:47 [KEI]
Well, you know, I get a lot--I get--oh, no, never as much as you-- No, it's things you've always got, you know, offspring and relatives and whatnot that you could do something for if you had more money. But money has never gotten in the way. Not really.
00:27:02 [WS]
Not really. Well, that's what he was saying. He was a smart man. That's a good thing.
00:27:05 [KEI]
Okay. So where do you want to start?
00:27:11 [WS]
What's--I want the first lesson in APL.
00:27:15 [KEI]
What is APL? Well, let me start first with saying something about what is a programming language. Any programming language is a formal language, by which we mean that it's precise and has a relatively small number of things that you can say directly. Consequently, it is possible to say something very precisely, but it might be rather cumbersome. You might have to do a whole lot of things. It might be worth mentioning a formal language which most people would be familiar, and that's the language that the Army uses on the parade ground. [03] That is a formal language. There's a relatively small number of commands that you can give, like right wheel, quick march, and so on. And with that, you can execute marvelously precise maneuvers. But to do such a simple thing as, in effect, saying, "Let's form up on the north side of the parade ground facing south," instead you give us long sequence of commands to do it. You can do it precisely, but it may be somewhat cumbersome. And programming languages are much the same. In fact, I think it's worth commenting that the word "program," in that sense, is used in exactly its English meaning, and in fact in exactly the meaning that's derived from the Greek, "gram" meaning "to write," and "pro" meaning "in advance." So a program is simply something that is written in advance. That's true of a program of music. When you go to an evening of music, you're handed a program. And what that does is tells you what is going to happen. And if everything goes well, that's what happens. So that's the sense of a program, and that's all there is to the meaning of a program in the case of computers, too. Now, the way that APL differs from most programming languages, I think most significantly is based on the motivation for its development. It was developed with the intention of using it for communication between people so that I was not interested at all in the limitations of the early computers, of the limitations of the characters that would print, so that, for example, whereas most programming languages use an asterisk to represent multiplication, I, having been raised as a mathematician, knew that the cross is what you use for multiplication. Consequently, for every symbol, I used the mathematical symbols or invented symbols that would graphically suggest the operation to be performed. So the point is that APL is a formal language, but it is one which was designed primarily for communication between people and the implementation on a computer came much later, which had several advantages. One was that by that time, by a lot of serious use of the language, we had worked out all kinds of difficulties in it, simplified it, and the other thing was that by that time, the computer technology had come along far enough so it was possible to do the things that we wanted. One thing, for example, that may seem a peripheral thing, but it's rather important, was that this was about the time that the IBM Selectric typewriter came out, which had the changeable typing element. Consequently, when we were doing our implementation of APL, we recognized immediately that that would be a possibility for getting the symbols that we wanted. So we designed a typing element, had it made, and that became the APL character set, which is in fact essentially the same character set that's still in use today.
00:31:10 [WS]
Okay, now can you show me on the blackboard an example of the character set? When you say a character, you mean like a letter or a number or a symbol?
00:31:21 [KEI]
Yes. Well, by a character-- So we have certainly the Roman alphabet, the numerics, the decimal point, and things of that kind. Now, most programming languages go to things like this, that if you want something like plus, in COBOL, for example, they wrote P-L-U-S. And you can go on with that, writing T-I-M-E-S, and one of the disadvantages of that is that it becomes so spread out. Instead of using St. George's Cross for plus and St. Andrew's Cross for times, which all of us know, and when you come to symbols for divide, which is just a colon with a horizontal bar in it, imagine having to write divide. In fact, you couldn't even write divide. You'd have to say something like "divided by" in order to communicate the right idea. Now, this has also other disadvantages, apart from being so spread out. You recognize that all of these things that we're talking about so far really have the characteristic of verbs. In fact, maybe I should have started there by trying to connect the idea of language more with something that one is familiar with in natural languages, in English in particular, and that is that--
00:32:47 [WS]
OK. So just start that again, start.
00:32:48 [KEI]
I'm sorry? We were talking about language. Perhaps a good way of looking at programming languages, and APL in particular, is to recognize that it is a language and that it is an imperative language. The only things that you say are "do this, do this, do this," which greatly simplifies language. In fact, the example that I gave earlier of the parade ground language, it's definitely an imperative language. You don't say "do" and "about face" or "please about face." You simply say "about face." And that is true in programming languages, or at least in most programming languages, certainly in APL. And this simplifies things that I think that it is useful to see the analogies with natural language, that in natural language we have nouns and verbs, and in APL the nouns are like the numbers 2, 3, 4 are nouns. The symbols like "plus," "times," and "divide" are the verbs, because they say "do something" to these. So that if one writes "3 times 4," then that simply means "multiply 3 and 4." If you write "2 plus 3 times 4," that means "add 2 to 3 times 4." So you can construct long, meaningful sentences of this kind, and all you are dealing with is the same notions as in natural language, nouns and verbs. Now in APL, there are only two other things that you have to understand, and that is what I think corresponds very closely to an adverb in natural language. And the point is the following, that if I say "plus," that means to add. If I say, "Write 2 plus 3 plus 4," but if instead I take a list of things like 2, 3, 4, and I now want to say "add over that whole list of things," that's a different notion, but it's obviously related. In APL, we do that by writing a "plus" and a "slash" in front. The "slash" is an example of what I was saying is an adverb, because it applies to that "plus" and produces something somewhat different, "summation." Now this may seem a trivial thing, but you realize now, suppose that I wrote "times slash 2, 3, 4," you would not even have to be told what that means. It means to apply the times in the same way as you did the "plus," by in effect putting it between each of these. And in that sense, this "slash," which we call "reduction," is an adverb. And the advantage of that, which you do not see in any other programming language, to my knowledge, is exactly the kind of advantage that we get in English. In English, we can describe an incredible number of different actions with a relatively small number of verbs and a relatively small number of adverbs, because you see, if I have 10 verbs and 10 adverbs, in principle I might have 100 different actions that I could describe. So that I can not only say "run," but I can say "run backwards," "run slowly," "run sideways," what have you. So that's the third one. So we have nouns, verbs, and adverbs. And there's one other thing that is very essential, and that is-- So, it is essential to be able to assign names to things. Like in English, for example, we might say-- how do we do this in English? We use "is" and "are," what we call the "gradical" term is a copula. So we'd say "lead is a heavy metal-- heavy ductile metal," or something of that kind. In this, we have a symbol for "is," and the question-- the symbol is just an arrow, but we read it as "is." So I might say, "length is," meaning the left arrow, as you can see on the blackboard, but you can't hear on the mic, is, say, "five," and I might say, "width is four," and then I might say, "area is length times width." There's an example of where one is using the-- assigning a name to something. And those are the four-- those are the four, and only four, aspects of the language. Now, it may seem surprising that you can put together such-- sort of complex systems out of this, but there's one aspect which I should have emphasized, and that is the following. The nouns that I spoke of were the numbers, and this is what usually comes to your mind when you're talking about computers. But you realize that if you take characters like a letter "a" and a letter "b," these are simply entities that can be manipulated. You can have a whole string of them, too. And that we can do in APL. In fact, all you do to indicate that you want, really, the letters "c," "a," "t" is to write "cat" and put it in quotes, as you would in English. That now means the list of three things, the "c" and the "a" and the "t." Now, all of the kinds of manipulations that we would like to do with numbers, to reverse the order of them, to sort them in some order, and so on, apply to these characters as well as to numbers. Consequently, one can do text manipulation, what we call database, where you have large storage of alphabetic data that you want to consult and search, like in making dictionaries and so on.
00:38:57 [WS]
Okay, I think that's good. Let's go now to your terminal.
00:39:02 [KEI]
Ohh.
00:39:04 [KEI]
This time you probably want.
00:39:05 [KEI]
To hold OK.
00:39:10
No.
00:39:12 [WS]
Let's OK, now, now. You, you.
00:39:17 [KEI]
So, perhaps we should just go to the terminal at this point and show you some examples. Well, perhaps with this background we could now go to the terminal and I'll show you some more interesting examples. All right, now this is an old-style terminal. It's a printing terminal, and so it sounds and looks just like a typewriter. It's not what most people use these days. I still find it the most convenient, although I use the others as well, primarily because a lot of the work that I do, I want to be able to actually have it printed, rip it off, lay it on my desk, and pour over it and modify it and so on. And to do the equivalent thing with the screens, the cathode ray tube screens, I don't find anywhere near as convenient. I realize that with practice one can sort of adapt to either one. But anyway, I still use this noisy old terminal and relatively slow. Now, what kind of example? Well, I started by saying if you want to do a simple thing like multiply 12 times 12 times 12, you simply enter that with the crosses for the times, and as you see, it simply prints out the result. Looks like I need a new ribbon. Well, so a sequence of things like that. Now, but also, we can put in a whole list of things. So if I said 2 and 3 and 4 multiplied by 6 and 7 and 8, it will now do that for each one of those pairs. And so you can deal with whole lists of things. Now, this may seem surprising and maybe a little confusing if you have not seen it before, but it's a very natural way to work. The idea of dealing with whole lists of things and saying, apply this to each one of these. For example, if you're doing a payroll, you want to do essentially the same calculation for each one of the people. Not only lists, but tables, and we can handle tables just as easily. I could enter a whole table of things and just say this table times that table, and it does the whole thing. Or I can have lists of tables or tables of tables. These are notions which, unfortunately, in mathematics, we tend to use rather frightening and formidable terms. For example, what I call a list is usually called a vector in mathematics, enough to frighten anybody. Many of these terms were, I think, very badly chosen. The name for a table is a matrix. The name for a list of tables might be called a tensor or a three-dimensional array and so on. But the ideas are very simple and very accessible to anybody. And these apply not only to numbers, but also to characters, as I said. So that, for example, if I say that ALPH, which is my abbreviation for alphabet, is, and then put in quotes, there's the quote, A, B, C, D, E, F, G, H, I, J, K, that's enough for the alphabet. Then I have a, ALPH is now the list of a whole set of those things. And I can do a variety of things to that. I can simply say, let's look at it, so I just enter the name ALPH and it prints it. Or I might say, reverse that, and this is the symbol for it. It's just a circle with a bar through it. The particular appearance doesn't really matter that much. If we say that to ALPH, then you get them reversed. In fact, it's very easy to explain what a palindrome is. So I'll say P is, and then in quotes, I will put in a word like level that is a palindrome, runs the same backwards as forwards. Now, if I say reverse P, instead of getting an entirely different thing as I did in the case of reversing the alphabet, I come out with the same word, and this is what we mean by palindrome. And there are a lot of things that one can do, patterns of that kind, that you can express very nicely in the language and actually, you know, see them happen. It's really marvelous to be able to explore ideas like this so easily, and so easily and precisely. And you can do, you know, fairly elaborate examples that you wouldn't have the patience to do by hand.
00:43:49 [WS]
Can you give me another example?
00:43:51 [KEI]
Well, a more practical sort of thing is the use that is made of, not necessarily of APL, but it could be done in APL too, and I don't know to what extent it is at the moment, of doing things like the work that's necessary in the compilation of dictionaries. My favorite dictionary, for example, which I know of as the American Heritage, [04] but it's also available as the Canadian, what's it called? Anyway, it's Houghton Mifflin Dictionary, and that was compiled by use of computers, and in fact there's a nice essay in the book describing how the computers were used in it. And, well, I think you can see that. Once you can handle character strings in particular, handle individual words as single entities that you can move around, so that you can now talk about not just reversing the string of letters in a sentence, but say reversing or moving around the individual words in the sentence, then you see that you can do a lot of nice things. Searching for particular words, searching for particular patterns of words. Well, let me try one further example of that. Suppose that I do the following and I say, well, let's say S for sentence is, and I put in quotes, "Now is the time." "Now is the time for," and an ending quote. Okay, now if we look at that, one of the things that we can ask for is what is the shape of that? Which is how many things are there in that list? And it says there are 19. Now there's another very simple thing that I can do to apply to that list to turn it into a list of a smaller number of words. And the exact details don't really matter, but let me call it W is. Now I enter a, well, you can count the characters by listening. Negative 2. And now I apply that to an S with a space put at the end of it, which is indicate what it is that delimits the words, because that's how we delimit words in an English sentence is with spaces. Now if I've done that correctly, and you look at this thing, it looks exactly the same. But now if I look at how many elements are there in that, it tells me there are only five. There are five words in that thing. Furthermore, if I now say, "Reverse that," well, if I say, first of all, I'm going to say, "Reverse that S," and that just puts the character string backwards, so instead of "now is the time for," it starts out R-O-F-E-M-I-T and so on. Whereas if I reverse this thing where I had collected them into words, I now have "for time the is now." In other words, it's reversed the whole words. So, well, as you can see from the -- they're very simple. There are symbols for each of these sort of significant operations that one might want to do on a list of things or on a table of things. Saying, "Reverse a list of things," or in the case of a table, you can say, "Reverse the order of rows," "Reverse the order of the columns," "Interchange the rows and columns," and select pieces out of it as you want. So you can see -- I think you can see or imagine the kinds of things that you can do to text with a fairly reasonable amount of effort.
00:47:41 [WS]
Okay, here's -- let's think of a three-word sentence that we can play around with and we can mix. Could we do this if we take something like, "God is love"?
00:48:02 [KEI]
All right, so you want to say -- let's call -- now I'll simply use the same name, S, for that because we don't need that old one anymore. Okay. Now, what is it you want to do? You want to -- I want to make a poem out of -- out of those three words? Yeah. Or of those letters? Just a -- well, all right, let's make it a -- let's convert it into equivalent words then. [typing] Let's see whether I managed that time. All right, let's just -- first of all, we'll reverse them. So that says, "Love is God." Okay. I guess just the sort of thing a poet would like to do. But I can also take this thing, something that I didn't mention before, which is fairly obvious. When you have a list of things, you want to be able to index it. That is to say, pick out the third element, pick out the first element, pick out the sixth element. All right? Or pick out a whole set of things. So that, for example, I might say -- well, what's a good thing to do with this? All right, let's just say from that word -- that sentence of the three words, "God is love," I'm going to say, "Pick from that the first element and the second element and the first element." And now we get another variation of that, but that says, "God is God." Now, that may or may not mean anything.
00:49:43 [WS]
Is that what you call a bug?
00:49:45 [KEI]
No, that's not a bug. I chose to do that. I said, "I want one, two, and one." Okay. Now, in any language, you can say stupid things very easily. But maybe it's not so stupid. I don't know. Okay? You could say, "Love is love." You could say, you know, any kind of variety of that. And, of course, when you get tables of these things, you know, you can say, "Take the entire column. Take the entire row. Take this collection of rows, this collection of columns." You can really do marvelous things. For example, you can put together sort of things with business reports, which really amount to this. Often what they are is simply a table of numbers, but now you have to add to that table of numbers row headings, column headings, and so on, in order to make clear what the significance of the entries are. And you can really do a lot of marvelous things with that. And, incidentally, you see, graphics, too, being able to display pictures of things, falls in the same category. It's just a matter that you can think of a whole screen as a collection of dots, as it really is, and now you can have a table which describes what dot, what things you want to put where. And these can be individual characters, like we're doing, but they could have just as easily been special characters, smiling faces, the card suits, clubs, diamonds, hearts, spades, all kinds of symbols like that. And all you have to do is have them available on your terminal device, and then you manipulate them like you manipulate letters or numbers. There's really less to this than meets the eye.
00:51:41 [WS]
That's great. Is there any other thing that comes to you that we can describe?
00:51:51 [KEI]
Well, the difficulty that I find in getting across any idea of, on the one hand, how simple the notions that are involved in computer programming are, and at the same time the fact that it's not just a trivial game, is that you'd like to give some non-trivial examples. And if you give the non-trivial examples to the beginner, it looks royally confusing. If you don't, he's liable to say, "Well, of course, an ordinary calculator can add two and three." Or, "I can even do it on my fingers." But let me try something here which might be more significant, and that is the following. I can also call up things that have been saved before. Right now I'm going to load a workspace, as we call it, that's called-- it's in library 666, which some of you may recognize as the number of the beast, whatever that means.
00:52:50 [WS]
What is a workspace?
00:52:52 [KEI]
It is just a collection of information. For example, the stuff that I have here, I could have said "save" and say "save Whitney" or something like that, and then I could later recall it by just saying "load Whitney" and everything that I had put in there would be then available to me again. So this is a mailbox workspace, and this manages our electronic mailbox so that, for example, I can say-- just ask, "How many incoming messages are there?" And it says there are seven. And now I could--well, in fact, let me do this. If I simply say "print"-- and print is simply a collection of instructions of the kind that I've been talking about, but somewhat more complicated, that have been put together in order to be able to put into files messages that people want to send, put into a directory the identifications of the people that these are to go to, so that when I say "print," this function will search the mailbox files and pick out all of the messages that are addressed to me. So I've entered "P-R-I-N-T," and now if I simply hit the carriage return, it will start printing. [projector whirring] Okay, so here is a--this first one is interesting. It's a message that's addressed to me, but copying somebody else who--you want to continue to talk over this or not? Okay. It's addressed to me, but it's also copied to somebody else who needs to have the information as well. And this is just a message about--oh, about a brochure for a book that I'm just finishing writing now, and this is just a communication with the publisher. Another message, I think, concerning some trouble that somebody had on the system. Another message that is trying to give a classification of a bunch of operating systems produced by IBM, and so on. So there were seven messages in all, so I think this thing is about to conclude, and we can then go back to talking in a normal tone of voice. [projector whirring] Okay. This last one is rather interesting, that I submitted to the publisher a draft of something, and now he is able to send me back immediately his reactions to this, and copy the editor and anyone else that's involved in the production of the book. Oh, I should have mentioned that also, that it's a marvelous tool for producing a book. I have been working now for some time on a course, an introduction to APL programming, and this is designed to be a completely self-study course. And the difficulty with--one of the difficulties with making anything for self-study is, it is very important to be accurate, because for a beginner, if the author has made some slip, whether a logical slip or simply a typo or something like that, it can be terribly confusing to a beginner. And one of the marvelous things of having a computer system like this is having a good text editor. So we have a text editor that's written in APL, and this is what we use in our normal day-to-day work. And one of the very nice things is the following, that when you do correct an error in a manuscript, then you get the next draft of it, and you can be absolutely confident that only those changes have been made and nothing else has been disturbed. It's the only possible way that I can see to get really error-free, or almost error-free, texts.
00:57:19 [WS]
And also it saves on liquid paper and those things that you need to reduce the errors from your manuscript.
00:57:27 [KEI]
Yes, it does, although in some cases it doesn't save that much. Like in ours, we have--we print the successive drafts out, mainly because there's such a great convenience in being able to really work out a draft of the thing. For one thing, that passes from hand to hand, and that you can't do quite so conveniently on the screen. But yes, eventually, of course, we'll see even more of this saving, where you won't have successive copies. And incidentally, you see that certainly in newspaper offices already, where people write their own stories and do the editing on a screen, and so you don't have these successive paper drafts. I find it rather interesting that because this is for radio, having this typewriter clattering in the background is apparently a good thing, rather than just an annoyance, because it gives one a better feeling for what is really going on. And it reminds me of, on the one hand, the fact that I grew up in the days of radio, and I think that in many ways it not only stimulates the imagination of the writers and people who produce this thing, but also stimulates the imagination of the listener. Because we used to hear these plays on radio. Most of us had never seen a play in our lives, and yet this was, it stimulated you to imagine things probably even better than they really were on the stage. I'm also reminded of a comment that Professor Aiken made years ago, in which he told me about some investigation that had been done in teaching engineering, where one of the things you've got to do is to get a spatial imagination. Like, we tend to draw things on paper and draw diagrams and blueprints on paper, but you've got to learn to visualize in three dimensions as well. And there apparently had been a lot of work done on techniques, and this was pre-TV, for mechanical devices, for helping to visualize this, the kind of things that we now see in every computer store with the marvelous three-dimensional displays that you can get. And his feeling about this was that this, in fact, although it could be useful in many ways, could also do a disservice in that one of the things that you've got to develop is the student's ability to represent this for himself and to represent it for others. In other words, developing the ability to make three-dimensional sketches. And that, as the sort of thing, I think is bound to be lost as we get more and more powerful mechanical devices for doing all of this graphics for us. It's an idea, sort of, that will be lost in much the same way as ideas like counterclockwise will no longer mean anything after everybody has all digital watches.
01:00:16 [WS]
I'm interested in the mystification of computers. I mean, that is probably one of the...
01:00:24 [KEI]
All right, so you want to say something first? No, no, he just... Okay. Well, this question about a fear of computers and sort of a mystique of computers as being something very difficult and very alien to the ordinary person, I think it's just a complete misconception. And I think that there's a reasonable analogy to this that comes because... The fault is that we emphasize so much the mechanics behind it that have nothing to do, really, with the question of using it. When I was young, if you wanted to drive an automobile, you virtually had to know a good deal about the internal combustion engine. And very little, if any, about the rules of the road or map reading or the things that really have to do with how do you manage the use of a car. Nowadays, the car is still driven by an internal combustion engine, but nobody is hardly ever aware of that fact. And certainly, you don't worry anything about knowing the fact that you don't understand the internal combustion engine does not dissuade you from owning and driving a car. Instead, you concentrate on the things that you have to know. What are the rules of the road in your province? Where are the gas stations located? All kinds of practical things like that. That's to do with using the thing. And anybody who would say, "I'm afraid of a car because I don't know about the mechanics of gasoline engines," would be just laughed out of being a joke. And yet that's what we're doing in the case of computers. And I think this comes about, again, partly because of the antiquated programming languages that people are using. These languages reflect so much of the limitations of the early machines that obviously people are going to get the impression that this is very complicated, because it is. But the fundamental ideas are no more complicated than what I described in-- you can describe it in fairly few sentences. I was almost feeling that I was alone in the world in feeling this way about this nonsense about computers, and I was greatly heartened recently when somebody pointed out to me an article in Harper's, which was a report of an interview with Professor Weizenbaum, who is a computer scientist at MIT. And Professor Weizenbaum is very outspoken about this, and I'd like to just read a little bit of this. This was an interview with Nouvelle Observateur, and the interviewer said, "Computers are arriving everywhere, in offices, in schools, in the homes. Shouldn't this delight you? Joseph Weizenbaum: "I am not a computer salesman. All I can hope is that the technology I helped to develop will be used well, but it isn't. Far from it. What do you have in mind?" And Weizenbaum says, "The fad for home and school computers that is creating such a furor in the United States, as well as Great Britain and France, for example. A new human malady has been invented, just as the makers of patent medicines in the past invented illnesses such as tired blood in order to create a market for their products. Now it's computer illiteracy. The future, we are told, will belong to those familiar with the computer. What a joke this would be if only it didn't victimize so many innocent bystanders." And so on. And I think you might find the rest of the article interesting as well.
01:04:21 [WS]
Well, that's fabulous. That is really so.
01:04:27 [KEI]
Weizenbaum speaks out on a lot of these things, but I sort of have a feeling, I sympathize, but I also think he's sort of tilting at windmills, and it's better to just keep on doing your work and figure that sooner or later the ideas will get across.
01:04:49 [WS]
But that analogy of patent medicines is wonderful.
01:04:53 [KEI]
That's true. There have been all kinds of illnesses invented for exactly that purpose.
01:05:01 [WS]
Well, this idea that we're going to have a terminal in every home and that we're going to shop with it, I think this is kind of selling the future or something like that.
01:05:17 [KEI]
Well, that's probably going to come to pass, that we will have terminals and computers in use for everything. In fact, it's already happened more than people realize. Some years ago I visited General Electric, who were once in the computer business. This was the research laboratories. Who were once in the computer business and then went out of them and consequently almost disbanded their computer science department in the research division and then were bringing it back at this time. And the reason was that they found that they were spending an incredible amount of money for outside consultants for computers and computer programming. Where were these being used? In their washing machines, dryers, and so on. Almost every appliance you get these days has a computer of some kind in it. Now, the thing is, as long as you understand the language in which to communicate with this gadget, whether it's a dryer or whatnot, knowing which knobs to push, it doesn't matter that it happens to be a computer in there instead of the old-style mechanical linkages that used to do a much cruder job. So I think that people are concerned with the wrong thing. I really think it's a fair analogy to say the following, that the invention of the typewriter, say, was, I think, a marvelous tool for use in language, for the teaching of language even. And in fact, I think it's still much underused. I find my three-year-old grandson, for example, although he still can't really hold a pencil and do much with it, at least not for any length of time, he can handle the typewriter perfectly well, and he can spell words and things like this. Now, suppose that when the typewriter was first introduced in schools, instead of the English department recognizing that here is a marvelous tool and we can start teaching a lot about language even before children can have the muscular coordination to write well and so on, suppose that these people had done like the modern users of computers seem to want to do, become enamored with the mechanics of the typewriter itself. And it's a marvelous gadget. The linkages in there are incredible. And you could spend a lot of time studying and explaining these things. And that, it seems to me, is what we're doing with the stuff in the computer. Instead of saying, "Okay, this is this tool. This is how you communicate with it. Learn interesting and useful ways to use it in something that interests you." Instead, we put the focus on the mechanics of this stuff. And that's where the mystification comes.
01:08:18 [WS]
Great. That's good. That analogy helps people to see that.
01:08:30 [KEI]
Well, they're obvious. They're such obvious things. But the trouble is that it's easier to get frightened of something than to stop and think about it.
01:08:38 [WS]
Yeah. Oh, say that again.
01:08:40 [KEI]
What? Oh, well, yeah, I mean, all of these analogies, I think, are fair and rather obvious, like with the internal combustion engine in the car and the typewriter and the teaching of English. They are rather obvious and I think might occur to almost anybody who would take the time to think about it. But we tend to get too frightened by these ideas that we don't even give it serious thought.
01:09:11 [WS]
Right. Okay, so I'm shifting around. You said something that interested me about Bernecky here, and that you said that he sometimes thought too fast. Now, I'm not interested in what personally you think, but I was interested in that just in terms of thinking and how someone can -- I mean, is there anything behind that? Can we pursue that?
01:09:40 [KEI]
Well, we'll see. I'm not sure what -- have you got this thing on now? But I'm not sure what the relevance of this to the -- okay. Well, there's really an astonishing difference in the ways that people work and think, and in particular the speeds at which they do this. One of my colleagues, for example, is just much, much faster than I am, and when we're dealing with a problem, he will see the things much, much more quickly. But I think partly as a consequence, he may be also miss sometimes the deeper things because he just is in the habit of going so quickly. And in a way, this makes it -- you know, it's a nice compliment to be able to work with somebody like that. One of the things that I think that the computer and computer programs can do for you is to help to merge this kind of operation because although he may think quickly and I may think more slowly, we often communicate by means of programs which describe or, you know, essentially embody the ideas. And the remarkable thing about that is that it does a great deal -- it does a great deal to what I like to say keeps you honest because it's so often that one has a general idea, which may be true or almost true, and you haven't thought about the unusual cases. But if you put this into a computer program, almost certainly, very quickly, you or somebody who thinks differently than you will be using this and will stumble onto these cases and often bring out very important aspects of the problem that you wouldn't have otherwise thought of. So that the -- working with a computer that way, with programs that you understand, that you have perhaps developed, doing something that you are interested in, whether it's in music, literature, what have you, that it does a great deal to clarify your thinking. And that's really the fascination of it. And I think maybe that is the root of some of the comments that you're likely to hear from people around here when -- that they simply enjoy their work because it's always fascinating.
01:12:15 [WS]
You were saying that working with a machine, working with computers, obviously has an effect on the way you think. Can you elaborate on that? We've sort of been talking --
01:12:31 [KEI]
Well, one thing that the computer will do for you is that it tends to force you to think things through more carefully and in greater detail than you otherwise would. But the other thing is, I would put it that it tends to -- well, it tends to encourage you to think constructively, so that instead of giving sort of an overall conception, you never feel satisfied until you can say, well, you first do this, then this, then this, then this. Now that may seem rather pedestrian and cumbersome, but it really does a great deal to clarify your thinking. There's another sort of aspect of this which I think is -- I'm not sure I know how to put it, but there is a feeling that computers and computer languages, the sort of things that you express in computer languages, is absolutely the farthest thing from poetry, and it's just sort of pedestrian. And I think that this is false in the following sense, that -- well, one of the important things about mathematical notation and about -- well, about mathematics, mathematical notation, and a programming language such as APL, is the following, that it forces you to abstract. And let me take -- all right, well, let me take an example which is probably familiar to most people, and that is the idea of what we call a three-way switch. You're probably familiar with this. You may have a single light in the kitchen, but you like to be able to turn it on or off from two different doorways, and they work together jointly, and you can turn it on or off from either one. Well, you may have never thought about this, but these are very simple devices. They simply make connections of a pair of wires. How is that done? What is the logic of the connections that allows you to do that? It's not quite as trivial as you might think. And if you do find that trivial, then you might say, well, could you make a four-way switch? Could you have three switches or four switches or ten switches controlling in that same way? All right? Now, if you start thinking too much about the switches, there are all kinds of possibilities. You see, there's the noisy toggle switch that you may already have in your kitchen. There's a silent mercury switch, which is an entirely different mechanism. There you could have a transistor, you could have a vacuum tube switch, and the computer industry has gone through a succession of different kinds of switches. But every one of them has this in common, that it simply makes a connection or doesn't. And this can be described abstractly, as George Boole did about 150 or 200 years ago, by simply saying it can be in two possible values, and let's just call them zero and one. And with that, he then developed a very simple, what we would call a calculus or a little mathematics, that allows you to describe the most complicated circuits in a very nice way. And that, in fact, Boole's algebra is incorporated as a small part of APL. So if you got interested in problems of that kind, you have a very simple, precise way of doing that. And in fact, you can write little computer programs, which in effect allow you to say, "I'll push this button to represent this switch and that button to represent that switch," and play with it and see if you can get it to work the way that you thought you should. Now, the main point, what led me to this, really, was the idea of the abstraction, that the language gives you a tool and almost forces you to abstract the ideas. So that instead of getting yourself immersed in the details of a particular mechanics of a switch, you are able to abstract the essential notion of saying, "Ah, a switch is just something that can be in one of two states, and now we will deal with that." Now you can deal with the very complex notions much more easily than you could if your mind were cluttered with the details of the switch. Now this is the essence, I think, of mathematics, is that it provides you with a language and ways of thinking that get you to abstract. Now, this may not be meaningful to many of you, but you will find that if you are studying mechanical vibrations, like the vibrations of a spring, the vibrations of a pendulum in a clock, and so on, and if, on the other hand, you come to studying electrical circuits, the kinds of oscillations that are carrying this message to you over the radio, radio waves and so on, nothing could look like they're more different than, say, the heavy mechanical vibrations and the electrical things. And yet, when people came to describe them abstractly in mathematics, in terms of differential equations, lo and behold, they're the same phenomena. The equations are absolutely identical. It's just that in one case you say, "Oh, we have the mass of this thing." In the electrical case you have a coil or induction, and so on. So the thing is that it allows you to abstract. Now, this, it seems to me, is the essence of poetry, is that a good poet, perhaps often unconsciously, is saying things in such a way that, even though he says only one thing, for different people and sometimes for the same person at a different time, they conjure up different images, all of which are relevant to the central notion. And that's why I maintain that when anybody knowledgeable in mathematics or in APL reads an expression, he may say, "Oh yes, this is a calculation of torque," or, "No, this is a calculation of cost in terms of price and quantity," or, "No, this is a calculation of area in terms of length and width." They're all the same function. They're the times function, which also goes to explain why we have found it in our culture important to invent a symbol for that particular function, because it's everywhere.
01:19:12 [WS]
Can you teach--OK, on the idea of poetry, can you teach-- Computers can't think, right? Can computers think?
01:19:25 [KEI]
Well, if you can tell me what you mean by thinking, I could answer that question perhaps, but I don't know.
01:19:31 [WS]
Can a computer write poetry? Can you teach a computer to write poetry?
01:19:39 [KEI]
If you can teach it--yes, there's nothing easier. One of the things is that you could do, for example, you could simply give it a collection of poems or prose or whatever you have, and then provide a program which selects pieces from these, either individual words, individual phrases, individual passages, and so on, and merges them together according to some criterion, which you would then write into the program, and also with a certain element of chance. Usually, you know, you'd say, "Well, you want to pick this sometimes, that sometimes." Yes, you can write it, but you raise the question, what would be the point?
01:20:23 [WS]
Well, to demonstrate the power of machines, and also to try and understand human creativity.
01:20:34 [KEI]
Well, but the fact that you can make a model of something doesn't necessarily mean that you understand any better understanding of human creativity. And also, you know, I guess--one of the things that used to be raised was the fact that machines obviously can't think like people because they're not temperamental and so on and so on. But the reason that they're not temperamental is that we've gone to tremendous extremes to make them not temperamental. It would be nothing--we can, you know, in the machine in the next room here, we could very quickly make temperamental by turning off the air conditioning. When the air temperature reaches a certain point, you'll start getting more and more inexplicable behavior, and I assume that that's very much like being temperamental. If I'm in an overly hot room too, I will react differently than I otherwise would. But, you know, we've gone to all this trouble to engineer that kind of thing out of it. We can also put it back in trivially if we want, but it's not clear what the point would be in most cases. It's the point sometimes when one is doing statistical experiments to generate random numbers just to do experiments on. But as to saying can we produce something that somebody would-- well, you know, would it be poetry or not? If your criterion is if it wasn't produced by a human, then it's not poetry, then the answer is very simple, but that sort of makes the whole question meaningless. If you say is it something that might get passed, you know, and accepted by an editor of some modern, you know, review of poetry, the answer is probably that's very simple. Modern art has been invaded by art painted by monkeys and things like that. I expect the same can happen in poetry.
01:22:40 [WS]
I guess what we're talking about is soul and machines.
01:22:47 [KEI]
Well, if you spell that S-O-L-E, then I could go on discussing it, but otherwise I'm not quite sure I know what you mean.
01:22:53 [WS]
Well, what is it that humans have that machines don't have? Machines are learning to do almost anything to the point that a machine can reproduce a machine, right? I mean, eventually that could happen.
01:23:14 [KEI]
In a certain environment, yes.
01:23:18 [WS]
But what we have is--
01:23:25 [KEI]
Well, I think I understand your drift, but the thing is there's nothing new here. Is a crystal a living thing? Crystals have marvelous structure. They grow. In fact, when people try to grow them for commercial purposes, they can become invaded by diseases, okay, so that they get malformed crystals and so on. Well, does that have a soul? Is that a living organism? Depends on what your definition is. But, you know, you can just go by successive steps like that. That's--and interestingly enough, a lot-- probably most of the material, or the interesting material, in the development in computers are themselves crystals. They grow with this marvelous structure. But also, when you think, is it thinking-- is it really human thinking and so on? I expect that the ideas on that have changed radically from, say, even 50 years or 100 years ago. It used to be that we simply dismissed the lower animals as being something-- oh, that was just--what was the word for it? You know, that was just innate behavior or something like that. They weren't really thinking. Now, you can continue to think of it that way, but as you learn more and more about the marvelous communications devices that bees have and so on, and the marvelous social structure that a lot of animals have, and a lot of it being learned behavior that is, you know, not passed on just through the genes, but through, in fact, teaching of the young, then where do you draw the line? I don't know. And if you say that, can we make machines that would somehow simulate that behavior so that a person could not really tell the difference whether it's a living organism or a machine, I'm sure that's already possible to a large extent. And I'm not sure, but I'm not sure it matters. As I say, there's not--a crystal is not what we would call a living organism, and yet it grows and so on. In fact, it's a large part of the machine. Well, I guess this gets into what you were saying before, where there are certain principles which can't be explained that get into theology.
01:26:09 [WS]
What-- No, no, I shouldn't connect those. I shouldn't connect it. Oh, well, I'm sorry. Go ahead.
01:26:19 [KEI]
Well, it reminds me of something. It may have been a conversation that we had before. But--and I think--I think relates to this question of the mystification. If you think--you see, if you think at the--at an appropriate level, then you can understand devices. Like, you--even though you know nothing about the gasoline engine, you understand the automobile in the sense that you know how to control it very well, you know exactly how to take care of it and all that sort of thing. And as long as you recognize that that is understanding on one level, and you're content with that, that's fine. If, then, at some other point, you decide that you'd like to know more about the detailed mechanics of the transmission or of the motor or so on, you can then go down and think about that. But what you--what you must be careful not to do is to confuse yourself as to thinking that if I don't know about the motors and so on, I don't understand the automobile. Because once you get down to understanding what you think you understand about the automobile, then you say, "Well, but I still don't understand how that gasoline burn-- you know, how does the combustion take place?" Now you're into chemistry and so on down. And as you go into it, you learn more and more about chemistry, and then you find you've got to learn about quantum mechanics and so on and so on. The same is true in computers. At one level, you can understand perfectly how this machine-- how you can control this machine to do what you want. And we've been totally ignorant of the next level, of what are the details of the programs that other people have provided to make this machine look the way it does to you. And you--there again, you go down level after level after level, eventually getting to electric circuits, say, to quantum theory. And I like to simply say that the only man who has the last word absolute is the theologian.
01:28:24 [WS]
Just continue on that for a moment. I mean, that's great, but I'm-- Well, is that--I don't know, is that-- No, that's--
01:28:29 [KEI]
I thought that was the end.
01:28:32 [WS]
That was the end. That is the end. But that's great. I'm hungry for it. Yeah, yeah. Yeah. That's--that's what you said, yeah.
01:28:39 [KEI]
What baffles me is what is your conception of science or a scientist then? Because that's the way we work. I mean, you know, anybody has the idea that science is strictly deductive, and you say you start with these premises and then you--therefore and therefore. There's a certain amount of aspect to that. But mostly, it's--you know, in fact, you don't really know where your ideas are coming from. I'm--did you ever see this marvelous little book by Lewis Thomas? [06] You probably know who he is. A biologist. It's--I recommend it very highly. It's called "Lives of a Cell" He's a biologist, but he's really speculating, you know, philosophizing. And--let me think. What--all right. It's this idea about, you know, how do we think? You know, where do these ideas come from? Well, he--one thing that he does is give a lot of analogies about, you know, how ideas spread through conferences and so on. But the one that I was reminded of was the following. He pointed out that nowadays, they've discovered that you can do marvelous things to control certain functions of the body that are really normally at a subconscious level and can't be controlled. You know, they're just controlled by the--what do they call it? The autonomous system that controls your heartbeat and all this. And they have found that they can do marvelous things. He cites a case where he said that a person was able to be taught--to teach himself to increase the circulation in his left earlobe more than in his right. Okay? Well, the thing is, you know, you try to think about these things. Some people can wiggle their ears. I can because I got interested in that when I was a kid. And, you know, it's not a very useful accomplishment, but it's interesting the fact that these are things that have simply atrophied. But you can train yourself to do a lot of-- But Lewis cites some very fantastic things that they can do. But then his comment on this was the following. He said, "But I'm not sure I want to do any of these things." He said, "What would I do, for example?" He said, "I'd as soon be told that I'm now--that the pilot has died and I'm now in charge of this 747 50,000 feet over Denver, than I would be to be told that from now on I'm in control of my liver." He says, "I wouldn't know how to think liver thoughts." Well, I really should have--I wish we had the thing here because he puts it marvelously. And he says, "I certainly wouldn't want to be put in charge of my thinking because I wouldn't know how to think up thoughts." Well, you see, there's a point at which you can't say how you do this consciously. And as to where ideas come from, they come from--I don't know. You're mulling over certain problems and then different problems and then eventually somehow the two get connected. I sometimes think that the secret of a creative mind is to be disorderly. That, you know, that most of us have a relatively good filing system up there in the head and those that are very careful are good about that. They got it all filed away nicely and they can remember things and so on. But the more disorderly of us, we leave the file cabinets open and so on. And consequently, when I go in search of an idea, I stumble across some open drawers and find all kinds of interesting things on the way, and sometimes these fit together well. It's--well, it's sort of silly speculation, I think. I'm not sure we should drag that into any discussion of formal languages.
01:32:55 [WS]
Formal language, though, if you can just go back a bit.
01:32:57 [KEI]
Sorry. Sorry, yes.
01:33:00 [WS]
Yeah, this is great. I mean, this is--but this is--
01:33:04 [KEI]
I think that you could probably get some interesting people to talk about that kind of thing, you know, get philosophical about things. I think your analogy with music is probably--makes good sense. But, you see, it's one thing to say, "I'm interested in such and such an aspect of it." But in order to do justice to that, maybe the best thing that you can do is to learn something of the other, even though you decide eventually you're going to ignore more of it. At least you know, you know what you're missing. And I think that that's true in the case of computers, that there's--well. I guess in the case of almost anything, I'd say probably the best way to get involved with it and get a feeling for it is to actually do something with it. Like, I'm very skeptical of courses which are, you know, appreciation courses, appreciation of this or of that. I always feel--certainly I wouldn't want to have anything, like, called computer appreciation. I think it would do a person much more good to simply learn how do you really do this, even in fairly simple ways, than to have people talk about the wonderful things that computers can do. You know, get in there and get your hands dirty. One of the things I wouldn't mind commenting on, and that is the question of the use of APL in teaching. So far, it's--although my interest originally was in an academic environment where I was interested in teaching and writing and looked on it really as a better tool for communicating ideas, if you like, to myself, meaning analysis, as well as to others, that that was the primary goal. Where APL has enjoyed its success has not been there, although to a certain extent, but really not. But rather in the commercial world, you know. It's companies like Sharp that are exploiting it and developing it. And I'm continually frustrated at the fact that the academics seem unable, in charge, to see the advantages of this sort of thing, of precise language and the ability to use the computer to do non-trivial experimentation in all kinds of areas. And I think that we've already--I and a number of colleagues have already done enough in writing on extended topics in mathematics, in the discussion of the computer itself, in areas like statistics and so on, that I'm really frustrated that we haven't made more headway in the teaching. And I see a couple of reasons for this. In the teaching? What do you mean? Well, I mean in teaching--in using it as a tool in teaching in all kinds of topics. Okay, give me an example. Well, in teaching in mathematics, for example. That I could give you examples, but I'm not sure that this would work very well. But at a fairly elementary level in mathematics, at say a high school level, teaching of polynomials [07] and things like that, where I can give you examples of things where ideas get-- the teachers themselves have a misunderstanding of it, which couldn't possibly have survived a precise notation which forced them to really interpret carefully what they were writing. In other words, they write things which are in effect self-contradictory, and they never know it because they are never forced to go through the detail or have a machine in fact execute exactly what they said they wanted executed. Now, I mean, I could go into some examples of this, but I'm not sure-- I mean, it would get into probably more mathematics than you want to get into here. But there are just all kinds of things which-- well, there are several aspects of APL that I think are relevant here. First of all, that the syntax of the language is absolutely dead simple. In other words, there's never confusion about which gets done first and exactly how you interpret something. But the other thing is the simplicity with which you can use arrays of things, lists and tables. Now, that is a marvelous tool for picturing and understanding things, fairly complex things. And that's the kind of thing where I think that mathematics at a variety of levels could be just made much simpler and much clearer with that and made much more concrete. We teach mathematics, I think, in an unnecessarily abstract way. I have been very disappointed at the slow progress that we make in the academic environment with APL, but I see a couple of reasons for this. One is the simple fact that computers are still fairly expensive. In the past, APL, or at least good APL, has been usually available only on large computers and therefore only from a central supplier. It tends to be relatively expensive. In many cases, at least it's conceived to be too expensive to be used in courses available to the students. Now, with the microcomputers, I think that that is going to change fairly dramatically. Not only that there's going to be a lessening of the cost, but it is going to tend to decentralize the control that I see mathematics departments now going out on their own and deciding, "Okay, we're going to have a dozen microcomputers, and we will do with it what we want in mathematics." In the past, they have really been at the mercies of the computer science departments, the people who provide computing service in the university. So it's a way of, I think, if you like, decentralizing the control and bringing it more within the individual disciplines where it belongs. But there's another aspect, and that is, I think, simply the unwillingness or the inability of people to take the time to understand the significance of a new technology or a new tool. And it's not that the idea of using computers in teaching hasn't been touted and accepted to a large extent, but this is teaching in what seems to me is a bizarre way, at least for a lot of topics, is it's the computer in control. This is so-called computer-aided instruction, where essentially the computer administers, drills, decides what's going to be done next and how you're going to do it. Which to me is, at least in most topics, an atrocious way to use the computer. And it is better to give the student the understanding of the tool so that he can develop what he needs in the particular discipline. Now, the reason why these computer-aided instructions, or one reason that they achieve the success that they do, I think, is they're one way of using computer where the faculty doesn't have to learn a single thing. You know, it's just, "Here's this can thing. Use it for your students. It'll be good for them." It's like selling pills. No pain, nothing. Whereas the way that I'm proposing, it means that faculty would really have to make an attempt to understand what is the significance of this tool in my discipline. That takes much longer. When I was talking about, you know, the old-- like in faculty, say, you have to wait until the old professors retire in order to make any real change. But you have to understand, when I say old, I don't mean chronologically at all, because I think there's often very little connection. That's why it's a dangerous thing to say, because it would be interpreted incorrectly. My example of this professor at Harvard was, here was a man who was really at a retirement age, but he was as young and active as ever, it seemed to me, much more so than many of the younger faculty. But the-- I'm sorry, I sort of lost the thread of this. What was your--
01:42:04 [WS]
No, my--
01:42:06 [KEI]
Oh, I'm sorry, as far as my own effect here. All right, well, first, of course, none of us believe ourselves that we're getting old in that sense, and neither do I. But the point is that-- See, the only way to get-- have influence of any breadth at all is to teach others. That is, I think, one of the great attractions of working in a university, because you've got all kinds of eager graduate students, and they not only have a lot of time and motivation to learn, but they also are still usually humble enough to think, maybe, that somebody can teach them something. Now, once you get out into the business world, that's not-- that attitude is not so prevalent. And here, as far as my own influence here is concerned, don't get the idea that I decide that such and such is going to be done to the language and it's done. Not by any means. It's more a matter of testing ideas on other people, persuasion. I try my best to get some of my colleagues to write joint papers and so on. Okay, I was just saying that it's not true that I or anybody else simply decides this is the way it's going to go and that there's any idea of being a czar of the language. Instead, it's done by education, persuasion, interchange of ideas. And I have certainly tried to compensate for this business of not having graduate students in a place like this by getting-- working with my colleagues to write joint papers, involve them, and partly because I respect their opinions, and it's the way to get things sorted out. Which reminds me of something that I should have maybe mentioned earlier, that I think that one of the-- well, one of the reasons that I think that APL is so different and sort of has an integrity that the other languages does not was this reason that it was developed for an entirely different reason, really for communication, as a tool for communication, rather than simply being a way of saying, "Let's make it possible to use the computer." And that the making use of the computer came later, in fact, many years later. That was one advantage. The other was that the group that we put together to work on this tended to be very-- well, we tended to think in the long range. And Ad1n Falkoff [08] and I-- I worked with Aidan for most of the 20 years that I was within IBM. And Falkoff and I wrote an article-- well, two articles. One was called "The Design of APL," and the other was "The Evolution of APL," which was more the history of the people and so on. But one of the things that we said, and I think it was true, was that in those early days, we had a relatively small group, and we worked by Quaker consensus. You know what that means? My understanding of the Quakers is that if there is a single dissenting voice, they don't take action. They don't take action until they have agreed. But once they have agreed, it's very difficult to stop their action. They're very thorough. They seem to be very thorough. So we said, "This is the way we work." And we can give example after example of things which we thought were quite important to get into our computer system, but we didn't agree. And sometimes they were shelved for two years, sometimes for much longer than that. And in this paper, we give some examples of how this has worked out, and also of how--and tracing the many steps in a decision. That we decided to do this, and then having played with that, we realized some other aspect, and so on, and it can go on and on. And there's a fair amount of that that's written about that. So we tend to be very conservative in that sense, not going ahead until we really get fairly wide agreement.
01:46:41 [WS]
How can you apply that observation to working at IP#? Is there any--
01:46:50 [KEI]
Well--
01:46:52 [WS]
So just--you know-- Because we can use that. That's a fascinating--
01:46:56 [KEI]
Well, it's not so much different than working at IBM. I think-- See, when--
01:47:04 [WS]
If you can just sort of lead that-- All right. It's--
01:47:05 [KEI]
Speaking of how we worked in the group originally in IBM reminds me of another aspect, and that is that we tended then, too, to be somewhat frustrated by the-- by not getting what we would have-- the amount of support that we would have liked to have had with computer facilities and so on in order to push this work forward. As a consequence, many things got-- that we would have otherwise gone ahead and done, probably, got delayed. And once you put something into a computer system that a lot of people are using, you're stuck with it. It is almost impossible to change it because you would--you would-- make it very awkward for thousands of people. Consequently, we finally realized in many cases that if we had had the support to go ahead at the time that we would have liked to have done it, we realized that there were many things that we could have simply done wrong, which on further reflection, having been forced to wait-- And so we-- we picked up a phrase which I think that the-- some unfortunate politician used in the States about talking about-- talking about the treatment of the Negroes. He spoke of benign neglect, and that's what we said. We benefited from this benign neglect because we didn't get as much support as we would have liked to have had, and consequently held us back, retarded the development enough that it finally came out better than it otherwise would. And of course, I still feel the same way here, that although we have-- although APL is uppermost in this corporation, there still is a very sharp limit to how much manpower you can apply to extending the language, for one thing. There's all kinds of other things that need to be extended. There are new computers coming on, new operating systems. Our systems got to be adapted to that. The PC, the personal computer, when it came along, a lot of effort was put onto that, none of which had anything to do with extending the development of the language. And so, you know, we tend to have to wait for this. Meantime, the ideas probably get refined better than they otherwise would. Also, let me be careful to say, I don't think I said that we weren't getting support. When I think of how much support IBM did give to something that took a long, long time to develop, you know, I'm still marveled at how considerate they were. I think what I said was that we weren't getting the support that we thought we should have, which is a somewhat different thing. And here, it's not-- Well, here, I'm more-- Also, I'm more aware of what other pressures there are, so that I'm much more, I think, not only you get more philosophical about these things as you grow older, but also I understand more what the other pressures are, and after all, the first thing that the company has to do is to make enough money to keep the whole operation going, and I'm not about to insist that we do more of-- a lot more of this. And also, you can't do it overnight anyway. You can't simply bring in new people and say, "Tomorrow, we're going to start having you extending this language." There are only a relatively small number of people who are competent to do it, or that they would require a fair amount of training before they do.
01:51:08 [WS]
Is there anything you would rather be doing than this?
01:51:14 [KEI]
Oh, God, no. Particularly since coming here, I've been having a ball. It's been really great.
01:51:22 [WS]
So you don't have any complaints about this place, or do you?
01:51:26 [KEI]
No, no. In fact, not only about this place, but Toronto. It's been marvelous for my wife and I, because we came here-- We had always lived out in the suburbs, primarily because that seemed a better place to bring up children. And this is the first time in our lives when we've been free to live in the city, and particularly in a city with good transportation so we don't really have to drive a car. And the job has just been fantastic.
01:52:00 [WS]
Wrapping this up, talking about the future and Sharp, I don't know what the question is. I guess what is-- What do you hope that this company can do? I mean, let's talk about dreams now. Does anything come to mind? As opposed to you, but this company is a very powerful thing, and it can do certain things. It can make a step this way or that way.
01:52:43 [KEI]
Well, that's a very difficult thing to answer, because as far as for what hopes for the company, because I know so many of the people involved, I just hope it continues to be successful, simply because I'd like to see these people continue to do work that interests them. But the other side of the question, which I think is maybe what you're trying to get at, is as far as my personal ambitions are concerned, as far as what I would like to do is to simply, first of all, continue development along some lines that I already have laid out, and I think I understand what to do, to improve the language. I recognize that like any living language, it will continue to develop long after I'm no longer involved with it. But as far as in that term, what my hope is, is that at some time in the future, it will become so much a part of the way that people express themselves not only in sciences, certainly in mathematics and whatnot, but in business and so on. It will be so much a part of the way that people express themselves that it will no longer even be called APL. It simply won't have a name, any more than mathematical notation has a name. So I'd like to think of it as becoming part of the English language.
01:54:10 [BT]
I hope that you enjoyed that episode, and it gives you a little deeper insight into the man who created the APL language. I want to thank Whitney Smith for providing us with this audio, and to Bob Bernecky, who made us aware of its existence. If you would like to leave comments or questions for us, you can email us at contact@ArrayCast.com. [09] On the next episode of ArrayCast, we will return to our usual panel format. In the meantime, I'm Bob Therriault saying, Happy Array Programming.
01:54:40 [Music]