Why there will always be programmers

The latest episode of the .NET Rocks podcast is an interview with Robert Martin. In the interview, Robert Martin gives his view of why there will always be programmers. Here’s my summary/paraphrase of his argument.

Systems are full of details, and somebody has to manage those details. That’s what programmers do. Maybe some day, for example, we will draw diagrams instead of typing lines of text in order to specify computer systems. Fine, but then those diagrams will have lots of detail, and we will need professionals who can manage that complexity. Call them programmers.

Carl Franklin, one of the hosts, added that part of a programmer’s responsibility is to know what needs to happen when things go wrong, which is part of managing the details of a system.

The essential challenge of programming is managing complexity. Those who think the difficulty is primarily translating ideas into computer language syntax line-by-line haven’t written large programs. Writing small programs is challenging, and not many people can do it. But far fewer people can write large programs.

To write a big program, you just break it into lots of small programs, right? Well, that’s true a sense, in the same sense that writing a book is merely a matter of writing chapters, which is merely a matter of writing paragraphs etc. But writing books is hard because the pieces have to hang together in a coherent whole. If part of a book doesn’t quite fit with the whole, the result is aesthetically disappointing. If a part of a program doesn’t quite fit in, it’s called a crash. Paper doesn’t abort, but programs do.

(The .NET Rocks podcast posts transcripts of their shows. The transcript for Robert Martin’s interview was not up as I wrote this. Listen to the show or check back later to read the transcript.)

6 thoughts on “Why there will always be programmers

  1. Just like English is still made of sentences, words and characters, I think that programming will always be made of functions and variables. Of course, as you point out, there are higher levels of programming, and lower ones, but it will be awfully hard to get away from Mathematics (variables, functions…). Mathematics works unreasonably well.

  2. Writing programs requires understanding a language. In my mind, mathematics is a type of language and, as Daniel said, many programs require mathematics as well as knowing the computer language.

    It’s one of my cliches – knowing a programming language doesn’t make you a great programmer any more than knowing English makes you Hemingway. What programmers do is get a computer to solve a problem someone has. The more complex, larger scale the problem, the better programmer you need to be.

Leave a Reply

Your email address will not be published. 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>