Wednesday, January 26, 2011

Three Programming Languages

I ran across this post a few months ago, that I recently given some more thought to while making supper. (Funny how the brain works isn't it?) I've come up with my "three" programming languages as of this writing, and I'd like to share them with you.

The author classifies the three programming languages every one must know:

  • The Happiness Language
  • The Hack-it-out / Get Things Done language
  • The Bread and Butter language

I disagree with the author that there needs/should to be a difference for all three languages. In my experience, there's really no difference between the Happiness and GTD language. To me, if you can quickly solve the problem with the language in your head, then you can simply type it out and execute it quickly, thus getting it done. Anyway...

I think there are three languages, though:

  • The language you can quickly solve problems with (call it Happiness, GTD, whatever). For me, this is Scala. This language makes me happy, and I've recently wrote a script that calculates an average for a dataset for work rather quickly.
  • The language you get paid to work in. While I can solve problems the fastest in Scala, I'm glad there a distinction for me. I get paid to work in PHP, and it makes my stomach turn a little to define a body of an anonymous function with a string (pre 5.3 code base). I'm glad my precious Scala is free from the political stress and red tape at my 9 to 5. This keeps Scala safe and happy.
  • The language you desire to learn more about. Having used Scala for more than two years, I can honestly say I wish I knew Scala more than I do now. I learn something new about the language on every new personal project I work on, and I feel I'm only starting to scratch the surface of some greater potential.

So there you have it. I do believe broadening your programming language knowledge makes you a more versatile problem solver, to a certain extent. Ultimately, I think problem solving skills are sharpened like any other skill set: solving problems. People just use learning a programming language as an excuse to tackle a new problem differently.

On a slightly different note, I laughed aloud when someone commented on aforementioned blog post: Javascript is your happiness language? Are you a serial killer?

I would say that with PHP, as I think looking at variables starting with the dollar sign is torture to the visual sense. When I program in PHP the goal is to make it as terse as possible with a billion helper functions to avoid those awful dollar signs.

-- Philip Cali

No comments:

Post a Comment