There may be times when you’re convinced that the solution you need doesn’t exist as a whole. The total solutions that exist might be too confining or expensive, or–as is sometimes the showstopper for me–simply closed. Open source Unix, in which category I place Linux, BSD, and Darwin (the OS layer of Apple’s OS X), is a 500,000-piece bag of Legos that comes with some drawings and a few models you can use, build on, or tap into as references for your own creations…
[W]hile developers can write to an operating system’s default API, they’ll spend most of their time encapsulating and abstracting low-level system calls to create what is, in effect, an application platform. No one is so foolish as to make what can be acquired cheaply or free; it’s wiser to pick one from among hundreds of platforms and modules that fill in the holes between open source Unix and your applications.
In contrast, Windows fills in all the blocks between the hardware and your apps. It does it in ways that you can’t alter, but which you can use in different ways. You can code with the tools of your choice and in the programming language of your choice, and unless you stray too far from the rule book, everything you create will interoperate with everything others write for Windows.
An operating system is a rack into which device drivers and APIs are inserted. A platform is a rack into which applications are inserted.
While the title of the piece is pretty stupid (“Linux Can’t Kill Windows”–as if anyone outside the hardcore zealots expect Linux vs. Windows to have a binary outcome), Yager does make some very good points. Linux in itself isn’t a particularly good platform–it’s more of a collection of independently developed technologies.
That being said, is there anything to prevent someone from taking best-of-breed open source technologies and assembling them together into a platform? Absolutely not. Indeed, this is, by and large, what a Linux distribution does. An operating system doesn’t have to be closed and unchangeable to make a good platform–all we really need to do is agree on a set of common interfaces to guarantee interoperability. The best of all worlds.
The real question isn’t: Can Linux be a good platform? It’s: Will Linux-the-platform be an open standard, reflecting the openness and vendor-neutrality of the underlying software components, or will it be a proprietary product, owned and controlled by a single vendor? Time will tell. There are things we can do to promote the former outcome.
I would argue that Linux *can* kill Windows, but that doesn’t mean it can kill Microsoft. Microsoft isn’t stupid; if Linux beats Windows, they’ll start making proprietary products for Linux.