Pile of Turtles Archive

Smelly Languages

4/9/2011
Header Image

Why do some programming languages smell? They make us grimace at the thought of writing code using them. Maybe we spent too many sleepless nights with one of them in the computer lab for a college project. Perhaps it was the language we used to code an application for a client that turned out to be a real jackass. Whatever the reason, some programming languages carry a stigma with them for no good reason.

It’s easy to find a new programming language or framework for the next project. Had a terrible time trying to script PowerPoint automation with Python? That’s fine, just use Ruby! Besides, learning a new language is fun and makes us better programmers.

The Downside

The downside comes when a particular programming language is the one that is best suited for a project. Say your company has a ton of C# code that already accomplishes 90% of the project, but you really have an aversion for anything Microsoft. Since you’re a programmer extraordinaire you decide to rewrite everything in Java! Some of your coworkers take notice that your project repository doesn’t open in Visual Studio and come to your desk to ask you about it. What ensues is a three hour discussion about why C# sucks and Java is the best programming language every invented.

We lose sight of the goal when our lizard brain makes us believe a certain programming language is the plague of the earth. Instead of realizing that nearly every language can be used to accomplish the same problems, we quibble over why the lack of switch statements makes it impossible for us to code.

Mending Hurt Feelings

The one sure fire way to get over the irrational hatred of a programming language is to, gasp, write something new with it. Oh man, that sucks. I have to download this abomination of a language and clutter up my pristine system with yet another compiler? Okay fine, maybe you don’t. There is another way. This way is harder, and requires some internal dialog. You’ve got to constantly remind yourself that just because you don’t like something doesn’t mean it sucks for everyone.

If it is the best language for the job, you’re going to need to overcome your fears. Your co-workers will love you for it and you’ll have added another tool to your arsenal.

The Real Problem

I think the real problem is that when we dislike a certain language, we haven’t used it recently. The important thing to remember is that we get better at programming every time we write code. This means that we can better map abstract problems to code and data structures. It’s hard to admit, but sometimes it’s our own stupidity that causes us to have a hard time with a programming language.

Lets see if this is true for you.

  1. What was the first programming language you learned in college / at your first job?
  2. Do you dislike that programming language?
  3. How long has it been since you’ve used it for a project?

If you said no to question two, then you’re already on the path to enlightenment. If not, was it more than a year ago? I bet you’ve gotten much better a programming since then. In fact, I bet if you looked at the code you wrote back then you’d be surprised at how many things you’d do differently now. It’s especially hard to overcome this bias when you’re in an environment where you’ll never to write code in that language again. The important thing is that you need to be aware that you have this predisposition and not let it color your opinion of some project or someone.

It’s hard for us to imagine someone using a programming language we suck at to accomplish something great. We’re computer nerds, we solve problems. We want to solve their problem for them.

Conclusion

I’m not perfect either. I have held a hatred inside of me for many programming languages. I have spent countless hours arguing with co-workers, friends, and animals about why their language sucks and why mine requires half the code and runs 11 times faster. I wrote post to myself, as a way to finally hammer home that no programming language truly sucks. Yes, some languages aren’t suited for certain jobs (a JavaScript C compiler comes to mind), but they all have their place. Some of them have a place in history, we may not use architectures that lend themselves to those languages anymore, but they were still a great tool to solve problems in their day. That doesn’t mean we should hate them.

P.S. If you’re not a programmer, but you go this far, copy the entire text of this article into a text editor. Replace ‘programming language’ with a technology you frequently interact with (operating systems, mobile phones, and web browsers come to mind). Less hate = more love.

Category: Programming
Tags: idevblogaday
by @mutewinter