10

I've seen a lot of tests measuring execution speed of programming languages, but I've never found tests measuring development speed.

I've heard development speed is increased when working with dynamic languages, but is there any proof of that ? I'm not trying to say dynamic languages aren't efficient, but I'd kind of like to see the results of a scientific study, if such a thing exists.

Even better would be informations on maintenance facility. Are some languages easier to debug than others ?

EDIT : I'm mostly interested in the differences between two languages that are close in syntax. For example, I guess programming in C will usually be slower than programming in Java; but is programming in Java faster than programming in C# ?

3

5 Answers 5

6

Absolutely the programming language makes a difference. However, I think that difference is far more about how familiar the programmer is with each language than any particular aspect of the language, especially given your constraint of languages with similar syntax.

2

For me this is kind of analogous to which type of paint brush lets you paint quicker.

If you consider what you paint a commodity, then the bigger the brush the quicker you will paint.

If you see good code as an art-form, then it is less abut the size of brush, and more what exactly you do with your brushes.

Sorry, this is a bit of a non-answer to the actual question.

3
  • Actually, I'm more interested in the difference between two big brushes. For example, how do we know whether Python will have a better development speed than Lua - or the reverse ? Oct 27, 2010 at 14:56
  • 1
    @Niphra, you don't know. There are far too many imponderables in such a comparison to have their be a valid metric for it. Oct 27, 2010 at 15:14
  • good answer, but only if you ignore the skill of the painter Jan 14, 2011 at 21:14
1

I'm not sure this is relevant, but it is interesting

In The Mythical Man Month, Fred Brooks mentions studies comparing assembly and higher level languages. They found that programmers produced the same amount of instructions per year in both, but the instructions for a high level language were equal to multiple assembly language instructions. So by switching to the high level language, the programmers achieved an increase whatever the average multiple of assembly instruction to language instruction in productivity.

The same should be true of C vs Java/C#, I don't know the real difference between C# and Java. But every time you increase the level of abstraction, you will increase productivity. However I also think that it will reduce control over what the machine is actually doing. You have to trust that the language is doing what you want. For instance in high performance software, garbage collection is unacceptable, except if you have complete control over when it is run, and how long it runs for.

1
  • It would be interesting if there were any studies today that would do this again when comparing high level languages such as node.js and python. May 13, 2018 at 12:29
1

What is productivity? What is product, even? No one knows, mathematically speaking.

KLoC?

Cyclomatic complexity?

Function points?

I believe that you would have to look at the business level and run percentile comparisons with other programmers doing similar work, then measure the features delivered per programmer. Those are very sophisticated and subtle points to be able to statistically measure and retain meaning.

0

Imagine how this would be tested: you need to have some real world project developed independently both repeatedly with the same language (to take away the variability of programmer experience and knowledge) and with different languages (to get some data to compare the languages). Seems to me that the experiment quickly grows to an unmanageable size.

I'd love to hear about ways to "shrink" the experiment, or about attempts to actually perform the experiment as stated.

3
  • Experience is indeed a problem, so I would work with a beginner, or even better, someone knowledgable in an entirely different programming language. As for project size, I guess a very small project would be enough to get results, even if they aren't perfect. Oct 27, 2010 at 15:24
  • Sometimes though, the story goes, a language's "win" only happens past a certain size/complexity. For problems smaller/simpler than that, that language's amazingness isn't evident. So it's said. Oct 27, 2010 at 18:34
  • I would expect that a certain "win" is only past a certain complexity and experience level of the programmer. Measuring with just beginners mostly misses the point. Really using a language well requires language specific experience.
    – kasterma
    Oct 27, 2010 at 20:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.