25
$\begingroup$

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.

$\endgroup$
7
  • 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$
    – reith
    Apr 9, 2012 at 8:29
  • 6
    $\begingroup$ How is Java dynamic? $\endgroup$
    – svick
    Apr 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$ Apr 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$ Apr 10, 2012 at 22:20

2 Answers 2

11
$\begingroup$

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.

$\endgroup$
2
  • 3
    $\begingroup$ At a glance those all seem to be about functional vs imperative, not static vs. dynamic. $\endgroup$
    – sepp2k
    Apr 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$
    – Uday Reddy
    May 28, 2012 at 8:19
8
$\begingroup$

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:

Static vs. dynamic type systems: an empirical study about the relationship between type casts and development time, 2011.

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.

$\endgroup$

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.