Wednesday, August 12, 2009

Why Windows isn't Ready for the Desktop (Well Some of them Anyway) and Linux is (Well Again Some of Them)

I have read a lot of posts about why Linux is ready for the desktop, and why Windows isn't. I think they tend to miss the fact that Windows WILL always be better for some people. Yes I said it, Windows is the right choice for some people, I would go so far as to say lots of people. It is however, the wrong choice for a lot of people, and then there are people like me where it is the right choice for some machines, and some machines it just makes no sense on at all. So I'm going to detail why Windows isn't the right choice for the machines I run Linux on, and finally why Windows is the right choice for the one machine I run it on.

Windows is the Wrong Choice:

Reason 1: One Size Fits all Software

I dislike a LOT of windows software. Office being at the top of the list. Surprisingly my issue with Office has nothing to do with Office itself. It has to do with all the other mainstream office productivity options on Windows. Works is a JOKE, WordPad fails as a text editor because it's written to work like a word processor, and fails as a word processor because a complete lack of features. WordPerfect is just as bloated and monolithic as Word, and OpenOffice is close behind. The large packages aren't bad programs, they just tend to be like breaking a 1.4 in dowel rod with a planetary laser for me. I want applications that are appropriate to the scale of my task. When I was a student I needed to be able to write basic papers for class, something AbiWord can accomplish quite nicely. I don't want a bunch of other software overhead slowing me down, especially if I'm not using the features. This applies to graphics work, as well as audio editing and a variety of other tasks. Now many of the open source programs I know and love are available on windows, but they involve the windows GTK libraries, and then I get back into that overhead thing. On Linux those libraries are what's running the OS, and as they are loaded anyway program initiation is snappier, and so is execution of the program itself. I am also still locked out of most QT driven applications on Windows. I know KDE is working to fix that, but even once all of KDE is ported to Windows you will still be left with a lot of overhead because you're loading up enough libraries to run a whole desktop environment on top of windows just to run a few applications. Not my idea of efficiency. So for most of my machines I will stick with the platform that gives me a variety of quality applications for the tasks I do. While Windows might run the most popular applications, I think I will always find those applications to be too bloated for my purposes.

Reason 2: Lousy Network Support

Yes, you read me correctly. Windows has lousy network support. What I mean by this is Windows just doesn't support the protocols I want to make use of in my home network. The big one being SSH for file sharing. What do you mean Windows doesn't have SSH support you say? There is a wide variety of EXCELLENT applications to log into your secure FTP server in windows. That is technically accurate. Thing is I don't want SFTP. I want SSHFS (SSH File system. Think your SFTP setup as a mounted drive). I do not like running Samba. My authentication options are limited, and once I log in as one person to my SMB file server I can't login to another directory on that server as a different user on the same windows machine.(Before people start screaming and yelling, I am talking about Windows home. I don't feel I shoudl have to out the cash for their business offering for my home network) I like being able to give multiple users their own personal space on my server, and they know that no one else will be able to get to their files, and know that if I am logged onto my personal directory my partner isn't going to have problems logging on to their directory with their authentication without restarting our main desktop computer. It seems like a reasonble thing to be able to do. With Linux desktop clients I can have this setup and working flawlessly in . . . oh wait it works flawlessly by default. I found a program that supports SSHFS on windows. It requires .NET. When I downloaded the .NET installer I discovered it's one of thoes stupid installers that then downloads the actual program. I don't know who came up with that idea, but it makes me all sorts of sad. So this program hung repeatedly and would not install .NET. Then there was another program that it depended on, and installation was a huge pain. In linux I use apt-get and everything is taken care of for me. There is also this method which needless to say takes a touch more setup than in Linux. I want to be able to run a home network that has robust username options without any meaningful work. Again, I don't think I'm asking for much. On a final note for this one, if I port forward my SSH server through my router I can mount this drive anyway. If I'm not on my local subnet samba WILL NOT work, no matter how much I might like it to. That's kind of a HUGE reason to use SSH instead of samba, which also leaves me needing a desktop environment that will play well with SSH for mountable file sharing.

Reason 3 Easy Installation and Rapid Upgrading

While I don't necessarily like reinstalling the OS on my computer, and I know a lot of people who wouldn't even be willing to try it with Linux I like the fact that I know every 6 months significant if incremental improvements are going to be made to my desktop environment. Shove application updates aside, and I know they are a lot of distro upgrades each new version of the major distros include improvements to the underpinning of the system. Since August 24th 2001 to November 8th 2006 there were 2 service packs to Windows XP, and they were really just stability and security fixes. Patches the lot of them. There has been one service pack to XP since Vista came out. Compare that with a new Ubuntu every 6 months, and similar release cycles for many other distros. These releases add percevable improvements. While there were regression issues for a while associated with the limited testing forced by this rapid release schedule, but you always have the option of running a slightly older system and waiting for them to fix the regressions, which is certainly a better option than just not having your system updated for over 6 years, and then having it be such a dramatic update you don't know where anything is. Some computers I don't update for extended periods of time, and others I refresh every time a new version comes out, and I like knowing that is my choice.

When I look at the reasons I stay with Linux I am struck that the philosphy that keeps me away from Windows is design that inherently inhibits choice. Now I have heard lots of arguments about that being one of Windows strengths. End Users don't want a ton of choices, it confuses them. I actually agree with that principle in many ways. If you look back at what I have listed I deal with lack of protocol support that isn't MS protocol, lack of quality applications to fit different market segments, and forcing users into sudden major upgrade changes because they can't be bothered to do actual incremental UI releases. There are choices for multiple levels of applications on Windows, it's just only the top tier ones get the support necessary to create a quality application. If Windows didn't get a single new application, but many of the applications that aren't aimed at high end busienss users got more spit polish and quality attention this would be fixed, so I'm not talking about having a million configuration options and 50 desktop environments. I'm just talking about having software quality even if I don't want to drop hundreds of dollars for the full office suite. Which by the way is not because I'm a cheapskate like all open source people not willing to pay for software. I'm willing to pay for software, but if I'm only using 10% of the features I want 10% the software, and 10% the price. That model works in other industries, it should work in the software industry.

Now, with all of that said, Windows isn't all bad. Much as I prefer Linux for basic desktop and web work at the end of the day that's not all computers are used for. I will list the mighty reasons the computer attached to my television in my living room still runs Windows. WoW and Hulu. I have a computer plugged in exclusively for entertainment purposes, and sadly it has an intel graphics processor. Problems with the latest versions of latest X server have caused WoW to be a royal pain, and destroyed video performance. My attempts with various fix tutorials have failed. There is a history of various bugs with WoW on Linux, so I stick with Windows. Every now and then I drop in a Linux install and check to see if performance has improved. I suspect as these are my only remaining reasons for staying with Windows that in another version or two things will change. Till then Windows still wins the entertainment center battle.

On a final note I do have to give Windows a few props. It is a decent operating system, and when the world was Windows vs. Mac won very much on it's merits, much as the die hard Mac people might disagree Mac before the X was . . . well there is no way to be polite about my feelings there so I'll just leave it at that. Now OSX is in my humble opionion a superior system, but not as superior as the price premium you pay. Apple is ok with that. They have enough market share to make them happy, and for some companies being in the luxury business is the place to be. I say bully for them. I don't buy anything "because it's luxury", so I'm just never going to be a Mac owner. I buy on affordability and being able to easily do what I WANT TO DO. What I want to do isn't what everyone wants to do. I'm sure most end users couldn't even make sense of my reasons for caring about the network options I care about in a home environment. That's fine. I'm also sure most people don't care about the fact that they are paying for an extra gig of ram just so office doesn't feel sluggish while they write the next 1-2 page paper that's due. Those are not concerns everyone cares about, and quite honestly I don't begrudge them not caring about it. Linux is a GREAT system, and unlike so many hard core Linux geeks I don't care if eveyone uses it. All I care about is that we make it accessible enough to get enough market share that game developers start releasing for Linux, and hardware support is more ubiquitous when new hardware comes out, and maybe we don't have to worry about regressions so much because more consumer companies are supporting Linux instead of leaving the drivers to larger projects that have their own priorities (I'm not ripping on you guys, I know there's a lot in the kernel/xserver/whatever and you can't stop a release every time Intel performance slows or one particular web cam stops working.). Once we get there as far as I care Windows can have the rest.