I am a Linux fan and I use that all the time, but there are some things that really, (REALLY) have to be changed before most companies will even start to take it serious. Do you want to see that cool application ported to Linux? Or that software your uncle just bought at Best Buy? Here’s why it is not supported on Linux:
1-There is no binary compatibility between distributions (or even between versions of the same distribution)
That’s so annoying and probably THE reason why most companies don’t write software for Linux. If I get an executable that I compiled on my Windows XP, it will run on Windows 2000, Vista, 2003 and maybe on Windows 98. People complain about Microsoft and all the stuff they do wrong, but they are good at backwards compatibility. Linux should do the same!
Why, God, why the binary I just compiled on Ubuntu 7.10 won’t work on my 9.04? Why won’t it work on Red Hat?
I know there are technical issues, like dynamic libraries, GCC version, etc, but that is a solvable problem. It shouldn’t have to be that way anymore. My own company won’t even bother wasting time migrating our code to Linux because of that. Within the same distribution, the code should be backwards compatible, and the Red Hat, Ubuntu, SuSe guys need to talk to each other to get in sync! We, as the community have to demand that they do so. Let the competition to the side a bit and get that sorted out. It is just going to be better for everyone in the long run.
*crap, even a binary I compile on Solaris 9, works well on Solaris 7 and 8…
2-Installation nightmare!
I know, I know.. apt-get is awesome, yum is pretty good! synaptic allows you to install “anything” you want. Users don’t have to worry about dependency…
However, there is no universal way to install an application. Companies used to build Windows software have one installer and that’s it. Can you imagine having to do one RPM, one DEB, one .tar.gz, etc? Each one with different binaries because the SuSe RPM doesn’t work at Red Hat? I am not talking about the complications that the end-user faces with that, but the issue that software developers have with it.
If the Linux community want companies to start developing and migrating their software to Linux, we need an universal installer. Yes, Fedora can still use yum, same for Debian and apt-get. But they all need to support a single installation method. Which one? I don’t care, but they have to talk to each other and decide.
3- Not enough user base and complacent users
Linux users should stop using Wine. Should stop dual booting to Windows to use a software that is not supported on Linux. We have to complain to the companies and let them know that they are losing a client and money because of that.
4- VI is still installed by default everywhere!
That’s a crime! Who will waste time with Linux if it still comes with “vi” by default? Emacs is so much better that it is not even funny.
Ok, I am joking… I love vi