Journal Articles

CVu Journal Vol 27, #5 - November 2015
Browse in : All > Journals > CVu > 275 (10)

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: Robert Martin: An Interview

Author: Martin Moene

Date: 03 November 2015 09:14:28 +00:00 or Tue, 03 November 2015 09:14:28 +00:00

Summary: Emyr Williams continues the series of interviews with people from the world of programming.

Body: 

Robert Martin (known as Uncle Bob) is a household name in computing. He’s one of the original signatories of the Agile Manifesto (www.agilemanifesto.org) and also has a video blog that can be found here (link). He’s been developing software for over forty years, and regularly speaks at international conferences. I happened to bump in to him at the ACCU conference last year, and he was kind enough to agree to be interviewed.

When did your interest in computing first start?  Was it a sudden interest, or did it grow over time?

It was very sudden.  My mother bought a plastic computer for my 12th birthday.  Digi-Comp-I.  It was a mechanical three-bit finite state machine with three flip-flops and six and gates.  The machine fascinated me.  It was the first machine I ever programmed.

I was at the ACCU conference this year in April, and you started your lightning talk with a quick discourse on water, and what made it and so on.  I am curious as to why you started your talk like that?  Is it something you’ve always done?

Twenty years ago, or so, I was teaching C++ quite frequently.  Getting people to sit down and stop talking after breaks was difficult.  So I started talking about science for 5 minutes.  I found everyone stopped talking immediately and listened.  Since then it’s become a trade-mark of mine.

What was the first computer program that you ever wrote?  Which language did you use to write it in? 

The program was called: “Mr. Patterson’s Computerized gate.”  It was an instance of a three bit finite state machine that ran on my Digi-Comp-I computer.  I was very proud of it at age 12.

Programming has come such a long way over the last few decades; programming languages and techniques have changed along with it - what would you say are the best things that have happened to programming; and conversely, what do you think are the worst?

Actually, I disagree with the premise.  Very little has happened in software over the last 40 years.  The code written today is roughly the same as the code written 40 years ago.  If statements, while loops, and assignment statements.

All the major paradigms of software, Structured, OO, and Functional, were invented between the years 1957 and 1968.  There has been very little new added since then.

Our hardware has advanced miraculously.  But our software has changed very little.  A programmer from 1970 could read and write the code of today without much help.  And if you took a modern programmer and transported him back to 1970, he’d be able to write the code without a lot of coaching. 

I follow you on Twitter; fairly recently, there was talk of Test Driven Development being dead and that there seems to be a shift towards behaviour driven development.  Would you say that TDD’s days are numbered?

I do not.  I think TDD is still a growing practice.  More and more people are adopting it, in spite of the “dead” meme.  I believe TDD will eventually become a practice as important and universal to software developers and hand washing is to surgeons.

What would you say is the best piece of advice you’ve ever been given as a programmer?

I wish I’d had someone to advise me in my earlier years.  I had to learn what not to do by myself.  If I could give advice to those who follow me, it would be: “The only way to go fast, is to go well.  Go well in small steps.”

Have you ever had a Eureka moment when you’re coding or debugging?  Could you tell us a little bit more about it?

Eureka moments are more common in the shower, or driving home from work.  There have been many, over the years.  There have been times that I was half-way home from work and had to turn around to try my “Eureka” idea. 

Did you have a mentor when you started programming?  How did they make a difference to how you wrote your computer programs?

I wish I’d had a mentor.  What I had were books.  Lots of books.  At first they were the programming language manuals like Daniel D. McCracken’s Fortran IV manual, and Kernighan and Ritchie’s “The C Programming Language”.  Later I read books by Yourdon, Constantine, Demarco, Plauger, Booch, etc.  Then, of course, came the books by Beck, Fowler, et. al. 

Based on your experience, what would you say divides the truly great programmers from the average programmers? 

Great programmers take their time, and do much with little.  Average programmers rush and do little with much.

A lot is said about elegant code today, and indeed you wrote a book on clean coding - what would you regard as the most elegant code you’ve seen? 

JUnit would be a candidate.  So would the malloc/free implementation in Kernighan and Ritchie.  But, above all those is the code in “The Structure and Interpretation of Computer Programs” by Abelson and Sussman.  That stuff blew my mind.

If you could go back in time and meet yourself when you started, what would you tell yourself?

Slow down.  Don’t rush.  Get help often. 

Finally, what advice would you give to anyone whether adult or kid, who’s looking to start computer programming?

It’s a passion.  Don’t do it unless you love it.  When I was a young programmer my friends and I would say to each other: “It’s a good thing they pay us to write code; otherwise we’d have to pay them.”  And we would have.  That’s the kind of love of the art you need.

Notes: 

More fields may be available via dynamicdata ..