Hi all

It dawned on my that lots of industries have standards and companies generally 
keep to them. For example slabs of aluminium have standard sizes, building 
materials have well defined specifications, or take electrical components: 
there's a huge list of standardized components. You can expect between 220 and 
240 VAC from your wall socket, fuses have standard formats and ratings, 1 meter 
here is exactly the same as 1 meter in another country, etc... Even CD's, which 
have been around for decades by now, have always been created using the same 
format (albeit extended somewhat, over time, but a normal CD pressed now should 
still play in a CD player that's 20 years old).

It allows for a very competitive market where choices are made based on price, 
quality, availability, etc...

Why doesn't the computer business have something similar? Sure processors are interchangeable in a 
limited way, we use standardized RAM, standard interfaces for accessing our peripherals, etc... But 
not when it comes to software. Why don't we have one universal API that works on every operating 
system? Yes there is libc, the language C is defined "in some way", but I'm talking about 
stuff that would make applications 100% portable. Things like enumerating all hardware devices, 
configuring a network interface, drawing a window, ejecting the CD-ROM drive, getting notified 
about new hardware plugged in, etc... It's different on every operating system. You cannot write a 
driver for Linux and expect it to work on FreeBSD. You cannot write an application for windows and 
expect it to work on Linux. When you buy a piece of hardware you usually hope for the best that 
it'll work out-of-the-box including all "extra" features.

So why is that? Why hasn't someone stepped up and even try and create a universal 
operating system API? Is it because the computer business is still a "child" in 
some way, compared to other industries?


Just a thought.


Glenn

Reply via email to