1 99:59:59,999 --> 99:59:59,999 Robert Lefkowitz, comes from the USA, from New York. 2 99:59:59,999 --> 99:59:59,999 He worked many years in IT (information technology) 3 99:59:59,999 --> 99:59:59,999 and he has worked in telecommunications in Wall Street 4 99:59:59,999 --> 99:59:59,999 and a few other places he's worked in 5 99:59:59,999 --> 99:59:59,999 At present he's the Chief Technical Officer and co-founder in Sharewave 6 99:59:59,999 --> 99:59:59,999 He's also writing a book that explores universal programming literacy and open source 7 99:59:59,999 --> 99:59:59,999 Which is the present interest in his talk and the main reason why he's here 8 99:59:59,999 --> 99:59:59,999 to share with us some of his knowledge and ideas 9 99:59:59,999 --> 99:59:59,999 about open source and universal programming literacy 10 99:59:59,999 --> 99:59:59,999 Talking about this in particular helped him figure out a way to continue with his book 11 99:59:59,999 --> 99:59:59,999 so if anyone has ideas or suggestions you can contact him eventually 12 99:59:59,999 --> 99:59:59,999 So, let's welcome now Robert "ℝ∅ⅯⅬ" Lefkowitz with a warm round of applause 13 99:59:59,999 --> 99:59:59,999 [clapping] 14 99:59:59,999 --> 99:59:59,999 thank you 15 99:59:59,999 --> 99:59:59,999 I'm very excited to be here 16 99:59:59,999 --> 99:59:59,999 and I apologize that I cannot speak in Spanish 17 99:59:59,999 --> 99:59:59,999 but I was invited to speak, I did not have time to learn Spanish in time for this 18 99:59:59,999 --> 99:59:59,999 This is a continuation or a reprise of a talk that I gave in PyCon in 2007 in the US 19 99:59:59,999 --> 99:59:59,999 and I heard that some of you have heard this before. So, indulge me. 20 99:59:59,999 --> 99:59:59,999 I'm from New York, 21 99:59:59,999 --> 99:59:59,999 New Yorkers have a reputation for being fast talkers 22 99:59:59,999 --> 99:59:59,999 so I'm trying to slow down. 23 99:59:59,999 --> 99:59:59,999 But if I get excited, which I may very well get excited, then I'll start speeding up and I'll be going much faster than I us... 24 99:59:59,999 --> 99:59:59,999 then if somebody would... [waves his arms] 25 99:59:59,999 --> 99:59:59,999 remind me that I should slow down then I would appreciate it. 26 99:59:59,999 --> 99:59:59,999 I'm not a python... eh... 27 99:59:59,999 --> 99:59:59,999 I'm not a pythonista. 28 99:59:59,999 --> 99:59:59,999 So, I assume that the reason that I was invited here, my contribution to the python community is that 29 99:59:59,999 --> 99:59:59,999 when my son learned to program in school he learned to program in Java because they taught in Java... 30 99:59:59,999 --> 99:59:59,999 and I convinced him to learn Python instead. 31 99:59:59,999 --> 99:59:59,999 And then he went on to write Twisted. [clapping] 32 99:59:59,999 --> 99:59:59,999 And so, Twisted is my first grandchild. [laughter] 33 99:59:59,999 --> 99:59:59,999 But other than that, I have... 34 99:59:59,999 --> 99:59:59,999 my interest, my involvement in Python is certainly nowhere near as much as my son's. 35 99:59:59,999 --> 99:59:59,999 I'm interested in Rhetoric 36 99:59:59,999 --> 99:59:59,999 That's why I'm speaking! 37 99:59:59,999 --> 99:59:59,999 And my thesis is that... 38 99:59:59,999 --> 99:59:59,999 Rhetoric and Programming are the same thing 39 99:59:59,999 --> 99:59:59,999 or to put it another way, the... 40 99:59:59,999 --> 99:59:59,999 that the 21st century extension of the classical art of Rhetoric we call Programming 41 99:59:59,999 --> 99:59:59,999 and that's what I wanna talk about. 42 99:59:59,999 --> 99:59:59,999 The reason to talk about it, is that "if" programming is literacy 43 99:59:59,999 --> 99:59:59,999 and literacy is programming, 44 99:59:59,999 --> 99:59:59,999 then if we have 2000 years of history, or maybe more with literacy and literacy education 45 99:59:59,999 --> 99:59:59,999 and so there might be something that we can learn 46 99:59:59,999 --> 99:59:59,999 for what we did right or what we did wrong 47 99:59:59,999 --> 99:59:59,999 But of course they might be different than literacy 48 99:59:59,999 --> 99:59:59,999 and we should understand those differences if we can, as well. 49 99:59:59,999 --> 99:59:59,999 This is not a new idea. This is not... 50 99:59:59,999 --> 99:59:59,999 my idea. 51 99:59:59,999 --> 99:59:59,999 It was a very popular idea in the 80s 52 99:59:59,999 --> 99:59:59,999 Now, one of the things... 53 99:59:59,999 --> 99:59:59,999 because I only have an hour and a half for this talk... 54 99:59:59,999 --> 99:59:59,999 or two... 55 99:59:59,999 --> 99:59:59,999 [laughter] 56 99:59:59,999 --> 99:59:59,999 And it would be not enough time to talk about everything that I was to talk about... 57 99:59:59,999 --> 99:59:59,999 So I'm in the habit of providing book references, 58 99:59:59,999 --> 99:59:59,999 for people that are interested in particular topics. 59 99:59:59,999 --> 99:59:59,999 So I have many of my slides with book references. 60 99:59:59,999 --> 99:59:59,999 You don't have to copy them all down, 61 99:59:59,999 --> 99:59:59,999 if you email me I will surely send you the slides and the bibliography 62 99:59:59,999 --> 99:59:59,999 It's curious, you will notice, that most of the books that I'm quoting here... 63 99:59:59,999 --> 99:59:59,999 were written between 1984 and 1986 for some reason. 64 99:59:59,999 --> 99:59:59,999 Donald Knuth gave a name to this thing that I'm talking about 65 99:59:59,999 --> 99:59:59,999 which was "Literate Programming". 66 99:59:59,999 --> 99:59:59,999 And the way he phrased it was that Programming... 67 99:59:59,999 --> 99:59:59,999 "A Programmer could be regarded as an essayist, 68 99:59:59,999 --> 99:59:59,999 whose main concern is with exposition and excellence of style." 69 99:59:59,999 --> 99:59:59,999 And he invented a system, which he called WEB. 70 99:59:59,999 --> 99:59:59,999 And the reason he called it WEB, actually is pretty funny. 71 99:59:59,999 --> 99:59:59,999 It was, he wrote: 72 99:59:59,999 --> 99:59:59,999 "It was the only three letter word in the English language that I could find, 73 99:59:59,999 --> 99:59:59,999 that wasn't used for something in computers." 74 99:59:59,999 --> 99:59:59,999 So WEB was this system where if you wrote a program, 75 99:59:59,999 --> 99:59:59,999 it would either run through a compiler, 76 99:59:59,999 --> 99:59:59,999 or, it could be published as a paper in computer science. 77 99:59:59,999 --> 99:59:59,999 So the idea that the text was both a program and an essay. 78 99:59:59,999 --> 99:59:59,999 That was the WEB system. 79 99:59:59,999 --> 99:59:59,999 And Knuth wasn't the only one. 80 99:59:59,999 --> 99:59:59,999 In 1985, Abelson and Sussman published their textbook on computer science, and 81 99:59:59,999 --> 99:59:59,999 in the introduction he starts with: 82 99:59:59,999 --> 99:59:59,999 "First we want to establish the idea that a computer language... 83 99:59:59,999 --> 99:59:59,999 is not just a way to get a computer to perform operations, 84 99:59:59,999 --> 99:59:59,999 but rather that it is a novel medium for expressing ideas about methodology. 85 99:59:59,999 --> 99:59:59,999 Thus, programs must be written for people to read. And only incidentally for machines to execute." 86 99:59:59,999 --> 99:59:59,999 So here we have both the East coast's and the West coast's of the United States professors, saying: 87 99:59:59,999 --> 99:59:59,999 "Nah, programs are the way people talk to each other about algorithms. 88 99:59:59,999 --> 99:59:59,999 And the computers have nothing to do with it." 89 99:59:59,999 --> 99:59:59,999 And it was right about this time, in 1984 that Richard Stallman writes the GNU manifest. 90 99:59:59,999 --> 99:59:59,999 What does he say about that? 91 99:59:59,999 --> 99:59:59,999 "Well, you need access to the source, because it's a requisite for people to be able to read the software." 92 99:59:59,999 --> 99:59:59,999 It's all part of that same feeling that in the 80s we had this idea that... 93 99:59:59,999 --> 99:59:59,999 software was about people and not about machines. 94 99:59:59,999 --> 99:59:59,999 In fact, this is a slide from a presentation Guido van Rossum gave in 1999, 95 99:59:59,999 --> 99:59:59,999 in which he was talking about his CP4E initiative. "Computer Programming for Everybody", 96 99:59:59,999 --> 99:59:59,999 in which he was going to teach everybody how to program. 97 99:59:59,999 --> 99:59:59,999 The CP4E project is dormant, according to Wikipedia. 98 99:59:59,999 --> 99:59:59,999 So, what happened? 99 99:59:59,999 --> 99:59:59,999 In the 1980s every book that you picked up about computer science... 100 99:59:59,999 --> 99:59:59,999 talks about how it's all about people, it's not about machines. 101 99:59:59,999 --> 99:59:59,999 And today it's much more about machines. 102 99:59:59,999 --> 99:59:59,999 And a little bit about people. 103 99:59:59,999 --> 99:59:59,999 So, I want to understand... 104 99:59:59,999 --> 99:59:59,999 I wanna bring back actually to the CP4E idea. 105 99:59:59,999 --> 99:59:59,999 That everybody can program. 106 99:59:59,999 --> 99:59:59,999 Because we teach everybody how to read! 107 99:59:59,999 --> 99:59:59,999 And if it's about reading... 108 99:59:59,999 --> 99:59:59,999 then we should understand the history of literacy. 109 99:59:59,999 --> 99:59:59,999 So I'm going to take a "small" 40 minute diversion to talk about the history of literacy. 110 99:59:59,999 --> 99:59:59,999 But because this is a programming crowd... 111 99:59:59,999 --> 99:59:59,999 I will then bring it back to programming and to talk about programming languages of the future, 112 99:59:59,999 --> 99:59:59,999 assuming that we have a sort of literate view of programming once again. 113 99:59:59,999 --> 99:59:59,999 My favorite book on Rhetoric is written by Sister Miriam Joseph and the first edition was published in 1938. 114 99:59:59,999 --> 99:59:59,999 And Sister... 115 99:59:59,999 --> 99:59:59,999 This book is about the Trivium, so... 116 99:59:59,999 --> 99:59:59,999 the curriculum in the Middle Ages, they taught three things to everybody: 117 99:59:59,999 --> 99:59:59,999 They taught Logic, 118 99:59:59,999 --> 99:59:59,999 Grammar, Logic and Rhetoric. 119 99:59:59,999 --> 99:59:59,999 Rhetoric being the most advanced of the three. 120 99:59:59,999 --> 99:59:59,999 Since it was three things, it was called the Trivium, 121 99:59:59,999 --> 99:59:59,999 and this is where we get our english word "Trivial", 122 99:59:59,999 --> 99:59:59,999 which means "something anybody knows", 123 99:59:59,999 --> 99:59:59,999 because in the beginning, it was the university course of these three things, but... 124 99:59:59,999 --> 99:59:59,999 eventually they taught it to everybody, and the thing that everybody knew was Trivial. 125 99:59:59,999 --> 99:59:59,999 Here's the definition: 126 99:59:59,999 --> 99:59:59,999 "Logic is concerned with the thing as it is known. 127 99:59:59,999 --> 99:59:59,999 Grammar with the thing as it is symbolized. 128 99:59:59,999 --> 99:59:59,999 And Rhetoric is concerned with the thing as it is communicated." 129 99:59:59,999 --> 99:59:59,999 And this was the sentence that made me think: "She's talking about programming!" 130 99:59:59,999 --> 99:59:59,999 If rhetoric is the art of communicating through symbols ideas about reality, 131 99:59:59,999 --> 99:59:59,999 how is that different than programming? 132 99:59:59,999 --> 99:59:59,999 Programming is in fact communicating ideas about reality to machines. 133 99:59:59,999 --> 99:59:59,999 And other people. 134 99:59:59,999 --> 99:59:59,999 So, rhetoric is the Master Art. It is programming. 135 99:59:59,999 --> 99:59:59,999 When we talk to machines, we are using the rhetoric of the machine. 136 99:59:59,999 --> 99:59:59,999 So, this idea of language and literacy that I... 137 99:59:59,999 --> 99:59:59,999 not only infuses the... 138 99:59:59,999 --> 99:59:59,999 programmers of the 80s, but the philosophers of the 60s and the 40s. 139 99:59:59,999 --> 99:59:59,999 A famous collection of essays which is called "The Linguistic Turn", came out in 1967, 140 99:59:59,999 --> 99:59:59,999 which had a group of essays from philosophers through the 30s and 40s. 141 99:59:59,999 --> 99:59:59,999 And my favorite out of those is Bertrand Russell. 142 99:59:59,999 --> 99:59:59,999 Is quoted to say: 143 99:59:59,999 --> 99:59:59,999 that "by means of the study of syntax, 144 99:59:59,999 --> 99:59:59,999 we can come to a considerable knowledge concerning the structure of the world." 145 99:59:59,999 --> 99:59:59,999 Which I think a programmer would appreciate. 146 99:59:59,999 --> 99:59:59,999 So, if rhetoric (or programming) is communicating ideas about reality to people and machines, 147 99:59:59,999 --> 99:59:59,999 then we have a bit of a duality. 148 99:59:59,999 --> 99:59:59,999 So the literacy part is communicating ideas to people, 149 99:59:59,999 --> 99:59:59,999 and the Engineering part is communicating ideas to machines. 150 99:59:59,999 --> 99:59:59,999 And that may be different. 151 99:59:59,999 --> 99:59:59,999 That may be why we isolate back and forth between... 152 99:59:59,999 --> 99:59:59,999 thinking of programming as something we do between people, 153 99:59:59,999 --> 99:59:59,999 and thinking of programming as sort of a mechanical art that we use to make machines... 154 99:59:59,999 --> 99:59:59,999 do the things that we want them to do. 155 99:59:59,999 --> 99:59:59,999 It's because when you write a program you are talking to two classes of beings. 156 99:59:59,999 --> 99:59:59,999 So in 1986 in a study of literacy, Havelock discovers a general pattern of literacy, 157 99:59:59,999 --> 99:59:59,999 which she writes about.