Masterminds of programming

I’ve recently completed reading Masterminds of Programming, a book written by Federico Biancuzzi and Shane Warden and published by O’Reilly, which collects several interviews to some of the most influential programming language developers around the world. For the impatient, the bottom line first: it’s a very insightful book and it’s definitely worth the money, but you should read on and figure out what this book is really about.

Actually, I received this book as a present and when I unpacked it I didn’t exactly know what topics it would deal with. The back cover text (which is basically the description you find in most on-line bookstores) led me to think I would find an historical approach to programming language evolution, with internals, anecdotes and lots of code samples, but actually this book is something completely different.

First of all, although some questions are deliberately repeated in several interviews, each interview has a unique set of themes and focus points, which depend on the interviewee background and language peculiarities. Some of the developers are more focused on their own language, while others tend to analyze general aspects of computer programming and their content is enriched by their experiences in other fields. The result is a reading experience that tries to find a way in the great dilemmas of computer science. I’ve re-phrased some of those topics into a list of questions (these aren’t real questions from the authors):

  1. What are the common pitfalls of teaching programming languages?
  2. What’s the relationship between academic research and computing industry?
  3. What are the paths to consolidate know-how and experience into rational organization of resources?
  4. What is the best way to manage feature growth and code maintainance in software projects?
  5. What kind of evolution is expected in the software market?
  6. What are the pros and cons of different software development models?
  7. What are the main characteristics of a good software developer?
  8. What are the elements that compose quality in software and what are the methods to improve quality?
  9. What are the new challenges in the relationship between hardware and programming languages?
  10. What’s the best approach to software documentation?
  11. What are the perspectives of concurrent programming?

As a side note, there are a few aspects of the book that are worth mentioning:

  1. Guido van Rossum interview sounds like “we really had no idea what we were doing”. It really surprised me, since I consider Python language design one of the best among modern languages.
  2. The C family of languages has been into an intestine war for over two decades now and this book makes no exception: interviewees blatantly dig at each other and of course everyone mocks at Java :-)
  3. At first I’ve not followed the order of the chapters and I’ve jumped to the interviews that I considered more relevant to my current language skills. Now that I’ve read the whole book, I can say jumping back and forth is not a problem as interviews are not logically sorted.

All in all, I recommend this book to any developer with wide knowledge of programming languages who is interested in enlarging their horizon on software design, software project management and computing industry evolution.

This entry was posted in Coding, Reviews and tagged , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. bob
    Posted January 22, 2010 at 4:12 AM | Permalink

    intestine? or internecine?

2 Trackbacks

  1. [...] here: Masterminds of programming — geek scrap Share and [...]

  2. By What Enterprise-grade really means — geek scrap on February 17, 2010 at 12:35 PM

    [...] pitfalls. According to Brad Cox’s interview in Masterminds of Programming book (see my review): Why is computer science not a real [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>