I came across an interesting post over the weekend from the web site CIO where Esther Schindler Is Computer Language Popularity Important? It was a well written look at what drives both developers and companies to a particular language and how the choice is made.
In my experience developers tend to like the latest and greatest technologies because we like to play with great toys that may lead us to a better job or even to make our current work easier. Esther words this much better than I:
At the developer level, language choice is completely personal. Like picking a brand of hammer or carving knife, the tool should fit well in your hand. Some people think better in Python than in PHP, and God help anyone who thinks in LISP.
Companies on the other hand do tend to make a decision and stick with it. Companies that have gone with Microsoft technologies running on .NET tend to pick C# or VB.NET and stick with their choice, rarely deviating from it. This choice makes sense for companies who want to have one type of code base and maintain only that code base. I can see from one perspective the decision makes sense but in others it doesn’t.
For example if your company chose C# as their language of choice and made it the tool to solve every software problem, well, we know this is hardly ever the case. Ruby on Rails is a nice framework for doing fast development, maybe even the choice for prototyping an application. If we always used C# or Java we may be missing an opportunity to use a fast tool to get the job done or the prototype complete.
For example, Steve Yegge a developer at Google, wanted to introduce Ruby on Rails to the Google developer shop but Google standardizes on Java, Python and JavaScript. The answer to Steve was a “no”, so what did Steve do? What any good programmer would do…converted Rails to JavaScript. This was probably a great exercise but likely never used.
The article did point out a study done on programming language popularity and the results were very interesting. You can see that the popular programming languages are:
- C
- Java
- PHP
- C++
- Visual Basic
- Perl
- C#
- Python
- Shell
- JavaScript
- Ruby
You probably don’t need me to tell you that the first 6 languages are likely where they are because of the amount of time they have been out, the number of platforms they support and all of the legacy code out in the world. The ones that interest me are C# and Ruby. The study looks at about 25 different languages, some are older than dirt but we see these two relatively new languages near the top. Why? I can only guess based on what I read and observe but some of the success has to be with popularity.
If you are a C# developer there are a ton of jobs available right now and the pay is pretty good. Ruby on Rails has really brought Ruby up this list as well, Rails is Ruby’s killer application and the talk about Ruby on Rails has made Ruby a popular kid.
Just like Cobol, there will always be jobs for C++ and PHP developers and companies aren’t rushing out and converting code from what works to what is popular. I do so languages like Ruby and C# and the likes of Erlang going higher just because of the buzz around them and how we want to do what the cool kids are doing.
Sure, companies aren’t going to jump to Ruby if PHP is accomplishing what they want. Esther says it well:
In business and managerial terms, however, the choice of a programming language is a much larger issue. A corporate standard language (or at least set of languages) ensures that the entire staff can read any in-house code, if not adequately maintain it. Predictability is a good thing, even if it’s boring, though I’ve seen some mighty strange internal standards. In the mid 1980s, Ramada Inns let developers work on PCs in only Assembly language and interpreted BASIC, which meant that otherwise trivial apps were written in Assembly because none of the developers could stand BASIC. Turbo Pascal was smuggled in like booze at the office potluck.
The only options a developer has is to either be happy with the tools their employer uses or jump ship and go somewhere that uses the cool stuff. Take a look at Monster, CareerBuilder or other job site and do a search for C# and then for C. I bet you will find a 100:1 of C# over C openings. The tools will do the job you need but it really boils down to what is popular to satisfy the developer’s desire.