|home||[ writing ]||bicycle repair||travel||software|
This page was last updated 13 January 2016.
In early 2005, Apple was announcing the Mac mini computer. It was the answer to what I was looking for in a computer, so I bought one. This is a report about the early months with my new Mac, and how it compares to a Linux computer. (I have never owned a Windows computer.) In short, I am now both a Mac and a Linux user - Apple gets GUI simplicity, usability, and coherency right, and Linux everything else.
When switching operating systems, there is a strong tendency to whine about all the things missing in the new OS, or that are done differently and require a change of habits. The advantages become obvious only after some time. I'll do my best to take that into account and present a balanced review. There are a few fundamental problems that I cannot ignore though. But keep in mind that this is an OS geek speaking here, not a normal user who cares about office tasks or "productivity software".
No doubt, the Mac mini is the most sexy box I have ever owned. For some reason, perhaps cost, a PC is invariably a boring big brick where all the designers' creativity goes into coming up with yet another front plastic bezel, usually on the far end of the ugliness scale. It truly amazes me how PC designers have managed to produce one design disaster after another for thirty years straight, while Apple just gets it right every time.
But that's not the reason I bought a Mac mini. The reason why I refuse to buy another PC is that today's PCs are built for stone-deaf speed nuts who think it's normal that a CPU must generate more heat per surface area than a stove, and require something that sounds like a jet engine to cool it lest it disappears in a rapidly expanding plasma cloud. I was looking for an unobtrusive and quiet machine that I can put on my desk without going deaf or getting sunburned. And I don't care about gigahertz ratings when I do desktop work. I get all the horsepower I need for 3D rendering at work.
Normally my computers live in a separate room. I have plenty of cables under the floor to drive monitors and keyboards remotely. But you can't extend a DVI monitor cable, at least not for a sane price. Since I wanted a 23 inch Cinema display with 1920x1200 resolution, I was limited to a box that can live on my desk.
The G4 Mac mini hardware is pretty low-end:
I also bought an external 250 GB Firewire LaCie disk, which took care of the disk space limitations. With Firewire it doesn't matter whether the disk is in the computer box or not, it's big and fast. It shuts down when not in use. The slow processor is no problem for me because, as I said, I just don't do CPU-intensive jobs with it. (I also have a Core 2 Duo Linux PC for number crunching.) The weak graphics board cannot show some visual effects, but after a while I turned most of those off anyway.
The one real investment I made was a Firewire camera; Apple's iSight. At first it seemed absurdly expensive at 150 Euros. But this thing is not only beautifully designed, it also comes with features not found on those cheap USB cams, such as a real autofocus and a directional microphone. Video chats are a joy with this thing. Unfortunately few people have or use one so it's now rarely used.
I got the Apple keyboard, which has a poor layout but is usable, but I did not buy the Apple mouse. It had only one button. I know why Apple likes one-button mice, but imho they got it wrong. More about that below. I use a 10-button Logitech MX1000 with a scroll wheel in protest. To Apple's credit, it works exactly as it should. It's totally ugly though.
Apple has a reputation of getting their GUI right, while everyone else is stumbling around without a clue or goal. Windows, for example, is a giant pile of rotting icing on a very crummy cake. And for the most part this is correct. MacOS X's GUI is a pleasure to use; most things are incredibly simple, consistent across all applications, and work just as one is expecting them to work. You never fight it, it just flows naturally. And, perhaps most importantly, it is not laden with tons of features that some programmer found cool, but that just get in the way.
Clearly, somebody at Apple thought very carefully what users expect from the system, how one goes about using a computer, and how to present the functionality with a minimum of fuss. The only other system I have used with that kind of brilliant human factors design is SGI's Irix/4Dwm, but SGI hasn't moved a finger for ten years, then went chapter 11, then cancelled Irix - I still like Irix, which is a testimony to its excellent design, but it feels unbearably dated now.
However, despite all the things that Apple got right, there are a number of really annoying faults.
On Linux, I am using KDE because I feel it's more advanced and complete than Gnome, and because I can cross-develop Qtopia applications with it. KDE is not as pretty, not as consistent, probably not designed by HI professionals, but it is a lot more modern than the Mac GUI.
Ok, enough whining. As I said earlier, MacOS X also has plenty of nice features that others do not have, like dock icon previews, file coloring, video conferencing, DVD burner integration, the Dashboard with useful little GUI applications called widgets that are always available at the touch of a button, perfectly integrated speech generation, and countless others. And let's not forget the absolutely brilliant Spotlight search facility. It works so well and so fast that I don't even bother with icons very much anymore because it's so convenient. I did have to disable Spotlight for my external Firewire drive because it would try to spin it up all the time after an idle period, and that does take a long time. (Spotlight has a design bug that prevents it from cooperating with Thunderbird; its smallest identifiable unit is a file so a mailbox can't be searched.)
MacOS X puts a menu bar at the top of the screen that shows the options of the currently selected window. I originally thought that this is a totally daft idea because the menu is so far removed from the window that it controls. Also, what if you are working with multiple windows? But as I said, MacOS deals poorly with that anyway. I no longer have a problem with the screen title line. I still don't think it's a good idea but it works and doesn't get in the way. In fact my screen is so wide that I have many small apps putting icons into it that are always in view, such as a Weatherdock showing forecasts, CPU, disk, and network usage info, the Desktop Manager, and other little helpers. This makes it quite useful.
No discussion about the Mac GUI can avoid the issue of the Mac mouse. It looks cool, but it had only has a single button, or in fact none at all because the entire top plastic shell is the button. They argue that beginners often get the mouse buttons wrong, so having only one eliminates a source of user errors. For a company trying to make computing as simple as possible, that's a valid argument. To their credit, any third-party multibutton mouse works right out of the box with a Mac, including the scroll wheel. (Update: Apple turned around and now sells the ``mighty mouse'' which has a scroll ball and four buttons, although button function was sacrificed to design a little too much - can't right-click without lifting my finger off the surface of the left button. Next on my wishlist: fix the single-button notebook touchpads.)
But for everyone else it's totally annoying because you do need the functionality that other GUIs reach with the middle and right mouse buttons. Apple asks you to hold the control key next top the space bar when you press the mouse button to do the things normally on the right mouse button. In what way is that easier than two or three mouse buttons? In fact MacOS is filled to the gills with arcane keyboard shortcuts that require holding down one or two modifiers (apple, alt, ctrl, and shift). The most common are apple and alt-apple. The same combination tends to work across all apps, which is excellent, but it's really hard to remember which modifier keys a function needs. Example: hold shift-apple while pressing 4, release all three, then press the space bar to take a snapshot of a window element. (Ok, that is one of the more complex ones; afaik it's not documented anywhere except in the "Missing Manual" book.)
MacOS X ships with a number of applications, most of which come on the separate iLife DVD that comes with the Mac mini. Overall they are quite impressive - not because they have zillions of options that nobody uses anyway, but because they have very few features but for the most part exactly the ones that you need. Again, someone has thought hard about what the program is expected to do and how the user interacts with it, rather than letting the programmers stick any random idea into the menus.
I haven't used Apple's office tools, and I use Firefox instead of Apple's Safari. I also don't write programs for MacOS because I don't want to write in a quasi-proprietary language (Objective C, see below) for a proprietary API, so I can't comment on Xcode.
As a Linux user, I am used to getting software for free. With my Mac, I learned about shareware. That's software designed to work poorly or not at all, or just for a short time, until you pay money. No thanks, especially since most of the stuff ought to have been part of the system in the first place. I did buy a few programs like Quicktime Pro (and I am angry at Apple for making me do this) and some other minor stuff, but I think I'll have a Linux console next to my Apple for a very long time.
[In 2008, Apple announced that their next major MacOS X version, codenamed Snow Leopard, will focus on operating system performance issues. You'll find several issues that are troubling me in this section, but it appears that Apple is addressing them now, and when Snow Leopard is out this will all be obsolete.]
As happy as I am with the MacOS GUI, I am disappointed with the underlying operating system. It's based on FreeBSD, a powerful and well-respected Unix variant, what can be wrong with that? It's not a leading-edge OS, sure, but it is tightly controlled by a professional team. I understand why Apple chose it; I am sure they felt it's more manageable than Linux with its countless features and developments. I am sure they also liked the license... To someone who knows Linux, Apple's FreeBSD is a little quaint. It doesn't even have a /proc filesystem, many utilities like ps or ifconfig evoke happy memories of the early 90's, network services are sparse (no rsh and no rdist, for example) and there just isn't a lot of tools included. But it's perfectly adequate for Apple's purpose, and very stable.
So why am I disappointed? Because Apple botched the job. They totally crippled MacOS X with proprietary additions. In particular, they tore out some of the lower layers and replaced them with a Mach-like microkernel. Microkernels were all the rage fifteen years ago, but the idea totally crashed and burned because performance and resource usage was pitiful. All implementations failed, and today it's deeply buried and forgotten.
Except, apparently, by some gray beards at Apple who had been crash-landing the NeXT operating system. NeXT was Steve Job's new startup after he left Apple, later bought back by Apple. Apparently they did not learn from their mistakes and crippled MacOS X with it too. And that's not the only error they repeated: much of the MacOS APIs are in a language called Objective C, an early object oriented language. In many ways it's cleaner than C++, even though it's just some object-oriented features grafted on C with very peculiar syntax, but it's now a failed language that nobody uses. Except the gray beards at Apple. The upshot is that Apple is now stuck with a defacto proprietary language, much like Microsoft is trying to foist C-hash (C#) on us. The fact that Objective C is GPLed and there are alternate C++ bindings don't change the fact that Apple is making it as difficult as possible to write MacOS software. After all, the runtime environment and libraries, without which the language would be limited to hello worlds, is totally closed source. Fire the gray beards!
Why do I use the word "cripple"? For example, kernel parallelism on MacOS X is a disaster. The G4 Mac mini is already underpowered. The effect is that when you do a harmless but long-running system operation such as accessing a disk, like copying a file or downloading one over the net, the entire system freezes and all you get is a spinning beach ball cursor. That beach ball is the nemesis of Mac mini users. It means that the Finder, which controls all windows on the desktop, no longer responds to user interactions. Other programs don't fare much better. I hear that dual-CPU PowerMacs and Intel minis don't suffer as much from this as a G4 Mac mini, but plain un-crippled FreeBSD doesn't suffer from this design bug at all. The beach ball problem got less serious when I upgraded to one gigabyte of RAM. [But they still exist with even two gigabytes.]
Speaking of wedging the Finder: the worst thing you can do to it is accessing a network (NFS) server that doesn't respond. The Finder will freeze for very long periods of time. And not just the window that tries to access the NFS folder, but all of them and the entire desktop too! Spinning beach ball time again. Another example: when inserting a CD or DVD, you get to look at spinning beach balls. I have come to loathe spinning beach balls. Version 10.4.7 [or 10.5] is no less broken than any previous 10.4, it seems they are incapable of fixing this. But instead a new bug is introduced: the automounter now only responds to finder accesses, and it randomly loses even static mounts. The implementation is so bad that I must conclude that MacOS X does not support NFS.
And it doesn't stop there. FreeBSD comes with a perfectly functional set of configuration files in /etc that anyone who knows Unix or Linux is instantly familiar with. They all exist on MacOS X too. And they are all ignored! Apple has decided to write a weird and proprietary configuration system called Netinfo, which is used by the OS instead of the standard files. It's less powerful than the system it replaces because everything got forced into a key=value system. Completely undocumented of course, the simplest jobs take forever to figure out. Apparently Apple saw Microsoft's idiotic Registry blunder and felt that they must make a similar and equivalent idiotic blunder. You guessed it, Netinfo originated at NeXT; those geriatric gray beards at work again. Can't they simply stop fiercely embracing any bad idea that ever crossed their path, decades after they were proven to be bad ideas? A miracle that they didn't implement drive letters and punch cards. Punch cards, at least, were once useful.
As a Linux user, I had to deal with a change of culture. With Linux, I control what happens on my computer. On a Mac, Apple is in control. Linux is completely open - if you don't like something, change it. For example, the Apple DVD player software has this totally annoying misfeature of user prohibitions, which prohibit me from skipping or fast-forwarding over advertising and stupid FBI warnings. I have to sit through all that garbage if I want to see the movie.
With Linux, I can look at the sources and fix this. Since I am not the only one likely to be annoyed by this, I can just go download a patch that someone else already wrote. Or in fact - and of course this is how Linux really works - no software writer would have put such an idiotic misfeature into the code in the first place. No such luck with MacOS X. I could give many other examples where Apple got something wrong, and rather than looking on the web for a quick fix, I am permanently stuck with it. Apple has this open-source fig leaf going but they are careful to never release anything that might be actually useful.
This is not about Apple's mistakes. (I know why they felt they must implement user prohibitions.) It's about culture. Linux is open in all directions, everything is possible, you'll find recipes for just about anything on the web, including some to shoot yourself in the foot. MacOS X, on the other hand, has all the maintenance access panels nailed shut. If Apple made a mistake or doesn't feel like letting you look under the hood, tough luck.
Sometimes, rarely, you find some freeware or shareware on the net that can help. Usually those are more like band-aids because their authors can't look under the hood either, so they do their best to find acceptable workarounds but they can't get to the root of the problem. The Desktop Manager, for example, as nice as it is, can't make MacOS put windows and popups on the right desktop, that would require Apple's help and Apple missed the boat. (I now use Virtue.) And despite all their ingenious GUI design work, Apple misses the boat quite regularly. End of story.
I also have serious problems with Apple's proprietary graphics engine. They should have used X11. Before you scream, let me explain: Of course I am not talking about exposing arcane APIs like Xlib or Xt, or going anywhere near obsolete junk like Athena or Motif. I am talking about interoperability on a network, based on open standards. The system should not care on which computer a program runs and on which display the windows show. The network is a shared resource on which programs and data should move freely, in the sense of Sun's old battle cry "the network is the computer". And X11 including OpenGL and other more modern developments is the only open standard that can ensure that.
Apple, and Microsoft, don't understand that. They think that each workstation is an island, connected by tenuous bridges intended for the sole purpose of pushing data around. You are supposed to start all your programs on the workstation in front of you. At most you can use data on other workstations, using an awkward "Connect to server" dialog that is like a flashback to the early days of mainframe networking. Why on earth should I know or care where my data lives or where my programs run? Such things were important in the Microsoft DOS days, and I am extremely disappointed with Apple that they do not understand networking. At all.
Note that I am not talking about clunky remote controls like VNC or Apple's limping X server that piggybacks on their proprietary GUI, and breaks all GUI paradigms including trivial stuff like cut-and-paste. Apparently it's intended for little more than starting xterms (an archaeological curiosity from the earliest days of bitmapped displays). Unix and Linux prove that you can build a modern GUI on top of X11, including 3D effects and hardware acceleration, and gain complete network transparency without compromising the user experience.
Addendum - just upgraded to iTunes 6.0.2. It got an extra advertisement bar at the bottom. Extremely annoying, and I was planning to figure out how to kill it later.
Then I learn that with this thing enabled, the iTunes player will report every title you are playing to Apple! I checked out the traffic with tcpdump, but you don't have to do that - just observe how the ad bar downloads and displays ads related to your current title.
Real and Microsoft got bashed when they were found to call home and surreptitiously tell the mother ship about everything you do. I say surreptitiously because there was no notice allowing me to enable that ``feature'', explaining what's going on. No, it turned itself on by default. You can turn it off, with the odd box-and-triangle button, but how many people will realize what is happening?
Now I understand that in the USA, where Apple lives, no such thing as data security and privacy exists. Your privacy ends where someone sees a way to make money. Over here in Europe, this is probably illegal, I hope the EU is taking Apple to court for this.
Until now, I have sort of assumed that I'll replace the Mac mini with a bigger Mac after a couple of years. Those x86 Macs look interesting. But now that Apple has violated my trust, I expect that this will be the end of Apple at this site. Until then, I'll have to put the Mac into a draconian subnet jail I suppose. Much of the traffic goes over port 80 as one would expect, so I'll start with an IP blacklist consisting of every address I can find that belongs to Apple. Or do all my web surfing with Linux - Firefox is Firefox and I get the better window manager.
Apple filled an important gap in the Unix/Linux world, by providing an extremely well-designed GUI that makes it a pleasure to use. It is built on top of an operating system that is a close relative to Linux. The underpinnings of the GUI have a disappointing number of serious defects, but they are apparent only to Linux users who are already used to more advanced technology - a Windows user likely wouldn't notice since Microsoft is generally several steps behind Apple here. (Those guys are only now starting to realize that drive letters might not have been such a hot idea after all.)
As far as the general user experience and graphical user interfaces are concerned, overall I put MacOS first, Linux/KDE second, Windows third. For networking and operating systems, it's Linux first, Apple second, Windows third. Since Apple appears to follow Microsoft's mindset closely, I don't see Apple's OS ever catching up to Linux.
With this background, I don't see Apple making big inroads into the server market, but they have everything that is needed to win the desktop, something Linux has not been able to do because it only recently achieved a coherent GUI with the KDE desktop. If Apple would reconsider its view of networking, MacOS and Linux could happily coexist.
Myself, I use the Mac as a GUI, and Linux for everything else. I am writing this with a Linux vim editor, in a MacOS terminal window, and I'll use Linux script to secure-copy the file over to my provider's Linux web server. I can live with that, and I encourage people to give Apple a try!
Here is a friendly report about switching from Linux to an Apple iBook. If you found this article interesting but too heavy on operating system arcana, this is a must read! Find out all about the "iTaliban" and dead donkeys. Brilliant.
If you like OS switching reports, take a look at this one about switching from Linux to Windows, including a Windows installation from scratch. Pops a lot of balloons. Found on Slashdot. No mention of MacOS.
In November 2005, this page was featured in osnews.com, rootprompt.org, 123macmini.com, linuxlinks.com, macrumors.com, newsforge.com, macfixit.com, tailrank.com, applelinks.com, lowendmac.com, osxcode.com, macbytes.com, linux.com, tuxmachines.org, and many others. I didn't know they were all exchanging threads. This got me some 50,000 post-cache hits on this page in three days (more than my whole site usually gets in a month) and tons of mails. I am happy to report that all of it was friendly, and many were agreeing with my observations or pointing out mistakes, and I got many hints and information that I am adding to this page. Apart from a few isolated flames in the forums, the Apple crowd seems very mature and knowledgeable. I dread to think what would have happened if I had written about switching to Windows, perish the thought! Thanks for the support, people.
Two years later I wrote another report on my life with a Mac mini.
|home||[ writing ]||bicycle repair||travel||software|