Code rage

I've learned long ago most heated arguments are pointless exercises. That's not to say I never get into them, I do. I just realize they are pointless. But sometimes I can't help myself.

The reason they are pointless is because when an argument becomes heated it means it's getting emotional. At this point, neither side wants to be convinced and the chances of any rational discussion goes to zero.

When this happens to me, it's usually because I perceive the other side is refusing to listen to reason. And I tend to get mad. I feel it in my shoulder's, a frustration that rises and becomes irritation. This irritation becomes anger. Anger becomes "Why won't this FUCKTARD acknowledge FUCKING REALITY!!!" and then productive communication ceases. Plus I want to win.

Been there. Done that. Way too many times.

So I try not to get into those arguments, it's pointless. But still I do sometimes.

Anyway, recently, I was dealing with some particularly frustrating work related thing, filing expenses. The process seemed unnecessarily convoluted and it started to annoy me. A lot.

Then I noticed I started getting that tight feeling in my shoulders. I started to feel anger. But I continued.

And I got angrier.

And I yelled out "GAHHHH!! I HATE THIS SHIT!"

Then I felt slightly better.

After calming down a little I realized that because the process didn't seem particularly rational, I was getting frustrated with it in the same way I'd get frustrated when arguing with a person. Only the expense process is the most pig-headed debater ever. Any demands to explain its self are met with silence. It never responds to reason, it has no pity or remorse. All I get from it are the next steps in the process.

The expense process might be completely rational, but I can't tell. To me it looks like it's complicated just for the hell of it and it mocks me when I'm not looking.

Then I realized not only did I feel like this when arguing with people and expense processes. I had experienced this exact anger when programming. A lot.

When using Erlang and the OTP libraries, some parts seem so non-intuitive and cumbersome as to be downright illogical. It becomes extremely frustrating, they seem to be annoying and contrary just for the hell of it. Those bastards!

Many times working with Erlang I became angry. The same frustrated, "why aren't you more reasonable!?!" anger. And I would literally lose my temper, swearing out loud at code and text and wanting to slap some sense into the API.

Oh yeah, and Antlr too.

Antlr, I remember as I was first picking it up, just seemed so odd and complex that it made me mad as hell for days on end. It was tough going, I would start to work with it, get frustrated and feel anger, physically, in my body and have to get up and walk around to try to diffuse it.

I know other people get this, and no wonder so many give up on their projects. Sometimes wrapping my brain around something actually feels as if I'm physically wrapping my brain around something. Trying to get anything done can make me mad as hell with no one to yell at except stupid code and documentation.

Fortunately -- while I'm not a patient person -- I am a forgiving person. And in the case of Erlang and Antlr, I made an effort to forgive them for being so damn weird and hurting my noodle, and I tried to see the world through their perspectives.

Try as I might, I can't make the anger magically stop. I can only deal with it as is comes, manage it and try to put it to good use. And so I persevered, tried to work of my anger in he gym (really there's nothing like lifting heavy weights to relieve aggression) and eventually figured out where these crazy tools were coming from. They've both changed my mind for the better.

And they both still piss me off sometimes, but we're still friends.

Now if I could only learn to do that with people.

Posted May 28, 2007 2:48 PM