When I Was A Kid We Had To Carry Our Punchcards Through Snowdrifts 10 Feet Tall To Get To Route 128 To Run Our Prog

When I was a kid, we had to carry our punch-cards through snowdrifts 10 feet tall to get to Route 128 to run our programs...

Joel Spolsky, one the best commentators on programming, has two related articles which lay out the premise that computer programming today is harder than it was 10 and 20 years ago. His argument is that there are many "leaky abstractions" in which a library presents a programming metaphor that is all well-and-good for 98% of your work, but to know that 2% remaining is harder than ever before. This is a valid point, but irrelevant to the fact that programming, like basketball or golf, is exactly as difficult today as it was 10 or 20 years ago and will be exactly as difficult in another 10 or 20 years. Programming, like throwing a ball into a basket on a pole or hitting a ball into a small hole, is beyond the human capacity for perfection. This is not to say that an entry-level NBA player wouldn't devastate in a nineteenth century game of pick-up or that Tiger Woods would break a sweat winning a round in 15th century Scotland. Is the best golf player in the world expected to drive further and putt straighter than 10 or 20 years ago? Is a professional basketball player expected to be taller, stronger, more accurate, and more versed in tactics than 10 or 20 years ago? Is a programmer expected to write code that is more flexible, more maintainable, and more capable than 10 or 20 years ago? Yes, yes, and yes.

But the difficulty of being the best you can be is a constant and individual thing. You will not reach the end of the road or the top of the mountain with programming. There will always be more. That is why programming is worthy of trading 40 (or 50 or 60) hours per week. Programming is impossible. That's why it's fun.