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.


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$ – sepp2k Apr 9 '12 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 '12 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:

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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