views:

318

answers:

9

While debating which platform to use for what applications (specifically we debated c++, java, c# and f#) we tried finding scientific quality research on productivity (cost of ownership really) of similar applications build on various platforms/using the above mentioned languages. Any one know of such research?

EDIT: I see several have commented that the requested kind of research does not exist/cannot be executed. So I thought I'd clarified, since the kind of research I'm asking for is executable (and I know I've read one survey already but forgotten the source)

I'm not asking for a study that gives conclusion on what platform/language that would be the most productive "hammer" for any "nail". I'm asking for reasearch that given a set of precodition (as all research have) e.g. kind of HW platform, kind of application with comparable competencies in the staff, investigates on the tools (specifically language) and their impact on productivity. I'm not trying to start a religious war, that's why I'm not asking for peoples opinions but scientific quality research :)

A: 

I doubt you'll find conclusive research at that level.

Productivity and costs have a lot of factors including but not limited to your developers, the cost/ability of new developers on those platforms, the systems already in place, and other factors that are localized to your business.

It's not a problem for researchers its one for managers.

Freiheit
as long as those factors are stated as precondition I'm ok with that and I'm thinking of two differrent teams of equal compentancies in different technologies. E.g team a is c++ devs and team b is java devs
Rune FS
And how possibly could someone determine scientifically that two teams have equal competencies?
Stephen C
+1  A: 

Been there, done that. This is the stuff religious wars are made of (in some places) ;-)

I doubt very much you will be able to come to a conclusive decision no matter how well you research the subject. All of the "platforms" you mention above have a lot of qualities and in the end, whichever direction you go, you'll have to compromise.

Don't exclude the option of using several different platforms depending on the circumstances (e.g. in one particular context I've regularly used C++ together with Java). There are many ways to skin a cat and interoperability is not by definition unmanageable.

Seventh Element
I'm not looking for a research study that encompasses every possible combination of staff competancies, platforms application types etc. I'm looking for research for any specific setup basically
Rune FS
A: 

Scientific research? I do not think so either. These would come from experience and FUD over the internet. Also, every vendor (IBM, M$,Oracle..) would have their own story of productivity based on their "reasearch". You may find something useful at PWC research site PWC innovation technology

ring bearer
A: 

I'm of the opinion that if it's purely productivity you're after, a team of application developers working in C++ will be less successful than a team working in C# or Java. Why: memory management, memory leaks, time consuming pointer errors, nasty bugs and crashes that have to be fixed, etc. I'm not even gonna say something about F# (is there a community of F# developers your programmers can turn to?). So, there, I've narrowed your selection down to either Java or C#. And that's as far as I'll go.

Seventh Element
I'm not trying to narrow down a selection :) I'm trying to support a potential decision with scientific material. We can all have our hunches but that's the fuel for religious wars and this question was partly motivated to end one :p
Rune FS
A: 

Productivity gains are dependent on application at hand. For a particular application there are clearly fits and misfits in using different programming languages or patterns. For example, using Object-oriented code instead of procedural code has clear productivity gains for a large software.Similarly, there are several patterns/anti-patterns for different applications. Scripting languages have clear programmer productivity benefit. I found this article which compares some of the programming languages for different tasks.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.2977&rep=rep1&type=pdf

sushant
A: 

Not directly research literature but still interesting is the translation between function points and the number of code lines. This could give some idea behind the amount of work needed for the implementation of a single function point.

http://www.qsm.com/?q=resources/function-point-languages-table/index.html

kalkie
+2  A: 

Here's a C++ vs Java study.

Here's a semi-scientific study of Python/Django vs. C#.

And here's one on Java vs. C# vs. Ada.

Whatever languages you're interested in comparing, do a Google search for

study of [LanguageX] vs [LanguageY]

and see what you can glean.

But I agree with most everyone else that as long as you're in the right ballpark with your language selection, the rest of your productivity rests with the quality of your tools and people, not with whether you choose Perl or Python.

John at CashCommons
+2  A: 

This isn't science, but it's based on 28 years in the business, observing and participating in teams which used a huge array of technologies, from assembly up through a long list of higher-level languages, plus of course a litany of methodological silver-bullet-du-jours:

What really affects productivity is your people - specifically, how good they are, and how well led they are.

So if you're trying to pick a language or other technology, go for the one with which more of your team is competent. If that's a tossup, or if it's truly green-field, hire the best people you can find, and then pick the tech best supported by the vendors whose tech you'll be dependent on... or toss a coin.

CPerkins
I agree with you that the ppl are more important than the language. The question is a comparison of languages not productivity factors in general. Would it one Day come Down to a real choice for me i would be in the fortunate situation that i could choose teams of equal strength in Java, C# and C/C++
Rune FS
@Rune I understand your question, and I sympathize with your desire to avoid religious wars. Personally, I dropped out of such debates long ago, and now I look for people who are, as Joel would say "Smart And Get Things Done".
CPerkins
+2  A: 

You have the answer to this question on your project already.

Take each of the languages you are interested in and ask each individual to rate themselves in that language from 1 to 5, with 1 being a novice and 5 being an expert in said language. Then tally up each language, whichever language has the highest level is the most productive language for your group.

If you are making a web app, strongly consider Ruby. If you are making a thick client, strongly consider C#. If you are just trying to make money consulting, use Java.

Sixty4Bit
Im not trying to figure out what tech to use for my group. Im trying to be Well informed of when to go with what technologi.
Rune FS
You should really add this comment to your question. It changes the nature of the answer drastically. Basically two of the answers given wouldn't have been given if you had stated it this way in the question. Interesting discussion though.
Sixty4Bit