Want to know what happens if you suggest a way to fix Linux that might solve a major difficulty, but also introduce new problems? To quote Linus Torvalds: " I laugh in your face!"
Linux originator Torvalds is following his long-standing policy of attending the Australian Linux.conf.au conference but not appearing as a presenter in the formal program. However, he offered a number of comments from the floor during a presentation by LWN.net founder Jonathan Corbet on the kernel development process.
Corbet noted that regression — introducing code which helps fix some issues in the open-source OS, but is also known to cause other problems — is actively discouraged. "There is a pretty strong ethic towards not breaking things and I think that has gotten stronger over time," Corbet said.
After an audience question as to whether regression was ever justified, Torvalds was quick to respond. "We've had security bugs that we have to fix and if we have some programs that break, we'll make [that change]," he said. But that situation was uncommon, he added.
"What happens sometimes is the regression takes a long time to be found. If it takes half a ear to find a regression then at that point, it's too bad people. It's clearly too late, it's over and done with, and it's too late to regress from the regression."
Torvalds added that trying to work out the proportion of systems that might be affected by a regressive fix was a waste of time. "The number of machines does not matter. you always hear about machines that break; you never hear about machines that work. If you tell me this fixes more than it breaks, I laugh in your face."
The policy explain why Linux doesn't suffer from large service pack updates a la Windows which are supposed to solve major security problems but often render entire enterprise application suites unusable.
Torvalds also revealed why he rarely faces the situation of having his own code rejected from the kernel. Despite what you might think, it's not because of any sense of awe from the wider Linux community.
"The thing that keeps me honest is I'm really, really, really lazy. The last thing I want is extra work When I want code written, instead of writing it myself I send out pseudo-code" — an approach which leaves both coding and testing to others.
When Torvalds does write actual code, he's also remarkably laissez-faire about it. "Sometimes I write a patch but I don't want to test it myself — because testing is for wimps — so I send it to the subsystem maintainers." That can have one of two outcomes: "I never reject my own code if it gets sent back, but if it gets dropped on the floor I never notice."
Torvalds probably wouldn't get away with that behaviour even if he tried. :No free software product wants to merge poor quality code, but the kernel is more insistent and intransigent about that than any other product," Corbet noted.