COBOL (still processing the bulk of the world’s business data) is an in demand skill at 55 years old, making C positively youthful at 42.
So what’s the deal? Is it the case that we haven’t been able to improve on the tried-and-tested languages, are newer languages just not up to the job or are developers simply creatures of habit?
Everyone’s got their favourite niche language and, similarly, mainstream ‘must-have’ they’d really rather not have to use. But if you’ve ever wondered what influences developer choice, or why some languages fail and others seem to have discovered the secret of eternal life, some researchers in America might have found the answer.
Ari Rabkin and Leo Meyerovich spent two years analysing more than 200,000 Sourceforge projects and polling over 13,000 programmers on The Hammer Principle and Slashdot (among others). Their initial finding – that most programmers choose use languages they’re already familiar with – is hardly earth shattering.
What matters most…
What is interesting is what influences the choices developers make – complexity or similarity to already-known languages have surprisingly little bearing. What does matter is existing code, existing expertise and open source libraries, which the researchers found were the dominant drivers of adoption. Language features such as performance, reliability and simple semantics appear not to matter much at all. Expressiveness, flexibility and speed of development do.
Older developers no doubt already know that programmers steadily learn and forget languages over the course of a long career. But they – and many recruiters – might be surprised to learn that the overall number of languages with which programmers are familiar is completely independent of age. Rabkin and Meyervich’s results also refute oft-cited professional recruiter claims that there are large and significant differences in the languages used by older and younger developers.
Developers were found to stick to ‘clusters’ of languages – only 7 per cent of Java developers use C/C++, while the C/C++ developers are five times as likely as Java developers to use Perl.
Age has no bearing on the likelihood of remembering or learning older languages such as Pascal; it’s a simple matter of the young ones catching up while their older counterparts keep learning. Age is no predictor of which languages a developer knows.
In terms of actual languages used, the usual suspects dominate: the top six languages account for 75 per cent of projects, with the top 20 behind 95 per cent. PHP, C and C++ are the top three; Java is used in 20 per cent of projects while SQL is the only domain-specific language in the top 20. Interestingly, developers were found to stick to ‘clusters’ of languages – only 7 per cent of Java developers use C/C++, while the C/C++ developers are five times as likely as Java developers to use Perl.
The perhaps unsurprising conclusion? Developer movement between languages is most likely driven by background and technical ecosystem.
Finally, size does matter. Employees at larger companies place significantly more value on legacy code and knowledge than their counterparts at smaller companies. And while commercial libraries matter, open source still wins the day, even at the larger organisations.
The full report, Empirical Analysis of Programming Language Adoption gives some interesting additional insight into programming language design and development, along with further insights into software developer choices and behaviours. Whether you’re looking for work or hiring, you might find some counter-intuitive insights to help you with your search.