Windows

I started using computers with Windows 3.1. I don’t say this as a point of pride, merely a reference point. I was on Windows from 3.1 through XP. Windows taught me the fundamentals of working with a computer, the basic GUI concepts, and introduced me to the internet. It works very hard to remove all complexity whatsoeverr. However, I started to run into a lot of instances where I wished I had more control.

Linux

From there, I moved on to Linux. I started out on Linux with Red Hat 6, and moved from there to Debian, Gentoo, Linux from Scratch, and finally Ubuntu. Especially with Gentoo and Linux from Scratch, Linux gave me the ability to control every single aspect of my computing experience. I would spend hours and hours recompiling the kernel to cut it down to only what was necessary, eking out every last tidbit of speed. I spent even longer compiling and recompiling every program on my system. I remember the feeling of joy I had when I finally got wireless card connected and working with my college’s network, something that wasn’t supported yet. I remember the satisfaction of getting all the keybindings the way I wanted in Ion2 to move windows around. “Finally, now I can get something done,” I thought.

Only I wouldn’t get things done. As I said, I spent hours and hours getting the OS kernel the way I wanted it. The problem with being able to control everything is you then have to control everything. After seven years with Linux, I moved on.

OS X

I realized I had a problem with complexity, so I looked to my internet heroes. At this point, most of the productivity and Linux gurus were actually switching to OS X. I figured it was worth a shot, and started using OS X Leopard. OS X gave me the ability to dig in if I wanted (with a full shell, and UNIX underpinnings), but still hides complexity whenever possible. It’s opinionated, deciding the best way and allowing you to correct it rather than asking at all times. That’s what I needed to get things done.

#What It All Means Everything should be made as simple as possible, but not simpler. ~Albert Einstein1

There’s a trick to managing complexity. Most people in technology recognize the shortcomings in the earlier Windows, that it was difficult to get a lot of things done because it had only two modes: simple and beyond complex. They move to Linux (in mindset, if not in OS choice) and embrace the complexity. They develop an almost Pavlovian aversion to simplicity, fearing that it reduces choices.

My fear is that they stay there. I’ve seen solutions to problems that were orders of complexity higher than would ever be needed. I’ve tried to intervene and explain that the complexity isn’t needed, only to be met with, “This solution is more flexible.” Flexibility is the siren’s call to complexity.

I’m not sure if you can pull a person from the Linux mindset. I’ve tried from time to time, and I’ve almost always failed. Complexity is just too enticing, too alluring. It feels like you’re making progress. Perhaps someone has to be bitten by their complexity enough times to acknowledge that simplicity has its place. Being able to change everything is a great thing, but it needs to be managed or the possibilities will overwhelm you.

  1. Presumably, anyway. There’s a bit of controversy about this. See here