Despite all the doomsday prophecies and user disgust, Windows isn’t really going anywhere. Sure, smart companies use Google Apps & Docs and/or LibreOffice unless they’re tied into legacy custom software or antiquated IT department policies but Microsoft still has most computer manufacturers firmly in their pocket. It’s really crazy when you think about it because when you look at any customization options for Dell or HP or any other commodity PC manufacturer, the amount of RAM you can install is dictated by the one of many confusing Windows OS options. If you want more than 4GB, you probably need Windows Vista 7 Ultimate Home Office Edition Deluxe.
I’ve been using a mac for a number of years and it’s been a pleasant journey for the most part. Leopard’s first release was really rocky but now that’s past. At first it was like walking into the promised land. An operating system that’s stable and looks good? What!? I didn’t even know what Linux was other than every now and then you had to fire up this mysterious old school application called the “terminal” and type cryptic commands into it. Everything you can possibly need was right there. However that was many years ago.
Now Apple is a music and phone manufacturer with a division that builds operating systems. Let’s face it, in terms of openness the order is Linux > Microsoft > Apple. Microsoft Windows will probably run on any hardware out there while OSX can only legally be run on the hardware they sell. Nobody thought that Apple could come back from the verge of death back in 1996 when Microsoft had to invest $500 million and even promise to provide mac users with a second-rate version of Internet Explorer and Office. That was probably the single most stupid decision Microsoft made in terms of strategy.
Nowadays I find that a similar feeling of disgust that drove me away from Windows is driving me to Linux, Ubuntu to be precise. I use Ubuntu at work and that means that I’m in it for most of my waking hours. I like the ability to just “apt-get install” my way to a complete environment. I can easily setup a new machine by copying over my home directory and re-installing all the packages I had on the old machine (just beware of those crazy graphics and network drivers that might wreak havoc on a non-compatible machine). Overall, I think Ubuntu visuals are more beautiful than anything on Microsoft, smooth fonts and colors that are easier on your eyes. Of course, there’s still a long way to go before Ubuntu can rival the visual beauty of OSX but to me the difference is more than made up for by the freedom and flexibility of Ubuntu.
Having said that, I still love my iPhone. I own a Nexus S, that’s supposedly at the pinnacle of Android right now and I really can’t see myself using it unless I have no choice. Because I love my iPhone so much that I still want to entertain the possibility of hacking on it. The only sane way to do it is with Apple’s Xcode. The app store is both a blessing and a curse to the industry. Apple lowered the barrier of entry for software development from business applications to games while making it possible to independent software developers to earn a decent living. The problem of open source software is not the lack of enthusiasm but the lack of money. Many open source programmers would be happy to live on less to hack on their favorite projects full-time. Unfortunately, most need a day job to pay the rent. Also, if they want to keep hacking away, they’re probably limited in choices of employment as well (although there are great companies that support open source like Google). You can’t deny that Apple really locked in a key advantage in using Objective-C for their platform. The Java Virtual Machine for all its virtues will never be on a par with ANSI C (which is what Objective-C is a thin wrapper for. This is apparent when developing programs for the iPhone because you can architect core components in C to get a performance boost in key bottlenecks. Sure, Java is great and less painful as long as you use Eclipse and Android is slowly adding native C code capabilities for development.
Developing for the iPhone is quite an empowering process until you have to submit your app and pray that you don’t get kicked in the teeth by an App store reviewer having a bad day.
However, it’s only a matter of time before these advantages wear off, at least for people like me. The package managers on OSX are nothing but cheap imitations of apt-get and none of them even come close. New kid on the block brew is all the rage right now but the recipes are little more than fancy shell scripts doing the typical “configure make install” dance, and taking just as long. Take a look at the common UNIX tools and you’ll see Apple lagging far behind. Sure tools like “ls” or “grep” aren’t likely to change much but there are many interesting cutting edge open source projects like the xapian search engine that are sorely missing. Stuff you can get for a simple command might cost you a couple hours on a Mac hunting down dependencies and tweaking build flags. When you decide to upgrade, good luck. This is even more critical for people doing web development. Unless you’re building simple, low traffic websites, it’s always better to be developing on an environment that’s close to production if not the same. Here’s where Ubuntu shines and it’s no wonder that a majority of Google engineers use their very own distribution based on Ubuntu.
It’s really sad that Apple continues to stray from their UNIX roots and the only reason why the company still exists today just to keep an iron grip on the platform in ways that make life harder for some people. Sure, the countless resources that went into the Cocoa APIs deserve to be protected, as they provide a key competitive advantage. However, sooner or later all operating systems regardless of platform are going to be commodities. I really don’t see the appeal of OSX any more aside from the fact that you can develop iPhone/Cocoa applications and the whole gamut of Adobe design software (although, those have serious issues).
I guess I’m just a bit depressed because I’m about to buy another Mac, because an upgrade is long overdue, mainly as a compromise (I can always rip out OSX or dual boot). In fact, I’ll probably buy another Dell afterwards to run a server at home and collect a copy of Windows 7 Ultimate. Buying a mac just doesn’t give me the same degree of pleasure it used to unless I pretend that the OSX is a freebie that comes with the hardware.