Torvalds Says It's No Picnic To Become Major Linux Coder
Jack Spine writes "Linus Torvalds has given an interview to ZDNet.co.uk about the trials and tribulations of becoming a Linux kernel developer. 'Torvalds said that, while it is relatively easy for coders and organisations to contribute small patches, the contribution of large patches, developed in isolation, could lead to both new and established contributors becoming frustrated.
"It's definitely not easy to become a 'big contributor'," wrote Torvalds. "For one thing, the kernel is quite complex and big, and it inevitably simply takes time to learn all the rules — not just for the code, but for how the whole development environment works. Similarly, for a new developer, it will take time before people start recognising the name and start trusting the developer to do the right things.""
Similarly, for a new developer, it will take time before people start recognising the name and start trusting the developer to do the right things.
In other words, it's hard because I make it hard.
Who is this No Picnic fellow? I don't believe there is a new major Linux contributer.
This suites everyone that uses it pretty fine, except for the purist "it's got to be in the mainline" folks. Realists just pull it from a public cvs and apply it with minimal effort.
Although I might consider mainlining it again, for the moment the effort just is not worth it. The current model is workable for those that use it.
Engineering is the art of compromise.
Kernel development is hard! Film at 11.
I like to think of online DRM as something akin to a college -- you pay for lessons until you learn something.
And considering the widespread usage plus amount of people that rely on the Linux kernel to be stable and not explode in a horrible firestorm I can certainly understand that Linux kernel development requires a Stalinist approach.
perpetually dwelling in the -1 pits
'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
What happens if:
1. Batman is more or less responsible for a big chunk of the kernel, e.g. the scheduler.
2. Torvalds knows Batman, and knows that Batman is employed by Redhat to work on the scheduler.
3. The Joker writes a new improved scheduler which has the potential to replace the old one.
Now, how does Torvalds react? It would be hard to tell Batman that he's no longer in charge of the scheduler. Batman's job might be on the line - why would Redhat keep paying Batman if he suddenly had a lot less work to do? Maybe Torvalds met Batman a few times and had a beer with him, making it even harder to replace his work because it becomes personal. Torvalds could harm Batman's career.
Surely this makes it hard to become a big new contributor? All the existing contributors already know eachother and they won't want to dump eachother's work.
Am I right or am I right?
Qualify "luck". It seems to me that any large distributed development effort is going to require some sort of process - the anarchic development model isn't terribly successful.
With that in mind, developing the Windows kernel requires you to be employed by Microsoft etc, whereas developing for the Linux kernel just requires you to follow some established open processes.
What's the problem with that?
If that's the problem, wouldn't it be easier to work on it if it was a microkernel?
Circumcision is child abuse.
Surely you only need to know a bunch of C keywords and you should be set. Here's the bunch I know
malloc
free
<<
>>
++
--
That star thingy I see every now and again.
I might have a look at this so called complicated kernel later :)
Summation 2
It's no picnic to become a major anything. Major people are people who have differentiated themselves from minor people. The means by which they've done that is to do something that's more difficult, which the other people cannot do. This is a tautology masquerading as wisdom.
StoneCypher is Full of BS
Just walk in, sit down, and lurk. Don't write code, just read code. Analyze what patches do. Start small.
You don't have to be friends with developers, but you shouldn't be trying to make enemies. You're dealing with highly rational people here, so keep a level head. Don't bug a developer about what a piece of code does until you study it thoroughly, and don't be surprised if they'd rather tell you about what it's supposed to do instead of what it currently does.
~ C.
~ C.
Of course it's no picnic to become a major Linux coder. It takes two luncheons, a dinner date, three nonconsecutive brunches, and an order of take-out to do that!
Demanding constant attention will only lead to attention.
Actually, the parent was slightly overgenerous, because he mentioned only the case of Batman being a wholly nice guy (implied).
The bigger problem occurs when Batman is a regular human with a large ego and a dislike for NIH code (or worse, Not Invented By Me code), rather than an objective engineer fully willing to accept that another developer has come up with something better.
Although we heard about one high-profile case recently where this happened, with an outcome that was more political than based on engineering merits, in a project that receives patches from thousands of developers on every release this must be happening *A LOT*. Developers with egos are fairly common after all.
It's a sad indictment of people, and while "F/OSS can take care of itself" is a common response, it doesn't really address the fact that some good ideas are being lost or marginalized by lead developers' occasional small-mindedness, and that as a result, overall kernel progress is less good than it might be. "Stability" is a very worthwhile goal and can be a good reason for rejecting a contribution, but sometimes the same word is used to hide a very ugly personal failing of the assessor.
Although coming up to speed technically can involve a lot of work, it is at least a fairly predictable process. The larger and more mysterious challenge is figuring out how to get things done within a project's culture and bureaucracy. This entails figuring out who the powers-that-be are for different aspects of the project, what their preferences are (whether justified or capricious whim), and what kinds of submissions they will accept.
Recall, for example, the Linux CML2 fiasco. Eric Raymond is a bit on the obnoxious and arrogant side, IMO, but even without looking closely at CML2, I'm ready to believe that it was probably a worthy improvement to the Linux kernel. But nonetheless it got nixed, and apparently not for technical reasons. I'm sure he found this quite frustrating.
In my experience with Open Source projects, I notice that I often have luck getting patches that fix clearcut bugs in. Patches that fix broken design points, even exceedingly minor ones, are more problematic, perhaps because they're not seen as worth the bother, or because the PTB are simply used to the way things are, NIH syndrome, etc.
Major changes are even worse, as they present a serious challenge to the self-evaluation of the people that created the system being changed. I'm reminded of a quote: Don't worry about people stealing your ideas. If your ideas are any good, you'll have to shove them down people's throats.
"Not an actor, but he plays one on TV."
Can you explain your point of view with a car analogy, please?
Simply Photoshop yourself into a few choice picts with Linus and start blathering on about "spin locks" or some such stuff...
It must have been something you assimilated. . . .
to pick up both the knife and the fork...
So the Linux kernel is developed like every major software project that's ever existed.
How completely and utterly unremarkable.
disabling build of unneeded functionality improves stability and security.
I'd have to disagree here. It only improves stability and security if you're willing to keep up with all the endless patches and devote a lot of time towards understanding each patch (and possibly back porting it yourself). Do YOU want read every single kernel patch and decide if it's relevant to you? I don't. That job is best left to people devoted to kernel maintenance, like a team of people at (insert distribution).
AccountKiller
Perhaps Linus will change his mind about monolithic vs micro kernels. He's basically making Tannenbaum's case for him.
'scuse me, but does this have to be said? You don't come into a new project and take the lead of a critical component. Duh. Really? Usually I hand the guy of who I know nothing but some nickname the responsibility of making-or-breaking my project...
Is that some sort of consultant thing? Everyone knows that it's right, but it has no merit until His Holyness blessed it?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.