Gödel Lecture Series: Donald Knuth

Information sign to lecture hall EI7
All questions answered session – information sign

“I figured the only reason there is so many people here is, because you want all your questions answered” (Donald E. Knuth at Vienna Gödel Lecture 1)

So I finally saw Donald Knuth in real life. As someone who made major contributions to digital typesetting and algorithm theory, his research objectives intersect with my field of interest in majority and he personifies a person who achieved one of my major goals: Providing tools for everyone to publish content/data/information. It’s kind of a big deal for me, because I state to be a “knuth fanboy” for about one to two years now (meaning I am explicitly studying/looking for content authored by DEK).

Myself (question): Thank you so much for being here. I enjoy your research so much. My question today is the one about programming language design. So you are the author of TeX and the WEB system. You have written many source codes in Algol, Pascal… you even published a source code in INTERCAL [tpk] and you also have been quoted to tell at the ACM Turing 100 Banquet that python is the only popular language which is not ugly [acm]. So my question here is today, uhm, what are your personal criteria for what makes a programming language beautiful?

Don Knuth (answer): Okay, so, criteria for a beautiful programming language… depends on the programmer and the application. So, one size does not fit all. To me the best programming language is the one that matches the intuition of the programmer. So that you can put your thoughts down without having to translate it to something that’s not actually important. But different programmers have quite different mentalities. I mean, some people love a functional style of programming language (for example) or more declarative. Others want to be imperative.

I never… I can use Haskell and LISP but I feel a little bit like a dog standing on high feet while I am doing that. When I use C it feels right. But that’s not like I can say other people are wrong. When I use C++, I can’t stand it. I mean it just… the way of thinking does not go into my head at all. If you say something is static, what is this… the less-than sign sometimes means a template, sometimes means less than… so it gets ambiguous. But I am sure that the people who designed these languages did it because it was really right for them. So there are different applications as well… of languages.

I was asked in the 60s to write a paper about the design of programming languages. And I started it and I decided that the best way to say what a good language is to have an example of a bad language. But I did not wanna hurt any feelings of my best friends. So I invented my own bad language: I called it BL\I (bad language 1). It was a… B L backslash 1. I defined it but of course also my definition was bad. And then I… this was a language for string manipulation. Another thing about a language—of course you have an application area of what you are trying to do—so I also defined another language that was supposed to be a good one called StrolsString Oriented Language. So I had that language and then I had Strols. And then I was going to write up other things about programming language design. But I never finished the paper in the 60s and I guess I was worried that somebody would implement this language [Editor’s note: pointing to BL\I on the board]. So about 2-3 years ago all my papers on programming languages were collected into a book and I decided “Okay, now it is time to get up my old notes”. So I don’t know… chapter 13. The book is called “Selected papers on computer languages” and chapter (something rather) is about design of language and includes BL\I; you can take a look.

That sort of summarizes my opinions about the idea of good language designers. But just the fact that it works for me though does not mean it is going to work for everybody.

Myself: Thank you.

—Question answered (16th of May 2013, real time ~16:20 UTC, local time ~18:20, livestream at 00:47:44)

The question really was meant to answer the question for criteria and I was not looking for the “best” programming language (which btw, was asked already some time ago). I am fond to the aesthetics of mathematical structures, data structures and language design and was looking for his opinion on a linguistic level. From a point of view I was looking for guidelines how to design a good (programming) language. I am kind of happy with his answer. The most important keyword for me is intuition. Intuition corresponds to the Principle of Least Astonishment (yes, I always have to link Armin’s article if I use this term) which is very important in UI design. To make computer science accessible to a wide range of programmers we have to find languages which fit to their intuition and don’t surprise them. That’s important in my opinion and DEK valued it with this answer.

And yes, I have to admit that I missed to check out this book and I am going to study it now 😉

“My idea is that P equals NP but we will never know why” (Donald E. Knuth during the Vienna Gödel Lectures)

“It has to may be that during the 1970s more computing time was spent simulating the Game of Life than anything else.” (Donald E. Knuth about the hype of Game of Life during the 70s)

Thanks, Don.

Don Knuth after entering the lecture room
Don Knuth before the beginning
Don #Knuth talking to @meisterluk
Don #Knuth talking to @meisterluk [twitter]
Book signing after the lecture
Book signing after the lecture
Signature by Donald Knuth
Signature by Donald Knuth in TAOCP
Karlsplatz in Vienna (TU Vienna)
Karlsplatz in front of University of Technology Vienna

Tags: Donald Ervin Knuth, Gödel Lecture Series, Vienna, All questions answered, Programming language design, May 2013

Gödel Lecture Series: Donald Knuth

PETA auf #python.de

[23:34] <peta> hallo leute
[23:40] <__name__> hallo peta
[23:40] <__name__> schützt du tiere?
[23:41] <peta> ja … schau mich hier gerade um
[23:42] <peta> soweit ich sehen kann alles in ordnung
[23:42] <__name__> wir machen keine tierversuche
[23:42] <__name__> nur im hinterkammerl mit schlangen
[23:42] <peta> habe gehört dass hier mit exotischen schlangenarten gehandelt werden soll

PETA auf #python.de

“Why Nerds are unpopular” (Paul Graham)

The best and truest quotes (imho, because I have experienced them myself):

Adults can’t avoid seeing that teenage kids are tormented. So why don’t they do something about it? Because they blame it on puberty.

Because I didn’t fit into this world, I thought that something must be wrong with me. I didn’t realize that the reason we nerds didn’t fit in was that in some ways we were a step ahead. We were already thinking about the kind of things that matter in the real world, instead of spending all our time playing an exacting but mostly pointless game like the others.

Teenagers seem to have respected adults more then, because the adults were the visible experts in the skills they were trying to learn. Now most kids have little idea what their parents do in their distant offices, and see no connection (indeed, there is precious little) between schoolwork and the work they’ll do as adults.

And if teenagers respected adults more, adults also had more use for teenagers. After a couple years’ training, an apprentice could be a real help. Even the newest apprentice could be made to carry messages or sweep the workshop. Now adults have no immediate use for teenagers. They would be in the way in an office. So they drop them off at school on their way to work, much as they might drop the dog off at a kennel if they were going away for the weekend.

In almost any group of people you’ll find hierarchy. When groups of adults form in the real world, it’s generally for some common purpose, and the leaders end up being those who are best at it. The problem with most schools is, they have no purpose. But hierarchy there must be. And so the kids make one out of nothing.

Paul Graham’s “Why Nerds are unpopular
Recommended for all interested people in topics of nerdism and american education. Just a nice Saturday night lecture.

“Why Nerds are unpopular” (Paul Graham)

Webdesign…

Der Pinsel des Michelangelo (Optische Gestaltung)
Der Kompass des Weltenbummlers (Übersicht & Navigation)
Der Kern der Sache (Inhalt)
Der Browser des Anderen (Kompatibilität)
Die Augen des Anderen (Kompatibilität)
Der Kern der Sache (Inhalt)
Die Freude des Lektors (Grammatik)
Die Waage der Justitia (Recht)
Die Reise des Flash-Verweigerers (Flash-Animationen)
Der Vorspann der Seite (Intro)

via treml

Webdesign…