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'm not sure if I'm using the right terms, but with productivity I mean the concept of transforming an idea/design in actual software.

share|improve this question
add comment

5 Answers

up vote 6 down vote accepted

Google "Capers Jones". At this point, I don't even remember the name of his book I read, but it was fantastic. The man has been doing statistical studies of software projects for decades, with the idea of predicting how long a new project would take. He was interested in big-company projects, and would not have been able to collect statistics from any other type anyway. But the results--for instance, the effect of programmers having individual offices with doors that close--would apply to any development. His work might be a bit dated now (or it might not), but he had a lot of hard, precise answers to questions that seemed unanswerable, and both his answers and his techniques were always interesting and often useful.

share|improve this answer
3  
This is the book(Applied Software Measurement: Global Analysis of Productivity and Quality) : amazon.com/Applied-Software-Measurement-Analysis-Productivity/… –  java_mouse Jun 18 '12 at 15:24
add comment

You could look at this graphs it put into perspective the number of line and the speed of languages.

http://blog.gmarceau.qc.ca/2009/05/speed-size-and-dependability-of.html

This illustrate what you are searching for as all these languages are tested against the same set of problems and plotted against there respective performances. Mean the language that is efficient (as number of line of code against any problem).

In a more realistic approach don't forget that you have to learn these language! Also the time spend to optimize C and the time spend to try to optimize Scala is not the same at all, and I am not even trying to talk about readability.

share|improve this answer
2  
These graphs merely illustrate two dimensions (code size and performance). It's easy to find many more relevant dimensions, such as maintainability, readability and availability of libraries, to name a few. –  Dibbeke Jun 18 '12 at 9:55
add comment

This will be a tough one to determine. If Programmer productivity means an individual writing codes with an task/objective in mind, then the productivity can be determined by various factors such as the outcome, oversights, bugs etc. Programs such as six sigma can be extended to compare and study these productivity matrix.

share|improve this answer
add comment

If I've got your question right, I think you're asking for studies along the lines of:

Are programmers in language X more productive than programmers in language Y.

Now, I don't know of any studies, but I think the question itself has a number of different aspects:

  1. Problem domain: Is programming language X better at these types of problems than programming language Y (eg. Perl may be better for a text processing problem than, say, Prolog) Some programming langauges have been specifically developed to solve problems in a particular domain.

  2. Scalability: Is programming language X better than Y in terms of scaling the solution. Producing a Windows Forms application in VB that connects to local db may be very quick, but what about scaling this to use web services or producing UIs for other environments?

  3. Environments: You mentioned environments in your question, and this can be an important factor in programmer efficiency. A programmer producing C# in Notepad will be less productive than one in Visual Studio, who will (most probably) be less productive than one with Visual Studio + Resharper.

  4. Collaboration: Programmers don't work in isolation - does programming language X encourage/enable collaboration more than programming language Y? This can be down to project structure, ability to define interfaces etc. If, for example, you are writing software that requires a complex UI, can this be handled seperately by a designer, or is UI logic tightly bound to the code?

There are more than likely other aspects to productivity, but programmers mostly stick to what they know, and companies employ people to program in specific languages (advert will be for "Java developer", not "Software developer who can write a transaction processor to run at 10000 transactions an hour"). See also Blub Languages for an observation on this.

So this does not answer your question relating to studies into productivity, but hopefully it highlights some of the factors which will influence perceived productivity. Language vendors will tend to say "our tool is the most productive", but the above points should also be considered.

share|improve this answer
add comment

Are you willing to fire your current developers and hire new ones? An expert at language X will always be better than a rookie at language X. IF you decide to base the language choice on productivity of the language you may be overlooking several key items:

  • Is the language appropriate for the problem set. I don't want to write a content management system from scratch in language X when word press and some php code will solve the problem.
  • How long does it take to achieve some level of expertise. If that can't be found in the schedule and budget for the project you will need to hire expert developers.
  • What hardware and IDE changes will be needed. If the selected language isn't available in Visual Studio and that is what everybody in the company uses, you will need to buy more software. May need to switch to UNIX.
  • In a large corporation they can limit hardware, software, and language choices because they want consistency across the company. To get a waiver will take time.
share|improve this answer
add comment

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.