Programming Languages are like Romantic Partners

Simon Horwith, the CTO at Nylon Technology, wrote a blog post yesterday entitled Can ColdFusion Handle Enterprise Applications?. Along with being an interesting read, the post made me start thinking about our interactions with the programming languages we use. The more I thought about it, the more I began to think that we interact with programming languages the same way we interact with someone we’re in a romantic relationship with.

There are some languages we date, some we fall in love with, and some with which we even have nasty break-ups.

The First Date

Maybe it’s just me, but first dates were always awkward. You never really knew what the boundaries were or how to act. Should I walk her to the door? Should we do dinner and a movie or just dinner… just a movie? As well, you spend a lot of time focused on how to make yourself look good instead of on what your date is doing. I think this the same thing for when you first start using a programming language. How does scoping work? Are the variables loosely typed? What IDE do I use? The whole thing is like a clumsy first date. On top of that you typically try to take on an overly complicated tasks so you can feel ‘impressive’. Sometimes things are so clumsy that you decide its not worth it to pursue this relationship and sometimes you decide things went well enough that you want to take it to the next level.

Dating

From the first date you have a basic understand of the person you’re seeing. You know a little bit about their family, where they’re from, what they do for a living. As you go on more dates you learn some of the more intricate details about a person. You learn their favorite foods, their favorite television shows, maybe even their favorite toothpaste. After the ‘first date’ with a programming language you have a basic understanding of how it works. You’ve become familiar with the syntax, you know how to run it on your machine, you’ve even built a ‘hello world’ app. As you use it for more and more projects you begin to see how it handles sessions, arrays and database connections. The more you use it the more you think, ‘this could be love!’.

“Love”

You’ve just fallen in love and your partner can do no wrong. Its OK they don’t do the dishes. It’s OK they tend to only shower once or twice a month. You LOVE them. All your friends may tell you that you’re dating a loser, but you don’t care what they have to say either. In fact, you spend a lot of your time defending your partner against these attacks. When we fall in love with a programming language we can experience the same reaction. Its OK that ColdFusion  can’t handle the loads that other languages can, I don’t care about high traffic applications anyway. I don’t care that everyone makes fun of me for using PHP, they just don’t realize the true beauty of it. Many of us fall in love with a language and never leave this phase. We go to forums and plead the case for why our language is the best. We never look anywhere else for our needs, because our language seems safe and it takes care of us.

True Love

Ok, so before I had “love” in quotes. In a relationship, we have those moments where we think this is the one and then we have the moments where we know this is the one. I’m going to be with this person for ever. A big part of this is coming to the realization that we all have faults and that when you love someone you both work together to become a better couple. Before, you thought its OK they don’t do the dishes or take showerss, but when you reach the point of true love you talk to them about it. They work to improve these things that bother you because they love you. With a programming language this is the phase when you go beyond making excuses for the language and actually start working to make it better. Your language doesn’t interface well with the newest web 2.0 API, so you contribute a library that does. You join mailing lists and help other people who may be having similar problems. You even start going to user groups and meet people like you.

The Break-up

Sometimes you never reach true love. You realize the things that you initially thought you could ignore your partner now drive you crazy. The longer the relationship has gone on, the harder it is to break-up. The longer a relationship goes on, the more you put of the break-up and convince yourself you can make it work. Your friends are their friends and one of you is going to have to move out of the apartment. When we break up with a programming language it can be the same way. All your friends are [your language here] programmers, you’ve been  going to the user groups ever week for years, you may even have to switch companies or departments to get a real shot with another language. The longer you’ve used it, the harder it is. The longer you’ve used it, the longer you put off an inevitable break-up.

So where are you with your programming language? Are you going through a break-up? Are you just falling in love? Or are you a player who’s dating a lot of languages (Remember, even Jay-Z eventually settled down)?


About this entry