How MacOS X sucks
I bought a PowerBook G4 in late 2002, mainly because I liked
the packaging of the hardware. I probably would have bought a
ThinkPad instead, but they wouldn't sell me one without some version
of Windows and I wasn't willing to give any money to Microsoft.
By buying a PowerBook, I was hoping to get was a well-built
laptop with a well-integrated and well-supported UNIX system, one
with the ability to run a few commercial shrinkwrapped apps that
aren't easily supported on open source platforms. Bascially, this
hasn't worked as well as I'd hoped.
This is a list of brain-damage that I've run into with MacOS X.
Note that this list is heavily biased towards the way I use computers;
I'm not trying to collect a list of everything that sucks about
MacOS X, only the things that I've found that suck. And I'm not
even trying to collect all of the things that I've found that suck,
but from now on whenever I find something new that sucks I'm going
to try to put a comment about it here.
And finally, I'm not trying to compare MacOS X with any version
of Windows - Windows sucks so badly and in so many ways that I've
eradicated it from all of my systems. So rather than collecting
more experience on how Windows sucks, I'm trying to erase it from
my memory. (Though my vague impression is that MacOS suffers partially
from trying to be too much like Windows.)
Backups
There's no good way to do backups across the net. You can't dump a
live filesystem in MacOS X - it says "device busy". You can use GNU tar
but this has other problems.
iTunes
- Apparently the iTunes player can't play tunes from any random filename.
It seems to need to copy them into its own directory first, or at least
it needs to build its own pointers to other files that you import.
For some reason it doesn't want to import all of my mp3 files.
- Originally it didn't understand m3u playlists, but it seems to be
able to import them now. And if the file doesn't have id3 tags it will
use the title from the playlist as the title. But it tends to truncate
such titles. Unfortunately, if a title appears in an m3u playlist,
iTunes will take that as the title in preference to what it already
knows, which messes up searching and sorting if the title that appears
in the m3u playlist includes the artist or track number or other
information.
- Under certain conditions if you import mp3 files it will assign
the title of the file from the filename, rather than from the id3 tags
that are in the file. It does this even if the file it is importing
is already in its database (say, because you imported every song in
a directory tree where some of those songs had already been imported)
Often the filename is not a good representation of the title - it may
contain extra information like the artist and the album, it may be
spelled incorrectly because of limitations in what characters can appear
in a filename. To make things even worse, iTunes truncates titles
derived in this way so even if the filename was the song title, you
lose if the song title is a long one.
- It won't let you specify tunes by filename; it wants to use its notion
of the title for everything, even though those are often bogus.
- It incorporates everything it plays into your 'library' - even if it's
just some random audio clip from a web page that you'll never want to hear
again, and even if the file is stored on some temporary directory or
removable medium.
- The idea behind this player seems to be that it will manage all of
your music. Never mind that you might want to use other tools with
your music files, or you might want to share your music files with other
systems that don't organize their files the same way. Apple thinks they
know what is best for everyone, and that everyone should do things their
way.
Mail.app
- The mail client keeps popping up a window (raising over other windows and
arrgh moving keyboard focus) complaining that it can't save
a message.
Pop-up windows should only pop up when the app already has keyboard focus
and a window on top, and they should only pop up within that window. If the
app doesn't have those it should signal in some subtle way (like an
exclamation point in the icon in the dock, not by having the icon
jump up and down like an impatient child) and pop up the window only after
a window is raised and focus is given back to them.
- The mail client keeps popping up window (raising other other windows and
arrgh moving keyboard focus) complaining that it can't send a
message - that and it keeps trying to get you to pick a different SMTP server
for submission.
- There's no way to delete an SMTP submission server from the list of those
known to the mail client, so it keeps trying to use submission servers that
are no longer valid.
- Various misleading messages from mail client complaining that the
SMTP submission server doesn't support a protocol feature (like SSL)
when the real problem is a network outage.
- The mail client is too slow over a slow link. It keeps trying
to open multiple connections even when it can't get any work done on one
slow connection. It tries to do too many things at once under such
conditions. Tiger's mail client is even worse than previous versions.
- The mail client will occasionally forget about the thousands
of messages in an IMAP folder and re-read every single one of them, taking
hours to do so if the link is slow. (still true as of Tiger)
- The junk mail recognition is worse than useless - if you trust it
it will delete perfectly valid mail. Even after many months of trying
to train it.
- The mail client won't move messages to the IMAP Trash folder even
if you configure it to do so - any deleted messages simply disappear.
(still true as of Tiger)
- The mail client keeps trying to attach names to addresses when you
compose new mail, based on the names seen in received messages. It
does this even when the name is redundant e.g.
moore@example.com
or when it is meaningless e.g.
Random List
There doesn't seem to be any way to get it to stop doing this other than
to add the address to the address book. It's a Bad Idea to borrow
name-address bindings from other messages - there are too many MUAs
that put stupid things there.
- There doesn't seem to be any way to set up an alias that expands
to multiple recipients - either in Mail.app or the address book.
(still true in Tiger's Mail.app)
- It won't let you drag-and-drop an event from iCal into a message
being composed. (still true in Tiger's Mail.app)
- It doesn't show you the MIME types of attachments, only the filenames.
(still true in Tiger's Mail.app)
- The Tiger version of Mail.app is hideously slow at incorporating mail,
probably because it keeps trying to maintain an index so you can quickly
search for text in messages. It can take several minutes to incorporate
a few new messages over a fast link.
Networking
- The 802.11 card in my PowerBook G4 has such poor antenna placement
that it often fails to work in areas where other laptops work fine.
I'd be happy to work around that problem by using a PCMCIA
802.11 card, but MacOS X doesn't support any of the cards I have.
- It's way too easy to enable 802.11 peer mode without understanding
what you are doing and how disruptive this can be. When you do this
it will use whatever ssid you had specified that you were looking for.
- In a network with poor reception and/or a lot of contention,
the 802.11 driver will happily rebind to a peer network with the
same ssid, even if that's not what you want, and there's no way to
keep it from doing that.
- In Jaguar, IPv6 worked, but wasn't supported in any of the GUIs or
in the apps. You had to install your own apps. Panther is much better -
the GUI even supports 6to4
but it's sort of hidden.
- In Jaguar, the 'Internet' panel in System Preferences has a lot more to
do with Apple proprietary crap (such as .Mac and iDisk) than Internet (Email
and Web). On Panther they've renamed this to Network, which is a bit better.
Printing
- The user interface to the print spooler is lousy. In particular,
if for some reason the job fails to print (at least to an lpd queue,
which is all I ever use), you don't see any indication as to what is
wrong other than "Jobs Stopped.".
- The spooler won't let you print to an IPv6 address.
- There doesn't seem to be any way to use the same printer names with
the mac lpr client as you would use on any other machine - you have
to use the unwieldy names that CUPS arbitrarily assigns.
- Panther broke printing to remote lpr printers. Apparently the new
version of CUPS doesn't used reserved ports (as required by the lpr protocol)
by default. The fix is to manually edit /etc/cups/printers.conf and
add ?reserve=yes to the end of ever lpr printer DeviceURI.
But you have to be careful about when you do this - if the tool that
edits printer descriptions is open then it will overwrite your changes.
For now the best advice I have is to reboot and immediately edit and
save the file before doing any printing or changing any printer descriptions
via the GUI.
Bonjour
- Bonjour (formerly named Rendezvous) is a really naive idea. Actually
it's three really naive ideas - linklocal addressing for IPv4, multicast DNS,
and service discovery using multicast DNS. Each of these seems like a
good idea if you don't think too hard about it or actually try to use it
in the real world. Apple has done a really lousy job at understanding how
to make them work well - they seem too preoccupied with their own desire to
create magic to realize when what they've created is actually a big mess.
- One of the many annoying things about Bonjour is that it wants to
keep broadcasting your computer's name over the local network, presumably
as an invitation to attackers. (at least, this was true of Rendezvous)
- There's no documented way to turn Bonjour off.
- The machine keeps wanting to call itself something.local
if your local network doesn't give it a name using DHCP. There doesn't
seem to be any way to turn this off either. Even using the DHCP assigned
name is broken. Your machine should be able to maintain the same identity
no matter where it's plugged into the network.
Update: I'm told that if you put HOSTNAME=some-name
in /etc/hostconfig then the system will always use that name.
Safari
-
Since Panther, Safari tries to deal with ftp URLs by mounting an FTP
file system and popping up a finder window for the mounted file system.
This is less functional than using the browser, and the system can get
wedged if the FTP server doesn't respond promptly.
-
Safari automatically extracts files from archives, mounts disk images,
etc. whether you want this or not. There are times you really want
to download an archive file without extracting it. Maybe you just need
one or two files from the archive; maybe you need to copy the archive
to a different system; maybe you don't trust the archive to not
have absolute path names that will scribble over important files.
Setup
-
The first thing the machine does after you get it (or after you upgrade
the OS) is to try to get you to type in your personal information, so
that it can leak this information to Apple. It doesn't give you an
obvious way to decline this.
Software Update
- Every time you update the operating system it turns automatic Software
Update, even though you turned it off for a good reason.
- There's no way to tell whether a Software Update will break something.
For instance, Software Update wiped out a version of sshd that supported
IPv6. There was no way to know whether it would do that because
Software Update doesn't supply enough details about which files it is
updating.
Support
- Support? Apple's idea of support is to put up a web page full of
links that tell you how great their products are. If you go to the
trouble to fill out a form telling them what problems you're having,
they tell you after you've filled out that form that they
won't bother responding to you personally and that your efforts to
explain a technical problem to them were wasted. Apparently they're
not interested in hearing about technical problems.
User interface
- Having to click on a window to select it just sucks. Yes,
I know Windows works that way. Windows sucks too.
- What's worse, clicking doesn't select a window, it selects
an application. If you move the mouse to another window of the
same application, you don't have to click. So to avoid making
unnecessary clicks (and perhaps doing something you didn't want
to do) you have to be aware of whether you're switching
to a window of a different application or a different window of the
same application. This is stupid.
- Being able to run programs and manipulate files via either a
shell command-line interface or a point-and-drool interface is valuable -
there are times you want to use one and times you want to use the
other. Unfortunately, on MacOS X the two worlds don't work
well together. The idea seems to have been that users will spend
all of their time in the point-and-drool world, and the underlying
file system is just a way to implement that. This really robs the
machine of a lot of power, because there are lots of things you'd
like to do for which point-and-drool is just too tedious.
- For instance, the Preview app has a nice PDF viewer, but the
Preview app isn't intended to be run from a command line. There's
not an obvious way to do this. (It turns out if you type
open filename.pdf this will launch whatever
app is set up to read .pdf files, but they don't go to any trouble
to let you know about this - they assume you'll want to use the
GUI most of the time).
- Unfortunately the view of the file system you see through the
file dialog doesn't correspond to the one you get from UNIX.
So using shell commands you can store files in directories that
you can't access from point-and-drool apps.
I was told that if you edit the file /.hidden
you can fix this problem. Well, it doesn't fix the problem.
It is however the case that if you hit Command-Shift-G in a file
dialog box it will popup another dialog box into which can type in
any file name or directory. That's nice, but why not make everything
have a consistent view of the file system? Or at least, have a
checkbox in the file open dialog that enables "show hidden files"?
- If you try to save a file through a file dialog box, you
can't save it in a directory that begins with a '.', even if
you type in the directory name explicitly. More generally,
you can't save a file in any directory that the file browser doesn't
see, regardless of the reason.
Keith Moore
Last modified: 25 November 2005
[other opinions]