Apple had this one coming. I have been using Mac OS X at work for about 5 months now and having Linux as my primary operating system at home I thought transition to a Mac would have been more smooth. After all, isn't Mac OS X, Unix based? Turns out I had to experience a few frustrations, the last one after upgrading to Snow Leopard. MySQL was broken after the upgrade as was all the software I had installed from MacPorts.
I'm now reinstalling all those software and it's not something I like doing. I never experienced any of this while upgrading my Ubuntu to 9.10 a few months ago. It was a smooth transition, everything continued working like it should. Having such a huge (and profitable I might add) company such as Apple behind it, I would have expected the upgrade process to be better.
Joel Spolsky and Jeff Atwood were talking about programming languages in one of their StackOverflow podcasts and they said that one is not really knowledgeable about a programming language unless he can elaborate upon it's weaknesses. I like that approach, and I present my own thoughts about Mac OS X.
- Mac OS X does not have an official repository of programs. Of course there's Fink and MacPorts but they do have their weaknesses. Apple really should provide a central repository of programs that can be installed easily. Ubuntu and Debian make a great example of this, it shouldn't be hard for Apple.
- The keyboard and peripherals are not standard. You can have various keyboards for various models and I don't like it because it forces a learning curve each time. There are keyboards without number pads (like the one I'm using), keyboards without Page Up, Page Down, or Delete buttons etc. It is all the more mess when the keyboard you have is not a US one. If you have local characters in the keyboard then good luck trying to get the shortcuts working.
- Proprietary programs that do not work as expected. OK this one is a general problem of the Unix vs. Linux world but still I'm gonna rant about it. Linux is widely used as servers and if you are developing on a Mac you want to be able to create a similar environment (with web servers, continuous integration stuff, MySQL, Java JDK etc.) But this is not easy because Apple provides its own system tools and programs are not installed where they normally would be. Look at the MySQL website and you start to wonder where Apple put this executable and where it put the other instead of what the official website tells it to. It really doesn't help that Apple lags behind many programs like Java also.
One implication of the above is that some programs do not work fully when you are on a Mac. Take vim for example. Sure you have MacVim but it still has problems with my vim configuration working on Linux. The colors don't work because Mac's terminal is so primitive. Many plugins have to be disabled because the Mac does things differently. I don't want to manage two different set of configurations for vim, that's a hassle.
- Mac's are not easily customizable. I want to be able to fine-tune some of the features but there does not seem to be a way to do it. Take the program switching shortcut for example, which is Cmd Tab. Windows and Linux change the application based on its window, but on a Mac it is done based on the application. Say you have 5 terminal windows open, you can only move through one of them. I don't like that. You can use your mouse or keyboard to have every window rearranged and highlighted but that's not what I want. The trouble is you can't customize it easily.
- Some basic programs are lacking to say the least. The first one that comes to my mind is the Finder. You can't even write the location you want to go to it! You can't copy the location you are at! I use terminal often and I want that ability. And it is so basic. Even MS Windows has it :-) People see this as lacking and there are commercial alternatives to Finder. But why should I be paying for such a basic app? The OS should have provided one for me anyway.
Rant mode OFF.
All these deficiencies notwithstanding I think I'll continue using my Mac at work so that I can see where Apple is going. With the iPod and the iPhone they have become an important player in the tech world and the design is simply an eye candy to look at. I wonder if there are nice designed products (laptops and desktops also) that are not from Apple, but inspiring nonetheless.