Robert Lefkowitz, comes from the USA, from New York. He worked many years in IT (information technology) and he has worked in telecommunications in Wall Street and a few other places he's worked in At present he's the Chief Technical Officer and co-founder in Sharewave He's also writing a book that explores universal programming literacy and open source Which is the present interest in his talk and the main reason why he's here to share with us some of his knowledge and ideas about open source and universal programming literacy Talking about this in particular helped him figure out a way to continue with his book so if anyone has ideas or suggestions you can contact him eventually So, let's welcome now Robert "ℝ∅ⅯⅬ" Lefkowitz with a warm round of applause [clapping] thank you I'm very excited to be here and I apologize that I cannot speak in Spanish but I was invited to speak, I did not have time to learn Spanish in time for this This is a continuation or a reprise of a talk that I gave in PyCon in 2007 in the US and I heard that some of you have heard this before. So, indulge me. I'm from New York, New Yorkers have a reputation for being fast talkers so I'm trying to slow down. 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... then if somebody would... [waves his arms] remind me that I should slow down then I would appreciate it. I'm not a python... eh... I'm not a pythonista. So, I assume that the reason that I was invited here, my contribution to the python community is that when my son learned to program in school he learned to program in Java because they taught in Java... and I convinced him to learn Python instead. And then he went on to write Twisted. [clapping] And so, Twisted is my first grandchild. [laughter] But other than that, I have... my interest, my involvement in Python is certainly nowhere near as much as my son's. I'm interested in Rhetoric That's why I'm speaking! And my thesis is that... Rhetoric and Programming are the same thing or to put it another way, the... that the 21st century extension of the classical art of Rhetoric we call Programming and that's what I wanna talk about. The reason to talk about it, is that "if" programming is literacy and literacy is programming, then if we have 2000 years of history, or maybe more with literacy and literacy education and so there might be something that we can learn for what we did right or what we did wrong But of course they might be different than literacy and we should understand those differences if we can, as well. This is not a new idea. This is not... my idea. It was a very popular idea in the 80s Now, one of the things... because I only have an hour and a half for this talk... or two... [laughter] And it would be not enough time to talk about everything that I was to talk about... So I'm in the habit of providing book references, for people that are interested in particular topics. So I have many of my slides with book references. You don't have to copy them all down, if you email me I will surely send you the slides and the bibliography It's curious, you will notice, that most of the books that I'm quoting here... were written between 1984 and 1986 for some reason. Donald Knuth gave a name to this thing that I'm talking about which was "Literate Programming". And the way he phrased it was that Programming... "A Programmer could be regarded as an essayist, whose main concern is with exposition and excellence of style." And he invented a system, which he called WEB. And the reason he called it WEB, actually is pretty funny. It was, he wrote: "It was the only three letter word in the English language that I could find, that wasn't used for something in computers." So WEB was this system where if you wrote a program, it would either run through a compiler, or, it could be published as a paper in computer science. So the idea that the text was both a program and an essay. That was the WEB system. And Knuth wasn't the only one. In 1985, Abelson and Sussman published their textbook on computer science, and in the introduction he starts with: "First we want to establish the idea that a computer language... is not just a way to get a computer to perform operations, but rather that it is a novel medium for expressing ideas about methodology. Thus, programs must be written for people to read. And only incidentally for machines to execute." So here we have both the East coast's and the West coast's of the United States professors, saying: "Nah, programs are the way people talk to each other about algorithms. And the computers have nothing to do with it." And it was right about this time, in 1984 that Richard Stallman writes the GNU manifest. What does he say about that? "Well, you need access to the source, because it's a requisite for people to be able to read the software." It's all part of that same feeling that in the 80s we had this idea that... software was about people and not about machines. In fact, this is a slide from a presentation Guido van Rossum gave in 1999, in which he was talking about his CP4E initiative. "Computer Programming for Everybody", in which he was going to teach everybody how to program. The CP4E project is dormant, according to Wikipedia. So, what happened? In the 1980s every book that you picked up about computer science... talks about how it's all about people, it's not about machines. And today it's much more about machines. And a little bit about people. So, I want to understand... I wanna bring back actually to the CP4E idea. That everybody can program. Because we teach everybody how to read! And if it's about reading... then we should understand the history of literacy. So I'm going to take a "small" 40 minute diversion to talk about the history of literacy. But because this is a programming crowd... I will then bring it back to programming and to talk about programming languages of the future, assuming that we have a sort of literate view of programming once again. My favorite book on Rhetoric is written by Sister Miriam Joseph and the first edition was published in 1938. And Sister... This book is about the Trivium, so... the curriculum in the Middle Ages, they taught three things to everybody: They taught Logic, Grammar, Logic and Rhetoric. Rhetoric being the most advanced of the three. Since it was three things, it was called the Trivium, and this is where we get our english word "Trivial", which means "something anybody knows", because in the beginning, it was the university course of these three things, but... eventually they taught it to everybody, and the thing that everybody knew was Trivial. Here's the definition: "Logic is concerned with the thing as it is known. Grammar with the thing as it is symbolized. And Rhetoric is concerned with the thing as it is communicated." And this was the sentence that made me think: "She's talking about programming!" If rhetoric is the art of communicating through symbols ideas about reality, how is that different than programming? Programming is in fact communicating ideas about reality to machines. And other people. So, rhetoric is the Master Art. It is programming. When we talk to machines, we are using the rhetoric of the machine. So, this idea of language and literacy that I... not only infuses the... programmers of the 80s, but the philosophers of the 60s and the 40s. A famous collection of essays which is called "The Linguistic Turn", came out in 1967, which had a group of essays from philosophers through the 30s and 40s. And my favorite out of those is Bertrand Russell. Is quoted to say: that "by means of the study of syntax, we can come to a considerable knowledge concerning the structure of the world." Which I think a programmer would appreciate. So, if rhetoric (or programming) is communicating ideas about reality to people and machines, then we have a bit of a duality. So the literacy part is communicating ideas to people, and the Engineering part is communicating ideas to machines. And that may be different. That may be why we isolate back and forth between... thinking of programming as something we do between people, and thinking of programming as sort of a mechanical art that we use to make machines... do the things that we want them to do. It's because when you write a program you are talking to two classes of beings. So in 1986 in a study of literacy, Havelock discovers a general pattern of literacy, which she writes about.