REVIEW - Masterminds of Programming - Conversations with the Creators of Major Programming Languages


Title:

Masterminds of Programming

Conversations with the Creators of Major Programming Languages

Author:

Federico Biancuzzi, Shane Warden

Publisher:

O'Reilly Media (2009)

Pages:

496

Reviewer:

Ian Bruntlett

Reviewed:

September 2024

Rating:

★★★★★


Verdict: Highly Recommended.

This book, subtitled Conversations with the Creators of Major Programming Languages, is an ideal book to read over a long period of time. Each chapter covers a different language so I was able to read a bit, put the book down, and resume later on.

Seventeen languages are covered: C++ (Stroustrup), Python (von Rossum), APL (Falkoff), Forth (Moore), BASIC (Kurtz), AWK (Aho, Weinberger, Kernighan), Lua (de Figueiredo, Lerusalimschy), Haskell (Peyton Jones, Hudak, Wadler, Hughes), ML (Milner), SQL (Chamberlin), Objective-C (Cox, Love), Java (Gosling), C# (Hejlsberg). UML (Jacobson, Rumbaugh, Booch), Perl (Wall), Postscript (Geschke, Warnock), Eiffel (Meyer) and the foreword was written by Sir Tony Hoare. Unfortunately, the C Programming Language (designed by Dennis M Ritchie) was not covered. Each language, on average, is dealt with in nearly 26 pages, giving the interviewer a chance to get to grips with the subject. At the end of the book, 15 pages are spent listing biographical information on the Interviewees.

I liked all of the interviews in this book but would have liked to have seen Jan Jones being interviewed – she created the Sinclair QL’s SuperBASIC which also acted as the systems job control language (especially with SuperToolkit II installed). My favourite interviews were for AWK, C++, and UML. AWK because it is the first Unix scripting language I encountered, C++ because of its flexibility, and UML for standardising diagrams. The AWK interview tackled three interesting characters – (Aho, Weinberg, and Kernighan). The C++ interview was with Bjarne Stroustrup. Given that C++ is a joint effort, a whole book could have been written about contributions to C++.

I’ll dig a bit deeper into the AWK interviews. Of all the topics of Al Aho’s answers, I particularly liked his comments on the topic ‘Unix and its Culture’.

He was asked:

...At which point do you decide it’s the right approach to create a language to solve a specific problem instead of a program in another language?

To which he replied:

Virtually every area of human endeavour has its own jargon… It’s not unnatural for people to say “Let’s create a language around these notations for solving problems arising in a given area”.

Brian Kernighan’s answer to “What hooked you on programming?” was interesting, documenting how he got into programming at project MAC at MIT (a groundbreaking research project [1]).

Peter Weinberger, the final part of the AWK triumvirate, was asked “What are your suggestions to become a better programmer?”, answering “...it is important to learn new techniques and algorithms”.

The UML interviews were particularly interesting to me as it interviewed another trio: Grady Booch (OOD), Ivar Jacobson (OOSE), and James Rumbaugh (OOA). I’ve attempted the difficult task of finding favourite questions answered by all of the Three Amigos.

To paraphrase Ivar Jacobson’s response to “What would you change in the future? What might change in UML?” he replied that the language is too complex, and that he would love to restructure UML as a set of domain-specific languages (DSLs).

On being asked “What does a language need to be usable by multiple teams of developers?”, James Rumbaugh replied that he felt that lots of academic languages make the same mistake: they solve the interesting mathematical issues, but overlook the pragmatic issues of how a language will be used in context because the pragmatic issues aren’t theoretically interesting. He said that it’s these small things that determine the usability of a language.

Grady Booch, when asked “How can we transmit experience in the software field?” said that in the Middle Ages, guilds served as a primary mechanism for the transmission of tribal memory… He also said that a considerable amount of experience is transmitted by the Web (consider Slashdot, for example), books, blogs, and technical meetings.

I’d like to point out that the paraphrased responses are no substitute for reading the book. They were added to this review to try to evoke the flavour of the book.

Published in 2009, this is not a new book but it still makes for interesting reading. I learnt more about software development projects – in particular programming language development projects and it gave good background information on these projects as well. You don’t need to know the languages involved and it is well worth reading.

Reference

[1] ‘MIT Computer Science and Artificial Intelligence Laboratory’, Wikipedia, available at https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory

Website: https://www.oreilly.com/library/view/masterminds-of-programming/9780596801670/






Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.