No First-Class Package Manager
Software installation on Mac OS X hurt. (Remember, I don't use Windows. I don't care how much better this is when compared to Windows. I compare it to a Linux distribution with a decent package manager or a *BSD system or....) Who has time to hear about a cool new application, search for its homepage, find the correct package, download it, double-click on some file on the desktop, drag the app bundle out of the disk image, then store it in some other directory somewhere?
I'm not afraid of the command line. I'm perfectly capable of typing
sudo apt-cache search ... if
sudo apt-get install ... doesn't work the first time.
Again, Fink did its best, but for the types of software and applications I wanted to install (very little proprietary software), it was just too much work going through all of the monkey steps necessary just to run a program.
Sure, dragging an app bundle to a directory is easy, but getting that app bundle to reach the point where you can drag it is monkey work.
Don't even bring up the issue of uninstalling software. Again, dragging the app bundle to the trash is easy only after you have found the bundle, found all of the related files stored elsewhere, and made sure that you have removed the dependencies appropriately.
Lack of Diagnostic Tools
Because I've used Linux since 1996 or 1997, I've spent a lot of time working around and diagnosing bugs in software. I don't write a lot of C code, but I know how to wrangle
strace, and a few other diagnostic utilities.
Perhaps it was my unfamiliarity with Mac OS X or Darwin, but I couldn't figure out how to use these or similar tools when I encountered problems.
For example, I had a problem for a while with Mail.app behaving exceedingly slowly, displaying only the spinning wait cursor and not staying put on its one specific virtual desktop. I couldn't find any helpful help online and didn't get any useful error messages when running the program from the command line (if that even worked -- I don't remember).
Under Linux, it's easy to
strace kmail 2>> kmail.trace and read the log to see what's going on.
At least, I never figured out how to make this work on Mac OS X. It wasn't a big issue most of the time, but it was frustrating when it happened. Perhaps it was my infamiliarity with the platform rather than any particular lack of tools or documentation. Still, it feels much easier to find debugging and diagnostic information for Linux.
Lack of Freedom
After rejecting the fourth or fifth iTunes update in a row, I realized that the updates had come so frequently because Apple wanted to prevent people from sharing their music.
I don't download copyrighted MP3s and I used iTunes perhaps twice, but I realized that Apple could push a big binary blob of updates to an application and, if I accepted them, I would have no easy way of seeing what the updates were nor of refusing specific ones if I wanted.
I never use the source code to most of the software I use, but I do use some of it occasionally. I missed that freedom. I hated reporting a bug in Mail.app to a big black hole and never knowing if anyone ever even read the bug report. (I don't remember what it was, but I do remember that it persisted until I switched.)
Ultimately, this was the biggest reason I switched back to Linux. To use Mac OS X effectively, I would have to adapt to the system. The system would not adapt to my way of working. We were incompatible -- and, at least in my world, the human wins in this case.
There were a few other persistent annoyances, such as the case-insensitive default file system. Why? (If you use UFS instead of HFS+, just try getting support from Apple or installing proprietary software, or....)
Why did the classic Unix utilities not work with resource forks?
Why did I have to install the complete developer tools set just to get
gcc and the development headers and even complete documentation for Perl and Ruby?
How in the world does the linker work?
I don't expect any operating system to be perfect and I do expect to do some customization. However, the assumptions Apple made about how I should work are very different from how I do work. I understand that my preferences and predilections are fairly unique to Apple's core audience and that Apple wants to optimize their system for people who don't use a windowing system primarily to present three Vim sessions and a
bash prompt simultaneously.
However, that means that their system isn't for me.