“Simple Made Easy” and “Less is exponentially more”

September 1, 2012 at 2:58 pm
filed under Coding
Tagged , , , ,

I mentioned Rich Hickey in passing in my previous post, but I didn’t go into much detail as to what ideas or talks I found influential.

If you have to watch one talk, I suggest Simple Made Easy. It’s an hour long, but it is an hour well spent. You can listen to it via MP3 and still get 95% of the benefits; there are just one or two parts (slides) which are worth looking at.

This talk is a potent catalyst for thought. It tackles a lot of conventions that we, as programmers, take for granted. However, the arguments are compelling, and I feel compelled to write about some of it, for my own benefit if no one else’s.

If you can’t watch that — you really should, though, seriously — you could at least read Less is exponentially more. Although Rob Pike is a co-author of Go, an imperative programming language, it is extremely on point: Go’s approach to language design and programming is a rejection of complexity. If I had to name a single piece as the precipitate for my changing attitudes, it would be this piece, and Go itself.

This piece and that talk, then, are the primary context for evolving thoughts about programming. I don’t call myself an expert; programming itself is not my trade as such. I’m actually in the other part of the software engineering industry, the test industry. As you might imagine, the complexity and quality of software interests me keenly.

As Rich Hickey says in the talk, we’re all smart people. We have control over what we know and what we’re familiar with (what is “easy”). What we do not have control over, substantially, is how smart we are; we cannot become smarter by orders of magnitude.

The answer is to bring our technology closer to our actual capabilities. That means thinking carefully about complexity. And if we do not or cannot change our approach from what we do have right now, we will not get substantially different results, which is software that is difficult to understand, difficult to modify, and difficult to maintain.

%d bloggers like this: