3 ms·
I haven't read the whole paper yet, but looking at the list, I wonder if programmer experience is a confounding variable? e.g. Smalltalk, and many of the other
by SwellJoe 9y ago
I haven't read the whole paper yet, but looking at the list, I wonder if programmer experience is a confounding variable?
e.g. Smalltalk, and many of the other languages that scored well, are generally older languages that aren't super-popular or trendy. e.g. Perl scores very well, much better than one would expect given the reputation Perl has (which I think is somewhat unfounded, but I'm in the minority in thinking Perl is a pretty good language for programming in the large). While Python scores relatively poorly, despite the fact that many consider it a very good language on most of the metrics this kind of ranking ought to reflect. Perl is used almost exclusively by old coders with a ton of experience, Python is relatively trendy and has a lot of new programmers working in the language. JavaScript is a perfect storm of newbies with little experience writing gazillions of lines of code, seeming to further support my theory; I'd wager there are more programmers with <2 years programming experience working in JavaScript than any other language, and probably a higher percentage with no formal programming education, as well.
Smalltalk, is, of course, an old language with a lot of old and experienced programmers working in it. Not many new programmers are taking up Smalltalk.
It seems almost as if this one thing can explain the ranking, or at least a big percentage of the difference. Even if they controlled for experience with the language, they may not have controlled for programming experience in general...which is, I think maybe even more relevant to the results. The best Python programmer I've ever worked with was a Java programmer for years, and hadn't really worked with Python at all until a year or two before I met him. Smalltalk people have been around. MUMPS people have been around. Perl people have been around. Eiffel people have been around. (Many of the languages that ranked high are also used in specific, stodgy, industries where the reliability requirements are very high...medicine and finance, for example. Those industries favor experienced programmers with credentials to back them up.)
There's occasionally studies about average developer salaries, as well, and they look a lot like this list, even though they seem to imply it's the language that's setting the price, I think it's the experience and age of the coders working in them. (And, based on this and other studies about relative productivity, the old timers pushing up the average salary for those older languages are probably still underpaid.)
In short: Is this really measuring the language or the programmers working in those languages? (It probably doesn't matter for the people reading this study, as they just want reliable software developed quickly and within budget, and choosing a language that scores well might get them the developers that make reliable software quickly within budget. So, cause and effect might be matched up so closely that it doesn't invalidate the study for it to actually be about the programmers rather than the code.
But, maybe they did cover this variable and I just haven't read deep enough to see it; I've only skimmed the paper, so I could be talking nonsense.
- mpweiher 9y agoThey got very similar results in the original paper 30 years ago.
- SwellJoe 9y agoSure, and I guess C is an old language with old programmers, and it scored very, very, poorly...which, I think, is safe to blame on the language. So, yeah, more than one factor at play here.
- throwaway7645 9y agoTake a beginner programmer...I guarantee they will get up to speed in Python quicker than Perl. For example, python doesn't require you to remember that the list uses @, but when you want just one element of it you have to use scalar context "$" and other weirdness. With that being said, I think Perl allows the power user a lot of flexibility in building applications and is probably more productive for that kind of expert in small to medium size apps. This isn't to say Python doesn't have power users either. Perl the language gets dramatically powered up by CPAN modules like MOOSE that give it more advanced OO than many OO languages like Python.