Hacker News new | comments | show | ask | jobs | submit login
Lazy people innovate (ach.al)
105 points by aggarwalachal on June 29, 2012 | hide | past | web | favorite | 57 comments

Larry Wall once reputedly said: "The three attributes of a programmer are; impatience, laziness and hubris". He didn't mean that hackers sit around in front of the TV or wasting their time, that they're too impatient to sit down and take some time to do anything, or so hubristic that they can't listen to other ideas. All three of these attributes have negative connotations, but all are meant in a positive way.

Hackers are impatient as they don't want to hang around wasting time when they could be solving the "real" problem. They don't want to be jumping through pointless political hoops before they can get to real work.

They are lazy because they don't want to have to type in the same command 50 times with small variance in the command - they write a script to do it for them. This script is by far the better solution, not only saving time now, but saving time in the future and expanding the hackers experience and knowledge.

Hackers are hubristic not because they think their ideas are the best, or they can do anything. Far from it, hackers are very often very deferential to other, more senior hackers, and very often use other "good" solutions as part of their own. You need to have some sort of hubris to actually start a bit of work in the first place. Without hubris, the Linux kernel probably would never have been started.

[1] http://c2.com/cgi/wiki?UsersAreSmarterThanProgrammers

That's funny, I interpreted what he said a bit differently for "impatience" and "hubris". To me, impatience and hubris go hand in hand for a good hacker.

Impatience: Why is this code taking so long?

Hubris: I could write code that is way faster/better than this!

"I divide my officers into four groups. There are clever, diligent, stupid, and lazy officers. Usually two characteristics are combined. Some are clever and diligent -- their place is the General Staff. The next lot are stupid and lazy -- they make up 90 percent of every army and are suited to routine duties. Anyone who is both clever and lazy is qualified for the highest leadership duties, because he possesses the intellectual clarity and the composure necessary for difficult decisions. One must beware of anyone who is stupid and diligent -- he must not be entrusted with any responsibility because he will always cause only mischief." Kurt von Hammerstein-Equordn (German General)

That's an awesome quote. I couldn't agree more. lazy and clever people find ways to solve problems that most people never try because they are too clever. But at the same time these clever/lazies will spend 100's of hours trying to solve a problem that can be done 10 times in 10 hours. But once they break through they can do it in 10 seconds and laugh as they click in joy and laugh at the fool who is still doing it in 10 hours... :)

This isn't lazy so much as efficient, you are swapping manual effort for mental effort.

For example.

Go to a lazy person's house and the whole place is a mess; Go to a diligent persons house and it is very tidy, because they clean everything top to bottom. Go to an engineer's house and they have arranged everything so that it can be made reasonably clean in under 30 mins.

Oh, that's because building a robot to automate house-cleaning is still kinda hard.

This isn't lazy so much as efficient, you are swapping manual effort for mental effort.

Unfortunately, not everyone sees that distinction.

I agree. The problem is most people see unwillingness to putting physical effort as laziness, while it can as well be applied to mental effort and still be valid.

Misattributed to Bill Gates: "I will always choose a lazy person to do a difficult job, because he will find an easy way to do it". I'm not sure who that's actually from, but the idea behind it is the same. However, one has to remember that to innovate while being lazy isn't actually simple. I won't go out of my way to make something cool and innovative because, well, I'm lazy. It's only when it saves me time and I absolutely have to do it, that I'll come up with great ideas (as "S" did when faced with her favorite toy).

It's called Hlade's Law (and was recently featured on reddit).

Reminds me that crawling isn't a recognized developmental step, but directed movement is. Seemed little "S" has pretty good command of directed movement, by moving her target to herself.

Exactly. :)

> The one who invented multiplication did not want to add numbers all life

Reminds me of favorite fact from 'The Information'. The original use of logarithms was by human 'computers', literally, people paid to run the calculations to fill tables, which were then printed and sold in books. They used them to turn difficult multiplication and division problems into simpler addition and subtraction (reducing error and effort apparently). Sometimes I think math should be taught with much more historical context!

It's funny because I recently used logarithms for exactly that, just on a computer.

Basically, if you're using a naive Bayes classifier, you may have to multiply really small probabilities. Floating point numbers are not great at multiplying really small numbers. So the trick is to take the logarithm of the probabilities and add them together.

Very cool! Would not have thought of that.

My college professors did a pretty good job of giving some historical context to new ideas when they are presented, but I really wish there was a review class that gave historical context to all of the ideas from arithmetic, algebra, geometry and trigonometry.

I'd rather spend 29 minutes coding a solution to a repetitive 30-minute task, even if it required more brainwork than just going through the motions. At least I'm getting some experience out of the grunt work.

For many tasks, I would even prefer working on a solution for an hour instead of doing grunt work for half that time. Most often, I simply can't stand that kind of work, so I have no problem at all with taking some extra time to do things my way(TM).

I've found these 29 minute solutions can often be re-purposed and reused beyond the original intent, in even more innovative ways.

Yep, that goes without saying :). But even if the actual code/module never gets reused, writing something similar will take much less time in the future, even from scratch...which is good because I'm not quite yet lazy enough to abstract code as I write it...

Read the book "Thinking, fast and slow." We are genetically programmed (as are all living things) to conserve energy and make things easier for ourselves. I guess the author could more accurately replace "lazy" with "make things easier" and be more accurate. It drives everything we do as human beings, from politics (read Frederic Bastiat's works) to everyday lives (driving instead of walking to work, choosing to type rather than write a note).

It's the people who realize "this could be done more easily" that innovate. I guess lazy is just a simpler way of saying it.

Laziness definitely drives people to innovation, but being bored with what's currently being done is another indicator of an innovator. I would almost say even more so because laziness implies no wanting to do something.

...and it makes you wonder what they will do to not do something.

Lazy people plan more and in that are more likely to find the optimal solution.

They also put of things and alot of tasks negate themselfs or were redundant to start with. Manager asking for a report say. You could do it then and drop other things or you could leave it and if it is important you will get chassed up for it. If this happens alot a lazy person will write a script to do it, not tell said manager and gain from it. Others do the script, tell the manager and then get workbombed for no extra return. Lazy is in many ways another word for smart. Thing is though when you say lazy, most people think of poor hygiene, says alot about them mostly.

My physics teacher in high school used to say inventors are insane. They invest 100x the time to solve a problem then it would take to just do the work. But they are so happy when they can do it in 1/10th the time when they have their new invention.

Meanwhile everyone watches in horror as the inventor spends all that time looking for the solution thinking how insane the inventor is because they could just "do the work already".

“The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.” George Bernard Shaw

Hopefully your physics teacher also made a point similar to this: Even if it takes the inventor 10 years to automate something that takes a worker one day to do, it can benefit everyone in the long run if that task is done often and on a large scale.

If lazy people really do innovate then I am surely the god of innovation. One day I will actually make the effort to lift my hands and do something besides flip the channel with my TV remote.

Seriously though, I get what the writer is talking about though I would think it is more of a desire for efficiency. I don't want to keep writing the same code repeatedly but that isn't really laziness.

Innovation comes more from impatient people, not lazy people. There is very wide gap between impatient and the lazy. The guy who invented multiplication wasn't lazy (as mentioned in the article, or else he won't do work for invention, which is always harder than adding numbers), but he probably did it because he couldn't wait long enough for all the answers he wanted.

One of my computer scientist professors once said: "A good computer scientist solves problems. A great computer scientist creates tools that solve problems."

In a similar vein, I attribute my passion for UX and design to my stupidity; I need things to be as straight-forward/easy/friendly as possible. I can be pretty annoying to be around when a process (airports, business protocols, etc.) don't make sense or are much more difficult than they need to be, but sometimes things are so backwards you wonder how anything gets done at all.

I would read the post, but it's quite unreadable on my Chrome run on Windows. Understandably, I would most definitely find numerous ways of making the text readable for myself (copy paste to notepad, or disable CSS etc), but it's not the point. That serif font is simply terrible.

<< Used Autohotkey to automate saving porn images to disk with Google Chrome.

Programmer laziness = You are doing something that annoys you because it's slow so you take a whole day scripting and automating something that accelerates it.

Ofc, didn't take me a day to do that.

lol I have to ask, were you just using mouse-clicks, or did you have it pop open the inspector and pull the images from there? Since you're on Windows, you might want to check out the System.Net.WebClient object in Powershell.

Lazy people sit on their asses and do nothing. It is the smart people who innovate. Please do not promote the culture of laziness.

I'm totally with you on this. People are confusing laziness with efficiency and smarts.

When someone works to make work more efficient, he is still working! By definition, a lazy person is unwilling to work (and that includes work that optimizes work).

I'd hire a smart hard-working developer over a smart lazy one any day.

> I'd hire a smart hard-working developer over a smart lazy one any day.


I'm just going to leave that here...

Showing me this clearly demonstrates the confusion of semantics I`m talking about...

Charles, from the parable, is just smarter than Alan. Alan wasn't able to find the simple efficient solution and thought the problem was so complex he had to hire three more employees. He's just an idiot.

If you're showing me the article because "yea but Charles played Space Invaders, so he's lazy!". Well, an employee who would have done exactly what Charles did without playing Space invaders would have been a better person to hire...and that is my point.

>If you're showing me the article because "yea but Charles played Space Invaders, so he's lazy!". Well, an employee who would have done exactly what Charles did without playing Space invaders would have been a better person to hire...and that is my point.

Well yeah. I think you're the one missing the semantics here.

Part of the point was that Charles was working for quite a bit longer than his supervisor thinks he did. Besides the space invaders (Which was poor form, and something I would never dream of doing on an hourly wage.) he was in fact planning out the program. (See the time spent scribbling notes.) It just didn't look like it because he wasn't creating a huge fanfare surrounding the process. Alan jumped right in with some hazy OOP sketches and sort of "hacked it out by committee." as he went along.

He's lazy because he thought about the problem instead of doing the "straightforward" OOP, headache inducing four module style design favored by Alan.

>la·zy/ˈlāzē/ >Adjective:

>-Unwilling to work or use energy: "he was too lazy to cook".

>-Characterized by lack of effort or activity.

And now you're telling me he's lazy because he "thought about the problem", "worked for quite a bit longer than his supervisor thought" and "planned out the program". What do foresight and smarts have to do with being unwilling to work?

> And now you're telling me he's lazy because he "thought about the problem", "worked for quite a bit longer than his supervisor thought" and "planned out the program". What do foresight and smarts have to do with being unwilling to work?

It's a reference to this:


If you feel that these usages are entirely too subversive, go yell at Larry.

Larry Wall doesn't get to change the definition of laziness. His definition which explains a lazy person as going through "great efforts", fully "documenting what you wrote" and writing "labor-savor programs" goes against all definitions found in English dictionaries.

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.

[1] http://wordnetweb.princeton.edu/perl/webwn?s=laziness

It's a little more complex than you present it. You only get to think of Alan as inefficient because you know what Charles did in a similar situation. However, if you only knew what Alan did you'd say he was smart and efficient.

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.

"industrious" does not been intelligent. "Industrious" means hard-working. No, I would not say Alan was smart, because he ended up writing a product with half the functionality, triple the amount of bugs, quintuple the amount of code, and quadruple the amount of employees. He didn't engineer the solution to minimize costs, maintenance, and simplicity while maximizing functionality. He just jumped into writing code thinking he knew best. So, to re-iterate, he's an idiot (compared to Charles).

"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 first paragraph you just repeated what I said. Yeah, Alan is an idiot, but you can only conclude that comparing him with Charles. Otherwise he just behave as any corporate developer is expected to.

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.

Would you hire a Charles, or would you hire a CharlesPrime who does exactly the same thing as Charles minus all the time spent playing space invaders at work?

But Charles wasn't just wasting his time, he was thinking about the problem while playing games! At least that's my interpretation.

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.

Again, we'll just leave it as is, because I still think you have the definition of "lazy" wrong. A lazy person doesn't play Space Invaders to think, he plays Space Invaders to avoid working (as per the definition of "lazy").

What if playtime is essential to creativity and developing models? Aren't children encouraged to play in different ways for this very reason?

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.

"A lazy man, Dad believed, always makes the best use of his Therbligs because he is too indolent to waste motions." Cheaper By The Dozen, 1948, Frank B Gilbreth Jr. and Ernestine Gilbreth Carey

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".

After I read the first part, I felt really good about the beginner. But after the sequel, I see that this is something which does happen in real life. It is just sad.

I would definitely hire a smart hard-working developer.

But, aren't they little hard to come by?

People are lazy because they are not challenged by the things around them.

The terms lazy and hard-working are used loosely here. I definitely would hire a smart programmer that's not afraid of doing things the 'hard' way when the constraints of the project demand it, but a programmer that too easily falls into doing it the hard-way may not be considering alternatives that are more maintainable long-term, and I've seen enough people get burned out by marathons of working the hard way that some surveys of the technology and pilot projects before jumping in (or just having an experienced specialist on-board) would have saved lives and careers.

The point of this article is that some people are lazy in a different way. They aren't lazy because they aren't challenged. They just appear to be lazy because their hands aren't at the keyboard. They're actually the opposite of lazy because they are tackling the additional challenges of evaluating all of the possibilities and trying to find the most expressive and easiest maintained implementation.

Don't get me wrong, there's a time and place for a quick and dirty hack session, and sometimes you just need to hard-code the stuff to get the first version out the door, but if you have the luxury of making it right the first time, go for it. Just don't forget to counter-point, "Perfect is the enemy of good".

I'm reminded of the quote:

"If necessity is the mother of invention, then laziness must be the father"

We at www.RealEstateDealStreet.com think that it is not laziness make them innovative but time they spent on thinking make them innovative and lay man thinks that thinking as laziness.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact