01 July 2011

Stack Exchange

A couple of days ago I mentioned Instapaper getting stepped on by the FBI for having the gall to be guilty of Inconveniencing an Officer.

A couple of weeks before that Instapaper founder Marco Arment was the guest on a very good episode of the Stack Exchange podcast. It's worth a listen.

Even better was the most recent episode, featuring Greg Wilson. Definitely listen to that one. I think they make a very good point about how difficult it is to learn to program without having read other people's programs. Also some very good discussion about programming trends (fads?), statistical measures of coding productivity, predicting bug rates, and more generally applying machine learning and other quantitative methods to software engineering practice. All very good stuff.

I wish I had time to dive in to more of the topics they covered, but I want to wrap this up before the round of experiments I'm currently running finishes. One thing I do want to weight in on briefly is the idea that programming is and will always be more of a craft than an engineering discipline.  I see why people say that (we rarely (never?) write the same program twice, we're guided to much by anecdote and habit and not enough by evidence and quantification, ...) and I agree that right now it's pretty far along the spectrum towards craft and away from the platonic ideal of engineering.

But on the other hand, we've only been creating software half a century. We've only had academic departments devoted to it for half of that. And many of those still haven't figured out whether they're applied math departments, or electrical engineers who don't like bothering with all the soldiering and other messy stuff, or whether they want to teach students how software works so the students will be good at their future jobs, or because knowledge is its own reward. We haven't been making software or training programmers very long, so let's not throw in the towel on making coding into engineering yet.

No comments:

Post a Comment