2018-02-23 18:58:03 +00:00
|
|
|
---
|
|
|
|
created_at: '2016-02-11T02:13:43.000Z'
|
|
|
|
title: The curse of the gifted programmer (2000)
|
|
|
|
url: http://lwn.net/2000/0824/a/esr-sharing.php3
|
|
|
|
author: nkurz
|
|
|
|
points: 381
|
|
|
|
story_text:
|
|
|
|
comment_text:
|
|
|
|
num_comments: 166
|
|
|
|
story_id:
|
|
|
|
story_title:
|
|
|
|
story_url:
|
|
|
|
parent_id:
|
|
|
|
created_at_i: 1455156823
|
|
|
|
_tags:
|
|
|
|
- story
|
|
|
|
- author_nkurz
|
|
|
|
- story_11077799
|
|
|
|
objectID: '11077799'
|
|
|
|
|
|
|
|
---
|
2018-02-23 18:19:40 +00:00
|
|
|
[Source](http://lwn.net/2000/0824/a/esr-sharing.php3 "Permalink to a/esr-sharing")
|
|
|
|
|
|
|
|
# a/esr-sharing
|
|
|
|
|
|
|
|
|
|
|
|
| ----- |
|
|
|
|
| ![\[LWN Logo\]][1] | |
|
|
|
|
| ![\[Timeline\]][2] | |
|
|
|
|
|
|
|
|
|
|
|
|
Date: Tue, 22 Aug 2000 16:00:52 -0400
|
|
|
|
From: "Eric S. Raymond" <esr@thyrsus.com>
|
|
|
|
To: Linus Torvalds <torvalds@transmeta.com>
|
|
|
|
Subject: Re: [PATCH] Re: Move of input drivers, some word needed from you
|
|
|
|
|
|
|
|
Linus Torvalds <torvalds@transmeta.com>:
|
|
|
|
>
|
|
|
|
>
|
|
|
|
> On Tue, 22 Aug 2000, Eric S. Raymond wrote:
|
|
|
|
> >
|
|
|
|
> > Linus Torvalds <torvalds@transmeta.com>:
|
|
|
|
> > > But the "common code helps" thing is WRONG. Face it. It can hurt. A lot.
|
|
|
|
> > > And people shouldn't think it is the God of CS.
|
|
|
|
> >
|
|
|
|
> > I think you're mistaken about this.
|
|
|
|
>
|
|
|
|
> I'll give you a rule of thumb, and I can back it up with historical fact.
|
|
|
|
> You can back up yours with nada.
|
|
|
|
|
|
|
|
Yes, if twenty-seven years of engineering experience with complex
|
|
|
|
software in over fourteen languages and across a dozen operating
|
|
|
|
systems at every level from kernel out to applications is nada :-).
|
|
|
|
Now you listen to grandpa for a few minutes. He may be an old fart,
|
|
|
|
but he was programming when you were in diapers and he's learned a few
|
|
|
|
tricks...
|
|
|
|
|
|
|
|
> Face it. Every once in a while, you have to start afresh. Tell people that
|
|
|
|
> "Ok, we can't share this code any more, it's getting to be a major
|
|
|
|
> disaster".
|
|
|
|
|
|
|
|
I'm not arguing that splitting a driver is always wrong -- I can
|
|
|
|
easily imagine making that call myself in your shoes, and for the
|
|
|
|
exact reasons you give. I'm arguing that the perspective from which
|
|
|
|
you approach this issue causes you to underweight the benefits of
|
|
|
|
sharing code, and to not look for ways to do it as carefully and
|
|
|
|
systematically as you ought.
|
|
|
|
|
|
|
|
When you were in college, did you ever meet bright kids who graduated
|
|
|
|
top of their class in high-school and then floundered freshman year
|
|
|
|
in college because they had never learned how to study? It's a common
|
|
|
|
trap. A friend of mine calls it "the curse of the gifted" -- a tendency
|
|
|
|
to lean on your native ability too much, because you've always been
|
|
|
|
rewarded for doing that and self-discipline would take actual work.
|
|
|
|
|
|
|
|
You are a brilliant implementor, more able than me and possibly (I say
|
|
|
|
this after consideration, and in all seriousness) the best one in the
|
|
|
|
Unix tradition since Ken Thompson himself. As a consequence, you
|
|
|
|
suffer the curse of the gifted programmer -- you lean on your ability
|
|
|
|
so much that you've never learned to value certain kinds of coding
|
|
|
|
self-discipline and design craftsmanship that lesser mortals *must*
|
|
|
|
develop in order to handle the kind of problem complexity you eat for
|
|
|
|
breakfast.
|
|
|
|
|
|
|
|
Your tendency to undervalue modularization and code-sharing is one
|
|
|
|
symptom. Another is your refusal to use systematic version-control or
|
|
|
|
release-engineering practices. To you, these things seem mostly like
|
|
|
|
overhead and a way of needlessly complicating your life. And so far,
|
|
|
|
your strategy has worked; your natural if relatively undisciplined
|
|
|
|
ability has proved more than equal to the problems you have set it.
|
|
|
|
That success predisposes you to relatively sloppy tactics like
|
|
|
|
splitting drivers before you ought to and using your inbox as a patch
|
|
|
|
queue.
|
|
|
|
|
|
|
|
But you make some of your more senior colleagues nervous. See, we've
|
|
|
|
seen the curse of the gifted before. Some of us were those kids in
|
|
|
|
college. We learned the hard way that the bill always comes due --
|
|
|
|
the scale of the problems always increases to a point where your
|
|
|
|
native talent alone doesn't cut it any more. The smarter you are, the
|
|
|
|
longer it takes to hit that crunch point -- and the harder the
|
|
|
|
adjustment when you finally do. And we can see that *you*, poor damn
|
|
|
|
genius that you are, are cruising for a serious bruising.
|
|
|
|
|
|
|
|
As Linux grows, there will come a time when your raw talent is not
|
|
|
|
enough. What happens then will depend on how much discipline about
|
|
|
|
coding and release practices and fastidiousness about clean design you
|
|
|
|
developed *before* you needed it, back when your talent was sufficient
|
|
|
|
to let you get away without. The code-sharing issue -- more
|
|
|
|
specifically, your tendency to abandon modularization and re-use
|
|
|
|
before you probably ought to -- is part of this. Andy Tanenbaum's
|
|
|
|
charge against you was not entirely without justice.
|
|
|
|
|
|
|
|
The larger problem is a chronic topic of face-to-face conversation
|
|
|
|
whenever two or more senior lkml people get together and you aren't
|
|
|
|
around. You're our chosen benevolent dictator and maybe the second
|
|
|
|
coming of Ken, and we respect you and like you, but that doesn't mean
|
|
|
|
we're willing to close our eyes. And when you react to cogent and
|
|
|
|
well-founded arguments like Rogier Wolff's as you have -- well, it
|
|
|
|
makes us more nervous.
|
|
|
|
|
|
|
|
I used to worry about what would happen if Linus got hit by a truck.
|
|
|
|
With all respect, I still worry about what will happen if the
|
|
|
|
complexity of the kernel exceeds the scope of your astonishing native
|
|
|
|
talent before you grow up.
|
|
|
|
--
|
|
|
|
<a href=""http://www.tuxedo.org/~esr/">http://www.tuxedo.org/~esr/">Eric S. Raymond</a>
|
|
|
|
|
|
|
|
"...The Bill of Rights is a literal and absolute document. The First
|
|
|
|
Amendment doesn't say you have a right to speak out unless the
|
|
|
|
government has a 'compelling interest' in censoring the Internet. The
|
|
|
|
Second Amendment doesn't say you have the right to keep and bear arms
|
|
|
|
until some madman plants a bomb. The Fourth Amendment doesn't say you
|
|
|
|
have the right to be secure from search and seizure unless some FBI
|
|
|
|
agent thinks you fit the profile of a terrorist. The government has no
|
|
|
|
right to interfere with any of these freedoms under any circumstances."
|
|
|
|
-- Harry Browne, 1996 USA presidential candidate, Libertarian Party
|
|
|
|
-
|
|
|
|
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
|
|
|
the body of a message to majordomo@vger.kernel.org
|
|
|
|
Please read the FAQ at <http://www.tux.org/lkml/>
|
|
|
|
|
|
|
|
|
|
|
|
[1]: http://lwn.net/images/lcorner.png
|
|
|
|
[2]: http://lwn.net/images/Included.png
|
|
|
|
|