It's a reference to this:
http://en.wikipedia.org/wiki/Three_Virtues_of_a_Programmer#V...
If you feel that these usages are entirely too subversive, go yell at Larry.
It's a reference to this:
http://en.wikipedia.org/wiki/Three_Virtues_of_a_Programmer#V...
If you feel that these usages are entirely too subversive, go yell at Larry.
This is laziness: "inactivity resulting from a dislike of work."[1] Please note: it says "inactivity", not "activity". What Larry Wall is describing is just being an efficient and smart programmer. But calling it "laziness" is funnier and fits with the three-weaknesses-that-are-really-virtues joke he has going.
He did everything he was expected to do and some more, a very industrious guy. He didn't seem bothered about doing a complicated design, writing lots of code, coordinating the other developers and the testers, revising the code several times and maintaining it. He wasn't lazy at all.
On the other hand, probably Charles didn't want to do all that stuff. He just wanted to write as little code as possible with as few bugs as possible and be done with it, no maintenance at all. And that required thinking very carefully and deeply about the problem he had to solve in order to get it right and write the necessary code.
In trying to do as little work as possible and return to Space Invaders, he had to be smart and efficient. That's the lesson here, great hackers use their brains and write great code to solve their problems with the absolute minimum amount of work required. It's really about laziness.
"great hackers use their brains and write great code to solve their problems with the absolute minimum amount of work". Sorry, but I disagree. Just because, in the parable, Charles' solution ended up being the better one, that does not mean that all solutions with less code and less work are "greater" (remember, it's just a parable). Sometimes, you need extra work to make the solution more stable, more maintainable, more bug-free, etc. Great hackers recognize these situations and do the extra work and planning to come up with an elegant design when necessary.
I would never hire someone who always does the "absolute minimum amount of work", because if it's a poor solution, we'll end up doing more work later (fixing bugs, refactoring, debugging, etc.).
In the second paragraph, we have a problem of semantics. If you need to do some work in order to have a more stable, maintable and bug-free solution, it's not extra at all, just the necessary amount to avoid doing even more work in the future.
By planning carefully you are actually avoiding rewrites, bug hunting, failures and maintenance problems. In other words: future work. And I think that identifying the problem and its best solution from the start will always reduce the total amount of work in the long run. Always.
As both of us are saying, a poor solution means more work. So, someone who truly wants to do the absolute minimum amount of work required should never build a poor solution intentionally. It's not the truly lazy thing to do. They are not as lazy as us, lazy people for real, they just want to avoid work in the present ;P
If you want to work less, then get the problem right and build a wonderful solution that should not present complications in the future. I know it's not a foolproof method, it's a bit ideallistic, has many grey (and black) areas, but for me it's a great principle to follow at work.
Honestly, I've been Charles before, and no one cared because the work was done well and on time. I was still responsive to my coworkers, but there were definitely periods where people understood I was recharging my "psychic energy" or whatever they thought made the magic happen.
I've learnt that I concentrate wonderfully and solve problems while walking. I know other people see just a guy walking in an absent-minded way, but I'm working!
For me Charles and CharlesPrime are exactly the same example, they just do the same thing in different ways. If it isn't Space Invaders then it will be another thing, they both need time to think. Otherwise you are hiring code monkeys.
I believe that there is precedent for this connotation, which granted is different than the denotation. This is the best example I have on hand since I remember this book from grade school. I could imagine Larry Wall had a similar encounter with this usage of "lazy".