An obstacle for Linux desktops: Windows applications
Let's analyse the situation:
You wanna leave Windows for some reason:
* You wanna reduce costs for your business?
* You don't like MS's "anti-piracy" measures?
* You're just sick of the cycle of spending money on a new system when your existing one is fine?
* Maybe, just maybe, you do NOT want to be tied to Microsoft any longer?
* ("Insert your own reason")
Whatever it is, you may end up looking at Linux as a cost effective alternative. (Often its usually someone mentioning it on the web or through a friend that is technically inclined).
Assuming all goes well with the LiveCD or install, you boot up to the desktop (typically Gnome or KDE based).
The first thing that comes to your mind is: Will the apps I use (and need) in Windows, run on Linux?
Well, that's not an easy question to answer. Currently, we have three options: (I call it "pick your poison" because no one approach is perfect).
(1) Dual boot
Install Linux alongside Windows, and whenever you need Windows, you reboot into it. This is fustrating, as it feels like breaking your workflow. And things can get problematic if the boot sector gets messed up.
(2) Virtualisation (VMware, VirtualBox, Qemu, Xen, etc).
This is great! Run Windows when you need it without rebooting!...Except you can't run all the games and other apps (flawlessly) that require some sort of 3D Acceleration. (mainly DirectX). And its not quite as fast as native machine speeds. Again, you need a copy of Windows.
(3) Application Layer ie: Wine, Cedega, or CrossOver.
You don't need a copy of Windows, and you don't get a performance hit that comes with virtualisation. The problem is, its not perfect. When you try your Windows app; there's graphical glitches, loading issues, anti-piracy nonsense to deal with, and in some cases (like The Sims 1/2 or Office 2007), they just won't run, PERIOD.
So what the heck are we to do?
The only real solution is native Linux versions of the applications we need. But that's not gonna happen. Just look at this article.
Intuit slow on Quicken and Quickbooks for Linux
Look at this excuse: There would be significant challenges in porting the whole codebase over to Linux, and it would have to be worth the effort. For now, the share of Linux on the desktop is still small.
I'm sorry, how did this Intuit rep come to that conclusion? I mean think about it:
* Web statistics can be manipulated.
=> Like MS getting Godaddy.com to switch to Win2k3/IIS6.0 on "parked domains". (How many is that? 5 million votes to MS on Netcraft?)...Even a loadbalancing solution will cause Netcraft to display odd results. (They even publically admit that!)
=> Using "Modify Headers", (a Firefox extension) to trick a website in thinking you're running some other OS. (Mine says "Firefox", but it doesn't reveal the OS).
Regardless, you can make Linux large or small as you please. Just add or remove factors to make your side look good!
* Linux isn't based on the number of licenses sold.
=> So how do you accurately gauge Linux adoption as a whole? Simple, you can't! Every time someone (like IDC) pulls out some nonsense about how Windows is more adopted, I'm very skeptical at how they arrive to that conclusion and what methods they use. (aside from the fact that the study or report is often sponsored by Microsoft themselves.)
* You are too small, you aren't worth it.
Intuit took the time to port their desktop solutions to the Mac, and yet, when it comes to Linux, they pull out an excuse? How much different is Linux and OSX under there? Is it massive such that a major re-write is needed? We don't know! I guess we'll have to take their word for it.
Let's face the truth. The majority of large software corporations that develop for Windows are swallowing MS's nonsense about Linux. They assume we don't matter, so they won't bother. (This applies to both business AND game software companies).
I'm sick of it. I'm sick of being treated like some second class citizen. Its BS excuses one after another, and we all know it.
Deep down, I wanna say: Screw it! F**k'em all! Let's grab a Windows box (not connected to the web), acquire the software we mostly use, and figure out what makes it tick, how the file formats or protocols work, etc...Then write our own opensource implementation from scratch.
This is what Samba has essentially done. And guess what? Microsoft couldn't do crap about it! (as its within the bounds of the law).
Do note: when I say "figure out", I do NOT mean directly hacking the code ("reverse engineering"). That would be breaking the law, depending on where you live. Either way, it'll get you into legal strife, given the number of lawyers these corporations can throw at you. (Usually by the dozen after they've sent you a number of "cease and desist" notices).
What is done (based on what I hear of Samba and the Nouveau driver projects), is that they figured things out through observation.
An analogy: You go on a holiday to another country. You have absolutely no idea of the local language. So what do you do?
(1) Observe the locals.
See/hear what they ask and what result they get.
(2) Try it yourself.
You may not get what you want the first time around. So you go back to step (1) and look for more clues.
(3) Keep repeating...Until you get it right.
Eventually, based on this approach, you'll get it right.
The problem with this approach is that, its time consuming. (maybe a few years of patience and persistance). Its something a lot of people don't want to do, given the nature of our impatient "instant satisfaction" society. (At least the Western ones).
The thing to note about re-implementing an idea under the opensource model, is that we should NOT blindly copy GUIs of the existing solution. We should look at what's good and what's bad. There is always a better (more intuitive) way to do something. Apple's OSX has proven that you don't have to emulate Windows to create a user friendly solution. (looks also play a big role).
As well, our implementations should be lean on system resources. uTorrent (on Windows) has proven that, in this age of dual/quad-core with 2GB+ RAM systems, nothing beats a small, well coded application that does the job well. Bloat and resource hungry are bad. No user wants to wait. Just because systems are more beefier than they were a few years back doesn't mean we should be careless in writing apps!
So what's the other choice?
See what's already out there right now, and see if we can use that, or if we have some coding skills, improve it.
* Does the existing solution allow me to share files with others, but without compatibility issues?
* Do they offer the same feature set as commercial solutions?
Take for example, accounting software.
* Which one has the best GUI? Can we do it better?
* Which one is the most used? Feature set?
* What formats are out there that need to be supported?
ie: MS Money (OFC), Quicken/MYOB (QIF), Comma Separated Values (CSV), Open Financial Exchange (OFX), etc.
I guess what I'm saying is that we shouldn't put up with our current situation. We need to band together, organise, and start some opensource projects (or join existing ones) with some clear goals.
But remember, when critiquing someone else's application, don't do it like a troll. Offer good constructive view with examples backing your point. Acting like a teenager is gonna bring a negative response!
If no one listens to you, that's OK. Its not the end of the world. Take the code of the existing solution and either change things yourself OR work with someone who shares the same view as you. (There's a few million coders out there, I'm sure there's atleast one person who agrees with you and would like to help!)
We simply can't rely on large corporations. They only think of money and how to make more of it regardless of how they treat people. They really don't care, as money matters more.
I say forget them! Let's take the initiative and do it our way. If we start growing, eating into their marketshare and thus, their profits? Tough! Maybe they'll listen next time! (I doubt it...Money is the substance that corrupts most of humanity).