This isn’t quite fair - but there is a large grain of sanity in your point of view. I’ve actually delved into writing a Linux device driver. It is NOT for the faint of heart. It is a non-trivial task.
It would be NICE if companies didn’t use proprietary drivers. There are MANY applications where there isn’t a good reason to make the driver proprietary. If the specs of your hardware are already public - which is many times the case, then making the device driver proprietary doesn’t make sense. If you say hardware is never exposed this way - not so. Even the original PC had the entire register set (and roms) published.
However - there can be both competitive and legal reasons why you keep something proprietary. The easiest LEGAL reason to explain is one for a WiFi interface. These have radios in them. Radios that are programmable are a scary thing to groups like FCC. There are legal restrictions on how much power the radio can put out, and this varies with jurisdiction. So a proprietary driver is mandatory from the companies point of view (and the government!)
Certainly - if you have a newfangled piece of hardware that you want to keep secret, yet you want to sell it, then publishing a proprietary driver only makes sense.
Now it comes down to how many different drivers are you going to build, i.e. what OS’s are you going to support? This is the REAL problem for the company.
Ignore the Open Source Zealots - they don’t live in the real world on this topic (I’m an nomrally one of them..one of them...)
You wouldn’t believe the systems I have sped up by disabling the startup of “Driver Helper” apps that get loaded on startup. Most of the crap that gets installed During driver isntall besides the driver just sits there and consumes system resources.
All those “Driver Helper” apps do nothing to add any needed functionality and a lot of them are sloppily coded and do nothing but slow down systems to the point that clueless consumers end up buying new computers when their old ones “start running slow”
http://en.wikipedia.org/wiki/MSConfig
msconfig is your friend!
Removing all the extra driverware crap can really help a system run a lot faster.