Language matters. Which isn’t a surprise, really — even in that old Tower of Babel story, wasn’t it a surfeit of competing languages that somehow brought the tower build to a screeching halt?
What does surprise me though is how little time and consideration developers are willing to invest in choosing which programming language they should use to implement a software application. Too often, there seems to be some sort of default: “The CEO or CTO knows Java, so I guess that’s what we’ll use”; “PHP is good enough, so we’ll just use that”; “we’re a Microsoft shop, so we’re going to use dot net.”
Imagine my excitement then when I discovered that an objective study had been conducted by ISBSG to tell us which programming languages lead to programmers being more productive.
Unfortunately, the results don’t live up to the promise.
The study draws from a database comparing 6,000 different projects. It shows that Classic ASP, through the initial dot net implementation from Microsoft, is the most productive. After that comes Visual Basic, then Java, then a bunch of others.
But I couldn’t help thinking, “Wait, where’s PHP, where’s Ruby on Rails, where’s Python? What about niche-y languages like Scala or Erlang?” My initial feeling of excitement turned to disappointment when I realized the study didn’t really seem complete or part of the real world. For example, it lists PL/1 – and I don’t know anybody who still programs in PL/1.
I suspect what may have happened is that the study focused on key projects at large companies where those older languages have been used over a span of years.
But disappointments can be instructive too, can’t they?
In analyzing what’s lacking in the study, you realize maybe programming languages can’t be looked at in a vacuum. Maybe other elements of the software development process are more important than just what language you’re in: your ability to collaborate, say. Or your ability to quickly do iterations and focus on a few features at a time rather than having a really long development cycle.
I also think there are some languages that lend themselves more to a team approach than others – and this can affect productivity. Java, for example, and C++ – basically the compiled languages – enable you to have modules and libraries that can be shared more easily than, say, PHP. I actually know clients who have complained that it’s difficult for them to hire PHP programmers who can work in a team because so much of web development is done by just one or two programmers where there isn’t as much teamwork needed.
Who knows? If the study had taken into account the built-in code review and coding standards of languages like Java and C# — and process issues in general — maybe it might have felt more complete, maybe even useful.
Or maybe I’m just Babeling.