So there’s “this post”:http://www.linuxdevcenter.com/pub/a/linux/2006/06/01/switching-back.html in which a O’Reilly tech editor writes about how he’s switching back to Linux after a stint with OSX. The gist of his post was that OSX did not fit the way he liked to work, and that he could not mold OSX into the tool he needed to be efficient.
While that’s a fine reason to switch back, there’s a larger question that I think applies here. When I think of a particular _tool_, I usually think about how I learned to use that tool, and how I came up with clever uses of the tool, rather than how I molded the tool to do exactly what I want. Sure there are people who build their own tools, or modify existing tools to suit themselves better, but I feel like those type of people are largely in the minority.
This must be at least a huge reason why the lack of relative ‘customizability’ in Windows or OSX does not inhibit their success in the market. People are much more used to taking the behavior or characteristics of their tools as immutable, and change themselves to adapt to them, not the other way around. That being said, with a little programming ability, the computer differs greatly from ordinary tools. In theory, with some keystrokes, clicks of the mouse, and some patience, one can transform the interface to one’s computer in an infinite number of ways.
But then again, in practice, one programmer can only do so much. Even the most motivated of programmers can only have control over a relatively small part of their UI experience. You could write a window manager, or maybe a launcher applet, but I’m not sure anyone has the time build a truly customized interface from top to bottom. And certainly for the non-saavy computer user, changing oneself to adapt to a new UI is much easier than hacking that UI to adapt to you.
So then you’re left with a compromise. If you still believe in customization, you gravitate towards software that lets you get this done as much as possible. Linux, with its huge variety of UI’s (some even programmable) can definitely shine in these types of situation. You can cobble together pieces to create a solution that’s built just for you, providing that you’re willing to build the glue yourself.
Windows and OSX are, on the other hand, more like cars. You buy a car, and you can’t really change that much about it. You can maybe have a different color, or get satellite radio instead of terrestrial. You can’t just take out the steering wheel and replace it with a joystick (well, you could, but the cost is prohibitive for most). You can’t just decide that you want the driver’s seat on the right. Windows and OSX attempt to provide you with a model that makes sense, a gas pedal, break pad, and a steering wheel, and hope the user can become proficient with them.
I think the Apple approach takes it even one step further. Whereas on Windows and PC’s you can still have pretty much arbitrary control over the hardware, Apple sells you a small selection of machines whose configurations are for most users immutable.
So I don’t find it at all surprising that someone can go from a platform that is as about as customizable as it’s gonna get (generic PC + Linux), to one that’s engineered to be the tool that’s made a lot of the decisions for ou (Apple + OS X), and not like the result. I think the Unix-ness of OSX kinda tricks people in this regard. As I have personally found out, while you can do a lot of Unix-y stuff on OSX, it’s clearly no Linux. It’s better to sort of think about it as a Mac-like experience with a nice shell added on top, not like a Unix with a nice Mac-like experience on top. As long as Apple continues on with their goal of producing a streamlined, integrated interface, I don’t think that’s really gonna change.
When I used to use Linux as a desktop, I felt like I continually was looking for the ‘car’-like experience. Gnome and KDE both sort of seem to claim that they offer this. But when you get down to it, Linux is still built for those who want to build their own, which in effect, limits the audience to those who _can_ build their own. Also, Gnome and KDE, while providing quite a bit, never quite provided it all. So you’d be stuck with something where you were _required_ to provide your own glue, even if you didn’t really care to.
Then people will say, “what about Ubuntu?” Ubuntu seems to be able to pull off a OSX-like experience but with a Linux base. But any of us who’ve actually used both Ubuntu and other platforms knows, Ubuntu (and Linux in general) still have a way to go before they offer the simple usability of a Windows or OSX. Rather, I’d almost consider claiming that to some extent, systems that offer less choice are easier to learn. Ubuntu is a result of taking a system of maximum choice (Linux + software) and reducing it down to a little less choice (specific kernel + specific gnome + etc.). I claim that to get down to the brain dead simpleness of Windows or OSX, Ubuntu will have to keep reducing the choices until they end up in the same situation: inevitably, Ubuntu will have to make some choices that will drive away some of its users. And they will make the same tradeoff: is offering this choice worth the extra confusion it causes? is it worth supporting? will the amount that it hurts a few users be outweighed by the amount it benefits a large number of users?
That’s not to say that Ubuntu will make all the same design choices as OSX or Windows, but it is to say that if the answer to such a tradeoff was: “there is an obvious way to offer this choice and still make it easy,” then I claim that Windows or OSX would actually already offer you this choice. Where the solution isn’t obvious Windows and OSX have bitten the bullet and picked one design over others in an attempt to reduce the number of moving parts, where as Linux tends to leave the choice to the user, resulting in a situation where the user has to effectively make many choices before an environment is really complete.
I’m rambling a bit, but in the end, I think what I’m trying to say that is I find that OSX has probably made me happy in numerous ways by reducing choice. When I have a choice about something, I tend to fret over it (for example I used to switch between Gnome and KDE all the time, or bash and tcsh, or gentoo and debian, or this kernel or that kernel) With less choices to make, I can concentrate on what I actually was need to do with the computer in the first place. Plus I trust that the OSX designers didn’t just flip a coin to make choices for me, that there’s some philosophy and thinking (and god forbit, even _research_) behind it. And I think I’m actually willing to _pay_ for that. Linux is free, but you’re on your own regarding all those choices. And only god knows if 1000s of distributed developers will ever be able to come together and agree on _sane_ defaults.
Sure some of the choices that OSX designers have made do bother me. I still don’t really like how alt-tab works, or how the ‘make window bigger’ button works. But in the end, I’ll just learn to deal, because I really don’t want to go down the Rasterman route and write kwm (Ken’s window manager), kfs (Ken’s file system), kenmail, kenternet explorer, …

1 Comment

  1. Reply

    You know, I read this joker’s post, and I came away with the conclusion that he’s just a tool. Well, more generally, I have a theory that most people are curmudgeonly in some if not all aspects of their life. We’re resistant to change. Watch how Ole uses a computer some time. It’s ridiculous.
    Once upon a time I wished that I could resist the temptation to constantly experiment and tinker with the *way* I use computers (not just what I was actually doing with them), but more recently I’ve decided that my tendency to do that is actually a plus point both career-wise and in terms of not becoming a whiny twit like this O’Reilly guy.

Leave a comment

Your email address will not be published. Required fields are marked *