Notes from the IET / BCS
2011 Turing Lecture
London, 01 February 2011

Blog Home Page

An Evening with Don Knuth: all questions answered

  • Keeping time with the algorithm
  • A dark art
  • The talk
  • Is Engineering large systems taking the art out of programming?
  • What is difficult in computing?
  • Bach the programmer?
  • What are the trends in computer languages going to be in the next 20 years?
  • The role of purely functional languages.
  • Are scientists losing credibility as knowledge providers?
  • Typefaces and the bank of Knuth.
  • Archiving code for future historians.
  • Are Agile methodologies encouraging programmers to cut corners and skip analysis phase?
  • Metafont and quantum computers.
  • Why is it the "Art" not the "Science" of computer programming?
  • God and Artificial Intelligence.
  • The significance of 885205232.
  • Professor Finkelstein.
  • After the talk - What is a programmer?
  • Watch lecture online.

    Keeping time with the algorithm.

    A sea of pony-tails, long hair, short hair, beards, jeans, flamboyant waistcoats, expensive suits, friendship-bracelets and one very fine waxed moustache that would make Poirot envious. The queue to buy the books and have them signed by the author was organised chaos. I played with jokes about queueing theory algorithms but decided that discretion is the better part of valour.

    What is a programmer? I was surrounded by people who wanted to buy a book that was very much not a management manual. I was fairly sure that the people here were mostly programmers or have remained programmers at heart. Some of them fit the stereotype and some of them, most certainly, did not. There were old campaigners here, mixed with the new recruits and those still earning stripes. I wondered what the programming power here tonight was and how it could be measured.

    I brought my old mentor, Trevor, to mind. He had introduced me to the art of computer programming. Donald Knuth, he had told me, was the high priest of the art. I had known how to code but Trevor thought me how to program by making me read Knuth and cut code in time to the beat of the algorithm.

    In the hall Lord Kelvin and I regarded each other across the centuries. He did much to unify the discipline of physics. What would he make of programmers?

    kelvin (12K)

    A dark art

    Trevor had always eschewed the terms computer science and software engineering. “It is not a science or engineering.”, he whispered to me, as we waited for compilers to spit out their verdict on our incantations and as he taught me how to stare into the face of pages of cryptic compiler messages without flinching. “It is a dark and mysterious art”, he confided to me over espresso and a walk to clear our head between delvings into the depths of its heart; him like a grand old mage and me the magicians apprentice.

    That was time ago that can be counted in decades. Back then, Knuth was a wizard a world away, in some fabulous tower of knowledge that I had still to scale. Tonight he was a genial man in a three piece suit who had spoken through a heavy cold to an appreciative audience that spent a lot of time laughing along with his gentle wit.

    The talk

    The format was a brave one but one familiar to him by the evidence of a quick trip through youtube. He had prepared only a short talk and was going to answer questions on any topic, with the proviso that, outside programming, his opinion was no better than anyone else’s. I am not sure about that. Is it possible for a man to spend his life analysing the patterns of reality without picking up some useful wisdom about life?

    The new book of this serious academic is entitled “Selected Papers on Fun and Games”. His seminal work is entitled “The Art of Computer Programming”. It is not difficult to imagine his attitude to his work even though the Art of Computer Programming has been cited in over 11,000 papers and is considered by some to be as influential as the works of Newton and Einstein.

    It would be easy, and it is very tempting, to divert into a blog about Knuth, his work, his wit and his legacy. Perhaps I will do a later blog about just that, but this is about the Turing Lecture 2011.

    Professor Anthony Finkelstein and Professor Knuth (pronounced ka-nooth) were deep in conversation on stage waiting for proceedings to begin. Professor Knuth withdrew a voluminous white handkerchief and blew his nose. The president of the BCS, Dr Elizabeth Sparrow, introduced Knuth with a warm description of his many achievements and the respect with which the computing world holds him.

    He began by talking briefly about the film “The 39 Steps”, his language TEX, how he got the idea for the “any questions you really want to ask” session from Richard Feynman and an appeal to anyone who might know who posted footage on youtube of one of his lectures at Greenwich that was otherwise lost. (I think this is what he was referring to: Knuth@Greenwich ). He would like the rest of it.

    The atmosphere could only be described as jolly. He had positioned it as a day you could come to class or not but if you do turn up you can ask any question you like. The lecture had the feel of a last day of term about it. There was frivolity here in these halls where there was normally grave discussion.

    Is Engineering large systems taking the art out of programming?

    His first question was about the focus on engineering large systems versus art in programming. His answer acknowledged the need to engineer large systems but wondered if elegance & style and engineering really needed to be mutually exclusive. He went on to echo the thoughts of many programmers about the growth of boring jobs as programming appears to devolve into making library calls (i.e. calls to libraries of pre programmed code). Then he drew a hugely important distinction between re-usable and re-editable code, coming heavily down, as I do myself, in favour of the latter.

    I could so easily be diverted here to talk about this subject, which is appealing to the magician’s apprentice in me, but this, too, is the subject of another blog I think.

    I wondered about the pugilistic abilities of both professors when Professor Finkelstein declared that it was not possible to write large systems which are beautiful. Wriggle room around the definition of “large” saved the evening and kept the peace.

    What is difficult in computing?

    The epithet by Phil Karlton that “There are only two hard problems in Computer Science: cache invalidation and naming things” was the basis of the next question.

    Professor Knuth’s response was to sigh “If only.” and hold up the latest tome in his “Art of Computer Science”. He told us that even though it did not have much in it about naming things or cache invalidation it is not an easy book but it could have been a lot harder .

    Bach the programmer?

    Bach was a master of concurrency. What programming principles are displayed in the music of the great composers?

    This question displayed knowledge of Knuth’s love of music. Wikipedia tells us that he had a hard time choosing physics over music as his major. Well, Knuth thinks what Bach displays is more maths than programming and that the music of Tchaikovsky exhibits beautiful patterns.

    Then, sublimely, he began to talk about the constraints of form. The constraints composing to particular musical form map onto the constraints of programming for specific hardware. I find myself again having to reign in my desire to just write about this beautiful thought.

    What are the trends in computer languages going to be in the next 20 years?

    He semi seriously told it that it is going to get worse. Programming languages seem to have a half life of about 5 years and there seems to be a search on for an optimum language.

    He added that if you think that a better language will make the other problems go away you are missing the reality that some things inherently cause complexity. He reckons that languages will get better but that no language will be a panacea. I am not sure whether it is depressing or reassuring that someone who can write his own computer languages is as exasperated as the rest of us about the cult of the silver bullet.

    The role of purely functional languages

    This is a hot topic in the programming world. There is an increasing support for a return to functional languages. Pascal was my first programming language but I spent most of my programming career programming in Java, so I was interested in what Knuth thought.

    He admits to not being an expert in these types of languages but preferring to use languages that are closer to how a machine actually works.

    Are scientists losing credibility as knowledge providers?

    This question seemed to be really about climate change and the recent bad press of climate scientists.

    Knuth adroitly described Jevons Paradox which states that energy efficiency ultimately results in greater energy use.

    He asked us not to ask him to be a philosopher. My thought was “if the cap fits, wear it”. His point being, I think, that even programming is not a purely technical problem. Invoking Jevons law he was saying, to me at least, that things like climate change and the impending energy crisis should not be treated as technical problems because the technical solutions will bring their own problems. People are prepared to change their lifestyles, they recycle, they are responsive and responsible on the whole. If I can continue to put words into his mouth, the role of scientists is to educate and collaborate so that we understand the consequences and change our attitude to energy consumption.

    (Another blog?)

    Typefaces and the bank of Knuth

    In response to this question he told us his favourite font depended on what it was being used for. He has an affection for Lithos. He signed its creator, Carol Twombly's thesis in typography.

    He called his bank, from which he draws checks in Hex dollars to reward those who find typographic errors in his books, the San Seriffe bank after the Guardian newspaper's 1977 April fool hoax.

    The link, if you have not guessed, is that Lithos is a sans serif glyphic font. Knuthish humour, eh?

    Archiving code for future historians

    First he talked about the cultural importance of this, the efforts that are being made by the Computer History Museum and the need to have scholars who can make up for the shortcomings of OCR technology for older code printouts. Then professor Knuth turned to the real issue. The narrative has become about making money rather than about the science. (The magicians apprentice in me wanted to yell with excitement at this).

    The point I think Professor Knuth was making, was that rather than thinking of better ways to use computers, people are concerned only with better ways to use computers to make money. Making money is fine but he felt that what is being written about computer science is disgraceful. Students are being encouraged to write about the history of computer science from an external viewpoint rather than an internal viewpoint. Only as a business tool rather than a scientific journey of discovery or an exploration of one of the most tremendous advances in human civilisation. He praised the historians of mathematics for not selling out and urged computer historians to take their example.

    Are Agile methodologies encouraging programmers to cut corners and skip analysis phase?

    (because this is my area of expertise this section contains a lot of me - Barry :)

    Professor Knuth gave a cryptic and long answer to this. He referred to his previous comments about silver bullets. He then told us about his new book - “Selected Papers on Fun and Games”. The book starts with his first scientific paper, a spoof, later published in Mad Magazine in 1957 and ends with "An earth shaking announcement", a compiler that will do everything better. (I have not read the book yet so I am guessing this is also a spoof, making fun of over blown claims).

    He said that he used to think that his career was made up of theory and practice but in retrospect it was made up of theory, practice and fun. He said his motivation for doing things was how much pleasure they would give him. Beauty is an aspect of pleasure. (Not a philosopher! - Who does he think he is kidding?).

    He said that if he had the choice of finishing only one book, either his serious book or the fun book, he would have chosen the fun one. He mischievously suggested that he did everything the wrong way and he should have adopted techniques like Agile programming.

    I am assuming that Knuth knows more about Agile than the person asking the question that perpetuates a myth about Agile that is also, unfortunately, perpetrated by some peddlers of Agile and some entire Agile methodologies. I think he was saying that Agile over promises, much like his spoof articles.

    I agree that there is no silver bullet and if Agile or anything else under any guise takes the art or the fun out of programming, in the words of the great Groucho Marx “whatever it is, I’m against it”.

    As a technical and management coach I use Agile techniques to give developers a way to communicate the importance of their skill to their managers and stakeholders. This allows them to create space for the production of dependable code in the face of insane pressure and business hysteria. In this sense I agree absolutely that only code that is well crafted is fit for purpose.

    On one hand I have to fight against Agile methodologies being misused to create assembly lines (forgive the very geeky pun) to quick but unsustainable wins. On the other hand I have also seen the likes of Extreme Programming producing elegant, flexible, maintainable (re-editable) and beautiful code that serves the business community better than the code they would otherwise have gotten. I have seen it create a space for people to grow their craft and earn their place at the table. Anyone involved in serious software development would never suggest skipping analysis. In Agile, the analysis phase lasts until the software is decommissioned. In my first and (soon to be published) second volume of “The Trousers of Reality” I deal with a lot of this.

    In conclusion, I think Knuth is too clever to condemn or praise Agile out of hand, because, it all depends, like the typeface, on how it is being used.

    Metafont and quantum computers

    Metafont is alive and well and showcased in “The Art of Computer Programming”.

    Quantum computing is exciting but unlikely. If it comes it will change the game completely. It is worth striving for but not his cup of tea.

    Why is it the "Art" not the "Science" of computer programming?

    I smiled - Trevor would have been able to answer this for him. Knuth gave an answer worthy of the dark master himself. Science is something we know well enough to explain to a computer, art is everything else. Programming takes skill and intuition. It is an art.

    He talked about random number generators and the exponential rise in young programmers after a serious fall off about 5 years ago.

    God and Artificial Intelligence

    When asked about the subjects of God and artificial intelligence Professor Knuth expressed his delight that there were things he could still not explain. He did promise to explain the significance of the number 885205232 at the lecture's visit to Manchester.

    {I later tuned in to the Manchester Turing Lecture via IET.TV to discover that Alan Turing had suggested that all serious programmers should learn 5 bit teleprinter code. If the number 885205232 is written in base 32 it translates to "GNIRUT" in teleprinter code in lettershift mode. Turing used little endian byte order so it would have been how he would have programmed his name on the Manchester Mark 1.}

    The session came to a close with vote of thanks from the Dr Nigel Burton, the president of the IET.

    Professor Finkelstein

    Professor Finkelstein acted as facilitator throughout the talk. I met him on the way out and congratulated him on a job well done.

    The best Finkelstein quotes of the evening:

    • "How do I stop TEX giving me your aesthetics and make it give me mine?"
    • 'Clearly my career error was waking up in the morning and thinking, "It's not too long 'till breakfast"'
      On hearing about colleagues who woke up in the morning thinking about functional languages.
    • "Quantum computers? Probably."

    After the talk - What is a programmer?

    There were drinks and networking afterwards sponsored by IBM. That's how I found myself contemplating the queue for Knuth’s book. I had the idea that I would buy the one about fun and games so that I could meet Knuth face to face. I looked at the queue for the book and then the queue for the signing. I realised that I dislike the cult of the guru, even one as magnificent as Knuth.

    Instead I struck up a conversation with a charming lady who told me she had been a programmer 50 unbelieveable years ago. We chatted about her career as a programmer, an actress, a teacher and in advertising. We meandered pleasantly through medical science, crime writing, people we knew, our children and Irish weddings. All in all I imagine Professor Knuth would have enjoyed listening to this lady talking about the fun and art in her life every bit as much as we enjoyed his talk. He may even have enjoyed it as much or more than signing all those books.

    As I walked back to Charing Cross, I thought about programmers and what they are. I thought about the sort of people to whom elegance, beauty and fun is something to inspire and captivate. I thought of my old mentor, the master of the dark and mysterious art of programming, who would have come with me had he not been at work this evening. He was following his career change somewhere, finding elegance, beauty and fun in his new language, BSL, as a hearing interpretor for the deaf.

    The IET has made the talk available on demand at IET TV

    Stream for London Lecture

    Turing Lecture 2011: An evening with Don Knuth - all questions answered

    Professor Don Knuth

    This years Turing Lecture is delivered by Donald E. Knuth, Professor Emeritus of The Art of Computer Programming at Stanford University.

    2011-01-26 00:00:00.0 IT Channel

    >> go to webcast>> recommend to friend

    Stream for Manchester Lecture

    Turing Lecture 2011: Manchester - An evening with Don Knuth - all questions answered

    Professor Don Knuth

    This years Turing Lecture is delivered by Donald E. Knuth, Professor Emeritus of The Art of Computer Programming at Stanford University.

    2011-02-08 00:00:00.0 IT Channel

    >> go to webcast>> recommend to friend

    Blog Home Page