Are geeky people into complex things because they are afraid of real productivity? After quitting my programming job I’ve starting taking a clean look at why geeks are drawn to complexity. Is it good or bad? Is it denial?

The other day while I was playing with my favorite music production program, I noticed something about the complexity of the interface that appealed to my geeky side.

“Oh it’s so fun, look at all the little lights and level meters and mixer sliders. So cool!”

But wait, why the heck is that cool? What does all that chaos do to help me? Opening all the views and watching all the controls wizz around doesn’t make my job any easier. In fact, it doesn’t do *anything* for me except give me the false impression that I am associated with something successful and complicated, which maybe means that I’m super smart or something.

Not true.

I’ve since realized that I quit playing the violin and got into electronic music because I thought that I could get away with being creative by learning tons of geeky toys. In effect, I was trying to *engineer* creativity. So I learned the tools and specs, and even wrote and built my own tools and specs, and still my music wasn’t getting as good as all the time I put into it.

What I was missing was the *expression* – that flawed human glue that gave my music life, and can only come from playing a real instrument. Because of my unwillingness to break down and practice, my music had stayed exactly as inane and lifeless as the complex computerized tools I had learned to make it.

This also applies to code. You know the apps that feel like the engineer wrote directly into the kind of experience he/she had envisioned? He/she wasn’t caught up in the engine and gui communication abstraction or the details of the painting framework, but instead was able to grasp the big picture. This is just like writing a timeless song.

Now dudes and dudettes, I grew up tearing apart computers and building super complex model airplanes and lego machines just like the rest of you. But, I’m digging here because I want to get better, and I think learning about our greatest deficiencies is a step in the right direction.

Sometimes you’ll be working on a component and constantly alt-tabbing between iChat, Terminal, an Xcode window, and looking for skis and goggles. Sometimes you’ll end up in a meeting where someone continuously talks off topic about his cool desktop widget or argument syntax modifier (don’t look so guilty python guys ;)) when what you really need to do to make this app rip is optimize that boring-ass table schema.

You check your email every few seconds and love the fact that you can reply without using the mouse. When you were twelve you had five monitors and felt like the center of the matrix, controlling the world through an alternate reality. “If only they knew.”

How much of this complexity is just geeky madness? No smartypants, it’s not ADD, it’s an unwillingness to commit to the task and possibly too much caffeine!

When do the infinite xterms stop!?! How much do you perfect your editor and build environment for hours instead of biting down and just fixing the bloody algorithm?

I’ve obviously been there too.

I stepped back and looked at the insane complexity of my music sequencer app and thought to myself. “What am I really trying to do here?” Is it watch smoothly animated audio levels or communicate a musical concept?

I chose the latter, pulled out my MIDI keyboard, and turned down the brightness of my display.

Since I bit the bullet and learned a few real instruments, my techno has gotten much, much better.

Red team go!