I have been doing lots of Win32 programming, and I agree with you, that there is lots of documentation for it, it's just faulty. Other, similar API's may also be faulty. There is always a problem when you want to make documentation precise enough.
Linux addresses this in two ways: 1) The source code is the ultimate documentation. It's always correct :-) 2) If the source code doesn't follow specifications, the source code is changed.
Microsoft doesn't deliver source-code, and when then ship an OS with errors, the next versions of the OS will compensate for that error, if they can. It's fun to read the samba documentation on Linux, because it describes several errors made by Microsoft in their file sharing software, and specifies which versions of Windows the errors are in, and how Samba compesates for the problems.
In the good old days, this would be called a "market standard". Microsoft made the most Windows compatible version of Windows, so that's what people were buying.
Today, the IT industry becomes more and more like the telecommunications industry. Standards have to be written seperately from software, and interoperability between software vendors is a must. Linux does this well, because any deviation from the written standard is corrected quickly, whereas Microsoft still only sends out service packs once in a while, and only checks standards conformance themselves. |