Uncle Bob (Robert C. Martin) – The Last Programming Language

A little while ago (mid-July 2011), Uncle Bob (Robert C. Martin) stopped by SkillsMatter in London. I never heard of him before (yes, I admit I lived in a cave for the past few years) but the subject of his presentation was of interest to me: The Last Programming Language.

I have been attracted to languages for a long time. I remember when I first came to London, a ‘must-see’ was the Rosetta Stone at the British Museum. A thing of beauty. The object that gave Jean-Francois Champollion the key to decipher Egyptian hieroglyphs. I even went as far as touching it (OK, it was probably a copy but still). I didn’t faint and that’s about it ;-). I just love ’em. Not only the ‘human’ ones but the ‘programming’ type too.

Right… Lost the focus for a moment… Back to Uncle Bob…

Uncle Bob is not what you would call a novice, his professional career spanning some 40 years. He seems to be a particularly keen Agile advocate (I’m currently in the middle of his Clean Coder book). He maintains the following blog. It’s not the first time he gave ‘The Last Programming Language’ presentation. You can see him do more or less the same at the 2010 Rails conference. You can also read another blog about the same event I am discussing here.

Uncle Bob started his presentation with a story about ‘pi’ (‘π’ for the intimates) then talked about his personal experience of the hardware platforms evolution (from PDP8 to the latest Macbook). He then moved on to development tools (IDEs) improvements. All of this was no more than an introduction to his “pièce de résistance”: Programming languages.

His view is that the programming languages evolution is in no way comparable to the hardware improvements. Compared to what they used to be, programming languages in use right now are not that different, just a number of sequences, selections and iterations. After going through a list of languages (btw, here’s an interesting link to a list of 8500+ programming languages) he asked “Have we seen them all?” Certainly not I’d say, but I think he really meant “Have we seen all the types of general purpose languages and all the paradigms?

The paradigms he mentioned are:

  • ~1957 Functional programming
  • ~1960 Modular programming
  • ~1965 Structured programming
  • ~1965 Object Oriented programming

And then he added: “No new paradigm has been invented since 1965.” He went on about Model Driven Architecture (MDA) and Graphical programming, “the one we haven’t had.” But then he seemed to contradict what he just said: “We have seen loads and loads of graphical languages over the last 40 years. Every single one of them has failed horribly.” “I don’t think the graphical thing is going to work. I don’t think we will have graphical languages.” Did we have Graphical programming, yes or no? A bit confusing. Anyway, I couldn’t agree less with him about Graphical programming. What is “Labview” if not a Graphical language (data flow oriented)? I have used it successfully for over 15 years and, as far as I am concerned, it is a successful language.

Bob suggested that, as for a number of technologies,  there might be a need for programming languages consolidation. The C language has acted as the seed for (pretty much) all the languages that followed. But is it the language of the future? No? What should be included in this language of the future then? Structured? OO? Garbage collected? VM? Polymorphic? Frameworks compatible? Fast? Symbolic? Textual? The result of his analysis is that only Clojure has all the goodies that are wanted in a language but that it is unlikely to become the Last Programming Language (albeit an important step towards that goal).

At the end of his presentation I went to talk to him about my point of view regarding graphical languages and LabView. After waiting for some time (a number of fans were queuing to have their Uncle Bob books autographed) I was finally able to ask my question. To my surprise, he agree with me straight away and didn’t seem embarrassed at all. “Weird” I thought. It seems as if being 100% accurate wasn’t the important thing in his presentation. Yes he wanted to be thought provocative. It’s all fine with me but, when you look at it, the essence of his message is similar to “Everything that can be invented has been invented” (true quote or not). I just can not agree with that. There will be something else, I don’t know what (yet) but there will be.

Maybe Uncle Bob doesn’t believe that we have seen the last Programming Language either, maybe it was just about giving us a challenge.

In any case,  and entertaining speaker.

About Patrice Carbonneau

Greetings! I am a professional engineer.
This entry was posted in Conferences, Software, Technology. Bookmark the permalink.

Leave a comment