Posts Tagged ‘programming polyglot syndrome’

Fetishizing Programming Languages

May 1st, 2010

Learning a new programming language is fun. Different languages take different approaches to solving problems — they follow different paradigms. Learning a new language feels a lot like exploring, and I like exploring.

Exposure to more than one language is a good thing. However, once you are familiar with the broad paradigms, there exists a danger of conflating learning new languages with learning new ways to solve problems. In my case I forgot that programming languages are tools. Learning new languages can be seen as acquiring new tools. Learning a set of very similar languages is of limited utility because your not actually gaining anything new. There is almost no marginal benefit. To make things less abstract, compare the promisculous language learner with a carpenter. Carpenters don’t seem to suffer from the same error of judgement. There might be several brands of hammers offering slightly different features, but they all pound nails into wood.

I still enjoy learning new languages, but I don’t do so with such fervent desperation anymore. I’ve ceased my semi-conscious search for the best one. Instead, I finally realized my time is best spent studying algorithms, learning new programming techniques, and contributing to existing projects. This is much more rewarding than implementing the same software in twenty-three languages.

P.S. This post is a follow up to Consumerism and Programming Polyglots. I wrote Consumerism and Programming Polyglots a while ago. When I reread it today, I was very dissatisfied. It hinted at what I wanted to say, but it was inarticulate — mostly because I didn’t understand what mistake I was making by learning languages promiscuously. I think I get it now. Six month from now, I’m sure I’ll identify an entirely new aspect of my miseducation.

P.P.S. I wrote the title down, remembering someone had said it to me once when critiquing another post, Back to PHP. I searched my email before publishing this post and discovered it was Zed Shaw. This was disheartening. It took me several months since my original post to come to a conclusion that was accurately summed up by his flippant response: “All this fetishizing of technology is kind of pointless.”

Consumerism and Programming Polyglots

October 28th, 2009

This is a follow up to Monday’s blog post, Back to PHP. In the scope of the project I need to develop, PHP is the best choice. My conclusion was correct. The reasoning I used to reach that conclusion was (mostly) incorrect. The post was basically a list of justifications that were a product of “Programming Polyglot Syndrome.” This post is a half-hearted retraction Monday’s post.

I dislike shopping for clothes. Unfortunately for me, social and professional conventions dictate that I must spend some time and energy dressing myself in something other than grey sweatpants and Birkenstocks. Shopping is a necessity and I shop hastily.

For example, I recently noticed my black dress shoes had a hole worn through the sole (oh, Aerosmith) last week. I headed to DSW. For me, the costs imposed by wearing cheap shoes are negligible. For most men, shoes are shoes. If they don’t look dirty, are properly shined, and are not 95% creased they look fine. Moreover, I care more about my checkbook than my feet (the later are mostly self-repairing, the former is not). Once I find a pair of shoes that are not pink, are not expensive, and are not four sizes too large, I am done. I am satisficing.

People who enjoy shopping are not satisficing. That frustrated me until this morning. An introspective friend of mine was describing why she enjoyed shopping so much. She was able to recognize that, for her, shopping is about buying possibilities. She doesn’t shop for new tops. She shops for the experiences she believes – rationally or irrationally – the top will elicit: the attention of some man she finds attractive or the jealousy of some woman she dislikes.* She is buying hope.

Now, because this conversation was taking place via GChat, I was doing other things at the time. At one point, I checked the traffic stats for the unexpectedly popular post I wrote on Monday, Back to PHP. In the Back to PHP post, I tried to justify switching back to PHP, a language with a lot of warts. Thinking about it in the context of my friend’s consumerism, I noticed that it’s roughly the same thing. I have a project that I have no strong interest in but I must write. By switching to PHP I was trying to optimize away most uninteresting parts of development – mainly deployment. Cognitive quirks lead me to half-conclude that PHP would make the development go swimmingly well, with no bugs, deployment issues, or mental energy required. Magic!

This is not the first time I have learned or relearned a language because I fostered the delusion that it would {motivate me; dissolve all complexity; …, cure cancer; bring about world peace}. Actually, for me, this is often the primary impetus. In most cases, given the context of the problem I actually set out to solve, this turns out to poor investment of my time.

That is not to say that learning many programming languages is a bad thing. Different languages have different conventions, paradigms, common practices, etc. Learning many languages and paradigms pays a dividend. You become a better programmer and you carry new ideas across language lines. There is nothing wrong with learning for the sake of learning. However, if you are learning something new to avoid doing something you don’t want to do, you are probably not going to make any gains in productivity for that project. You are just procrastinating.

In the case of my project, PHP is the best choice because initial deployment in environments that I do not control is one of the most important considerations. PHP is very simple to deploy initially and is very common. However, most of the justifications I provided were not related to this issue. I just wanted to (re)learn a language.

Although, to be fair, Factor might be my best bet. Forget all this introspection!

* This is actually pretty interesting if you think about it. “Peacockery” in fashion is more apropos than realized. Not only do people wear things that are ostentatious to attract attention, but doing so becomes a requirement for those who otherwise would be happy in sweat pants. Adopting fashion trends is less about conformity than it is about leveling the playing field for attention. It may be less about showing fitness with clothing acting as a proxy for wealth and more about Fisherian runaway. F*cking, peacocks.

P.S. “Programming Polyglot Syndrome” is almost an extension of NIH. Coding something from scratch can be more interesting than learning to properly deploy and use someone else’s code.