November 30th, 2006 • 2:47 pm
Arno Gourdol is an engineering manager at Adobe, but used to work at Apple, and was involved in the development of Mac OS X. He chimes in on his blog with his own perspective on the issue mentioned yesterday, i.e. the discussion about Windows Vista’s Shut Down menu/button.
Interestingly, Arno Gourdol indicates that, if it had been up to him, there would be even fewer options in Mac OS X’s Apple menu. But it really seems to me that he is guilty of the opposite of what the Windows engineers are guilty of, i.e. oversimplification.
For example, he argues that we don’t really need a “Restart” command, that the very few times we actually need to restart our machines, we can just shut them down and then start them up again. And he also says that, really, there is no need for a “Shut Down” command either. We should just use the same Power button we used to turn the machine on.
Here, Arno Gourdol forgets a very simple fact: The Power button is not always readily accessible. On a number of iMac models, it’s inconveniently located somewhere in the back and you usually have to feel your way blindly in order to find it. And in my home office environment, for example, my Mac Pro tower is located under a table, and I have to get up from my office chair and bend over to reach its Power button.
I am all for adding a little bit of physical activity to my daily work routine, but it should be my decision when and where I want to do some stretching and bending!
Having “Restart” and “Shut Down” commands readily accessible from within the Mac OS X environment is not only convenient, it is also consistent with the fact that the hardware process of shutting down the machine is not separate from the software process of quitting all applications and logging out. After all, pressing on the Power button on the Mac itself doesn’t actually shut down the machine. It simply triggers a software process that includes quitting all applications, logging out, and then shutting down the machine for good. (In fact, it even displays a dialog asking you to confirm first, and to choose between Sleep, Restart, and Shut Down.)
So it makes sense that the commands for this should be part of the software environment, and not just accessible physically on the hardware itself. It’s the same problem with ejecting removable media. You don’t actually want to eject a piece of removable media right when some software process is in the middle of reading it or writing something on it. That’s why the “Eject” command is part of the software environment, and not a button on the removable media drive that physically ejects the removable media regardless of what the OS is currently doing with it. (This used to be a major problem on Windows PCs, of course, because you could eject a floppy disk while the drive was reading or writing on it. There was a “warning” light on floppy disk drives to indicate activity and to try and prevent you from ejecting the disk while it was on. But of course it didn’t actually prevent you from ejecting the disk, and there was a very real risk of disk damage or file corruption because of this. Thankfully from the very beginning the Mac OS handled removable media ejection through the software environment—although the visual metaphor of putting the media in the Trash remains a debatable choice, even with the change of visual appearance of the Trash icon in Mac OS X.)
There is also one other issue that Arno Gourdol doesn’t discuss and that I find particularly significant, especially in an environment where security and privacy are important. That issue is the fact that “logging in/out” is a phrase that actually describes two very different actions: There is the logging in/out process where you actually close your entire user environment by quitting all your applications and removing yourself from the list of users currently using the machine, and then there is the logging in/out process where you simply make your currently running user environment inaccessible to other people by requiring your password to log back in.
As far as I am concerned, the two processes are too often confused, and because of that they are misunderstood and misused.
For example, in Mac OS X, when you are in your user environment, you can actually do two forms of “logging out”:
- You can select the “Log Out…” command in the Apple menu, which effectively quits all your applications and closes your user environment entirely.
- Or you can go to the users menu on the right-hand side of the menu bar (provided that fast user switching is enabled) and select “Login Window…” This command exits your current user environment, but without closing it, i.e. without shutting down any applications or closing any windows. This is effectively the same as switching to another user environment, except that instead of switching to that other user environment, you just switch to the Login Window—i.e. all you do is exit your current environment, without entering another one.
In my experience, Mac users are not familiar with these two different flavours of “logging out” and do not realize that they can make their user environment secure without closing it. And it’s no wonder that they don’t realize this. Apple itself uses the same terms for the two processes, in a way that is utterly confusing for non-geeks.
For example, if you switch to the Login Window while your user environment is still open, you’ll see that the Login Window lists your user environment (with your user icon and name) as being “currently logged in.” But then if you click on the user icon, the Login Window changes to a dialog asking for your password where the button to continue (i.e. submit your password to the system) is labelled… “Log In”!
In other words, based on Apple’s own terminology, what you are now doing is “logging in” as a user who is “currently logged in.” How can you log in if you are already logged in? It doesn’t make sense from a layman’s point of view.
In an ideal world, Apple would use two different terms for the two different processes. Personally, I would keep to log in for the process of just entering your password to identify yourself as the user in question, and use another phrase for the process of opening/closing a user environment. In the Login Window, I would say, “This user’s environment is currently open” instead of “This user is currently logged in.” And in the Apple menu, I would replace the “Log Out…” command with something like “Close This User Environment…”
It is a bit long, but at least it’s clearer about what it actually does and about the fact that it’s more than just “logging out.”
So in my view, even though Apple’s approach is way better than the one described by Joel Spolsky in Windows Vista, it still is somewhat confusing and could be improved, without adding to the complexity. (It’s just a matter of changing the name of some commands.)