Monday, February 2, 2009

Why Linux programs should be multiplatform

Often in the Linux community there is an outrage when another awesome Linux application gets ported to Windows. The general argument is that the program should not step as low as to support such a crappy OS. It is also frequently argued that by offering the application on the Windows platform it gives users one less reason to switch to Linux and hurts the open source movement. I have always been uncomfortable with such arguments, but have never really knew why I disliked that argument beyond the fact it screams of blind fan-boyism. Yesterday when discussing open source with a non technology person it came to me. The answer is so obvious I'm surprised it wasn't obvious to me the first time I heard that argument.

The glaring problem is in the very nature of the purpose of open source and open standards. The ethos of openness is interoperability. The fight against lock-in such as IBM had in the 80s before open networking standards where developed and deployed.

In the 80s almost all corporate networks where setup with IBM mainframes and terminals. IBM hardware only spoke to other IBM hardware. Because IBM dominated the market, if you wanted your hardware to be able to communicate with anything else it had to be IBM. Competition was essentially shut out and the price of networking was through the roof.

When open networking standards where developed and deployed competition flourished and both the price and quality of networking bent to the consumers favor, but not IBMs. This is precisely what open standards are about. Any company can build hardware and software than can interact with everything else out there and competition and customer demand bring about a healthy market.

So back to Linux. Linux desktops exists for the soul purpose of interoperability. Everything about the software stack, from the underlying kernel, to the programs the user interacts with is built to prevent lock in. A user, or a manufacturer, has the full ability to remove, replace or modify the whole entire software stack. Linux is also written to support as much hardware as possible including x86, PPC, and ARM platforms, meaning you can run it almost anywhere. So the idea that we would want to hold the great open source products in Linux as a Linux-only option stands in direct violation of the whole purpose of open source. This is no different than when William Worthy visited Cuba and had a great deal of trouble returning back to his homeland. The idea was that the USA was so free you weren't allowed to visit non-free countries. By definition it flies in the face of freedom.