There are a lot of people who will tell you that they derive satisfaction from the act of programming. I’m not one of them. I hate programming. With a passion. Or, at least, what I think of when I hear the term ‘programming’ — you know, the actual sit-in-front-of-a-computer-and-type-out-the-code-that-implements-the-solution-that-you-really-want-to-solve part. I hate that. The problem solving part I really like.

I’m not sure how small of a minority I’m in — or whether it’s even a minority. For all I know, there are a lot of people like me who enjoy tackling technical challenges for hours but dread having to sit down for the briefest of moments to write even a single line of code.

I think the reason I feel this way is that most programming languages make you painfully aware of the disparity between having a well-thought-out idea and actually implementing it. Even if you’ve gone through the effort of painstakingly detailing a solution, the actual translation into code feels anticlimactic at best — an added chore to complete after the ‘real’ work is done. And yet, completing that chore is the difference between having a tangible result or not.

This is why I love Ruby. I don’t think I’ll ever truly know what it feels like to think directly in code, but Ruby is the closest I’ve ever come to seeing programming and problem solving as one continuous action from conception to execution.

From someone who has hated programming, but loved problem solving, a language like Ruby has been the deciding factor between getting something done versus just wishing I could find a way to express myself that isn’t plain painful. I’ll gladly take personal productivity over performance pretty much any day.

Happy 21st birthday, Ruby! Thanks for caring about how I feel. And making the programming as fun as the problem solving.