Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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# ?

share|improve this question
    
See programmers.stackexchange.com/questions/10032 (but note that I don't claim this is a duplicate). –  Frank Shearar Oct 27 '10 at 18:33
    
This is really interesting, thank you ! Some of the links are actually exactly what I was looking for. –  Niphra Oct 27 '10 at 21:00
    
Have a look at this thread: stackoverflow.com/questions/1894453/… –  ChristopheD Oct 27 '10 at 22:01

5 Answers 5

up vote 5 down vote accepted

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.

share|improve this answer

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.

share|improve this answer
    
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 ? –  Niphra Oct 27 '10 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. –  Adam Crossland Oct 27 '10 at 15:14
    
good answer, but only if you ignore the skill of the painter –  Steven A. Lowe Jan 14 '11 at 21:14

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.

share|improve this answer

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.

share|improve this answer
    
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. –  Niphra Oct 27 '10 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. –  Frank Shearar Oct 27 '10 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 '10 at 20:21

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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