The Mac OS X experience
I’ve worked under Mac OS X for more than five months now, and still have mixed feelings about it. I was ready to shout and yell at the stupid operating system which seems unable to bend over my working style; but then I realized there’s nothing constructive in this approach, and that there’s a chance that years of exposition to Windows have so crippled my mind that I am unable to recognize a superior system even when I’m working right on it in front of my eyes and fingers. However, there’s a good chance that I’m not as familiar with OS X as I would like to be, or that I still don’t get it entirely anyway. On the way back to home yesterday I read some inspired words:
By realizing you have to use the system and studying how to get the system do your work, you learn how to adapt the system to your desires. Or you can fight it steadily, as a small undeclared war, for the whole of your life.
So, I’ll just put here some thoughts and experiences, and wait for time (or someone else) to enlight me on the things I could do to learn the system better and adapt it to my desires.
First, Mac OS X seems really not to be so much different from other operating systems. You get a more polished and reasonable approach to applications installation and windowing, and even something about general shortcuts like Cmd S for saving documents, Cmd W for closing a window, Cmd , to open the Preferences panel of an application, and so on. Starting with 10.4, you also get the Dashboard, a kind of second desktop packed full of nice widgets like Calculator, Calendar, Dictionary, and lots of downloadable others, like Wikipedia. There’s also Automator, but I’ve not yet had the chance to play with it.
Then, when you try to do simple things like editing actions as putting the cursor at the end or at the beginning of a line, or you want to scroll the cursor one page down or up, Mac OS X forces you to use awkward key combinations. In fact, Home and End don’t work as in all other operating systems: to go at the end or the beginning of a line in a Mac OS X native text editing area, you have to use Cmd Left and Cmd Right respectively. If you use PgDn or PgUp to scroll the editing area, you only scroll the view, but the cursor remains in its original position.
To augment the discomfort, there’s also this feeling of second class citizenship for non native OS X applications. Let’s take the Dictionary service for example. You are reading a web page in Safari, and happen not to know the meaning of a certain term: just hover the mouse cursor on the term, press Ctrl Cmd D and voilĂ , a little widget pops up showing the dictionary entry for that particular term. You have a similar service in the Dashboard, but the chance of accessing it on the fly is much more appealing and integrates so much better with the flow of your work. But, try to do the same thing under Firefox. No chance. It still works under BBEdit; but try it under jEdit, and you’ll see no widget appearing.
Unfortunately, Safari and BBEdit are respectively so much inferior to their OS X foreign counterparts. For example, not only Safari lacks a plugin architecture similar to the one featured by Firefox, but even the plain browser lacks comfortable features like type ahead find, and an intuitive shortcut to navigate between tabs using the keyboard. Speaking of that, I discovered that under OS X I can use Cmd < to navigate between the windows of a single application; it works with anything, Firefox, the Finder, Emacs frames, you name it. But it does not work with Safari: do you know what is the effect of that shortcut? It toggles the view of the status bar. This is when I start shouting and yelling: Apple has the freedom of choosing the rules, then it breaks them in the most ridiculous fashion. It’s really a shame, like Microsoft using Ctrl S to save documents in Notepad but using an unexplicable Shift F12 to perform that very same action in Word.
BBEdit is also an inferior application with respect to jEdit, at least when it comes to editing XML. BBEdit features very few plugins, and no one is able to offer the support given by the jEdit XML plugin: automatic tag closing, popup with context sensitive tag completion, on the fly validation, use of XML catalogs. The only general purpose editor which is near to jEdit’s excellence is Emacs with nXML mode, but typing flows so much smoothly in jEdit rather than in Emacs.
So, there’s no chance I’m using Safari or BBEdit to deliver some web work or XML editing; still, to use a superior application means to be denied in the exploitation of common and useful system services. And the worse of it all is that without the added value coming from those services, using Firefox and jEdit is a nicer experience under Windows than under OS X. For example, Firefox under Windows gets more keyboard shortcuts (Backspace is used to the same effect as the Back button, but there’s no such binding under OS X) and they use modifier keys in a consistent way: indeed, under OS X you have to type Cmd T to open a new tab, but Ctrl PgUp and Ctrl PgDn to navigate between tabs.
But, apart from applications, what I’m especially interested is the workflow model a user is supposed to adopt under the operating system. It seemed to me that plain Mac OS X does not add anything to the way Windows users are supposed to manipulate files, for example. On the other hand, it seems to subtract: I have found no way to have icons automatically arranged in a Finder window, or to delete a file without having to pass through the Trashcan, or even to move some files from a file system location to another by dragging them when the default action is to copy. (That happens when I’d like to move files from the Desktop to a removable device like an USB pen, for example.) At least in the Windows world, if the only way to integrate things in a workflow is to use the drag and drop facility, this is implemented in quite a flexible way. Yes, I hear you shouting: Quicksilver! Don’t worry: I’ve installed it and I’ll talk about it in a second; but this is another evidence that plain OS X does not add any value to every day user’s workflow. To have first quality service, you need to install a third party application. Wouldn’t be the same under Windows or Linux, from the user’s point of view?
Another disappointing experience is the use of Terminal: you can’t reach the end or the beginning of the command line with a single keystroke; you can’t even navigate the line word by word; you can’t delete a line using a single key but either you have to manually delete every single character or perhaps using the mouse to select and cut the text. The application everyone seems to suggest to substitute Terminal with, namely iTerm, is no better as far as these functionalities are concerned. Why is that on Linux consoles and Windows prompts there’s some support for these basic actions? Also, the Unix experience is so much better on some Linux flavors, for example Debian based distributions which are able to update the whole set of libraries and applications installed instead of limiting itself to specific vendor applications like it happens under Windows or Mac OS X.
What puzzles me, then, is that I don’t understand how first class hackers manage to use and appreciate Mac OS X for day by day coding, which indeed involves some of the basic operations I described in this post that seems so unintuitive and hard or impossible in my experience. If there’s no difference in the workflow, and the state of applications and overall uniformity in the operating system is no better than others, why is Mac OS X seems to gaining so much popularity?

It’s shiny.
That’s not enough, you see. (”I don’t see” said the Caterpillar.)
[...] I’ve ranted about Mac OS X before, and my recent finding of how even Keynote, another Apple application, breaks the usual shortcut to change focus between windows in the same running application, just adds to the disappointment. Luckily, I use a Mac at work, so I’m not into some applications like iPhoto, and that saves me from another rant about the “industry standard” format (a simple, plain lie) they are using for their photo casting feeds, as quoted by Dave Winer quoting Engadget (but without a link). Unfortunately I have to update the operating system regularly; and when every PHP application running on my computer and in needs of talking to a MySQL database started malfunctioning after the 10.4.4 update, I began to transform my disappointment in angriness. Isn’t an update supposed not to break anything? After diagnosing the problem correctly myself, that the MySQL socket place in the file system had been changed, I found on the Internet some known workarounds. But really, isn’t an update supposed not to break anything, at least anything that simple? Or should one feel lucky because the update broke something that simple only? [...]
The Long Dark Tea-time of the Blog » The poor state of Mozilla things in Ubuntu said this on January 21, 2006 at 11:43 am |
I think it’s just user preference, the mac felt very comfy after my fires few uses, and I think it’s nice, but I mean, if u dont like it, you don’t like it. I think the cmd button is placed better than the ctrl button (but maybe that’s just because it was a dell) Codng doesn’t seem more difficult/easy on either machine, it’s just the same. Now comes the functionality and I think it’s less annoying with the install, like for instnce iChat s a ncie break from using aim and safari is leaps and bounds greater than IE. again, it’s user specific, it’s all up to you to make it awesome. OH YEAH! one more thing, AppleScripts, I love the ability of adding more folder actions and such to files and stuff, I think once you get used to it, u’ll love it.
AppleScript is indeed a plus, but I haven’t even tried to learn or use it. Besides, if you come from AIM and IE I understand that you can marvel at iChat and Safari; but my backgroud is different: ICQ first, then multi-protocol IM applications like Miranda or Kopete; definitely Firefox, which is way better than any other alternative (nice touches found in Konqueror and Opera only, amongst its competitors). So, to me, Apple’s applications are a step backward.
But to each its own, I guess. This was just a report, didn’t intend to spawn a thread on operating systems war.
Hi,
I’m pretty sure you will find most of what you think is missing with time. Personally I’m wedded to emacs keyboard shortcuts, being someone who works primarily on *nix machines as a developer. Thankfully having the primary shortcuts mapped to what my fingers expect was relatively easy. For Cocoa apps you can configure your key bindings as is outlined here:
http://developer.apple.com/documentation/Cocoa/Conceptual/InputManager/Concepts/KeyBindings.html
A blog entry about doing this, can be found here:
http://woss.name/2005/08/17/keyboard-shortcuts-in-mac-os-x/
You might also find guides like these helpful:
http://macromates.com/blog/archives/2005/07/05/key-bindings-for-switchers/
http://soiland.no/doc/osx
I’ve also done some keyboard driver hacking to get my Kinesis Essential to have the control and option keys where I like them (one per thumb).
Cheers,
Walter