Linus Says No to 'Specs'
auckland map writes to tell us about an interesting debate that is being featured on KernelTrap. Linus Torvalds raised a few eyebrows (and furrowed even more in confusion) by saying "A 'spec' is close to useless. I have _never_ seen a spec that was both big enough to be useful _and_ accurate. And I have seen _lots_ of total crap work that was based on specs. It's _the_ single worst way to write software, because it by definition means that the software was written to match theory, not reality."
He cited OSI model, well, but I can assure you I won't go in an airplane if it was done with Linus' practices...
Given a plane controled by Windows, and other controlled by Linux, which one will you go into?
There are specs in some places that are good, and that are read and followed.
Like he said, specs that match reality are good. They are worse than useless otherwise, they're misleading.
Even in non-dangerous domains such as Web standards, specs are necessary, and those who don't follow these specs make crap softwares/browsers!
Make a browser looking at the specs only, don't testing it with real world web pages. It will not work in the general case, because the web out there is not like the specs say they should be. You can argument that The browser will work for pages written strictly by the spec, but this will be an irrelevant browser, cause it doesn't handle the wild world wide web out there.
Between this and the stupid trademarking of the work Linux, I think Linus has gone off the deep end. Without specs, no one will know what to expect out of the system. If the system does Y, that's all well and good. But If the the specs that say the system should do X then you've got a major problem.
It is time to remvoe Linus from the project. He is seriously starting to hurt the open source community.
This embodies Linus's bullshit attitude of not standardizing on a binary compatible ABI in the Kernel. You cannot be certain that modules written for today's kernel will work in toomorrow's kernel.
Microsoft Windows now has 5 years of driver binary compatibility. Linux doesn't even have 5 days of binary compatibility - every minor kernel revision breaks binary modules, as does changing certain kernel options. You have to recompile every module for every kernel.
You ever wonder why there are few 3rd party drivers for Linux? Because a manufacturer doesn't want to release their source code, and because they don't want to provide binary modules for every permutation of every kernel revision in existance.
Now, this alone is bad, but now you consider the fact that the underlying driver architecture is coninually changing. Did you write OSS drivers five years ago? Too bad. Were your X drivers written for XFree86? Time to update them for XOrg.
Moreover, Linux has been quoted as saying that the breaking of binary compatibility between kernel releases is intentional. That's right - he wants it to be hard to write binary modules for Linux. You don't want to use the platform the way he wants you to? Too bad. Use another platform.
Well, guess what: I use a platform that supports my hardware. That happens to be Windows.