I am wondering if there are any experiments that show the existence or the non-existence of a correlation between usage of a dynamic language (such as Python, Ruby, or even languages that run on the Java platform such as Groovy, Clojure) over a static language (such as C/C++), and the difference in the productivity.
-
3$\begingroup$ An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program is a good and classic paper covered many some software related aspects (including productivity) in a practical manner. $\endgroup$– reithApr 9, 2012 at 8:29
-
6$\begingroup$ How is Java dynamic? $\endgroup$– svickApr 9, 2012 at 9:29
-
5$\begingroup$ I have trouble perceiving this question as ontopic, but as it asks specifically for experiments it should be fine. Please keep the answers accordingly rigorous. $\endgroup$– Raphael ♦Apr 9, 2012 at 11:25
-
1$\begingroup$ I previously asked this exact question on programmers: programmers.stackexchange.com/questions/10032/…, hopefully you get better answers then I did. $\endgroup$– Winston EwertApr 9, 2012 at 13:52
-
3$\begingroup$ This is the kind of question that researchers should actually be working on. I consider it to be on topic. $\endgroup$– Dave ClarkeApr 10, 2012 at 22:20
2 Answers
While I'm not aware of research on productivity, there's been research on comprehension. Philip Wadler has been collecting links to papers on this topic: see this post and this one.
-
3$\begingroup$ At a glance those all seem to be about functional vs imperative, not static vs. dynamic. $\endgroup$– sepp2kApr 9, 2012 at 12:43
-
$\begingroup$ In addition to seepp2k's comment, Wadler's use of these studies is exactly the dangers of of empirical science: faulty generalizations! $\endgroup$ May 28, 2012 at 8:19
Specifically on productivity, Hanenberg has investigated the impact in development time when the same task was implemented in Java (static) vs Groovy (dynamic). Their results were described in the following paper:
There's also been research on the impact of static/dynamic typing in software maintainability. This is a very recent paper on the subject:
An empirical study on the impact of static typing on software maintainability, 2014
The authors have also published previous work on the same area, including this one (also listed in one of the links that Suresh mentioned):
Do Static Type Systems Improve the Maintainability of Software Systems? An Empirical Study, 2012 (PDF available)
Furthermore, if you intend to pursue this research topic, keep in mind that one of the key problems here is the definition of productivity - and how exactly are you going to measure it.