3 ms·
What do you think about this study that compared task completion in java and groovy from which I will paste the conclusion. > Conclusion This paper described a
by michaelmrose 6y ago
What do you think about this study that compared task completion in java and groovy from which I will paste the conclusion.
> Conclusion
This paper described an experiment comparing static and dy-
namic type systems for programming tasks in an undocu-
mented API. We gave 27 subjects five programming tasks
and found that the type systems had a significant impact on
the development time: for three of five tasks me measured a
positive impact of the static type system, for two tasks we
measured a positive impact of the dynamic type system.
Based on the previous discussion, our overall conclusions
for the use of static/dynamic type systems in undocumented
APIs are the following:
1. There is no simple answer to the static vs. dynamic
typing question: The question of whether or not static
types are helpful for developers cannot be generally an-
swered without taking the programming tasks into ac-
count. In fact, this is completely consistent with the
results of previous experiments, such as Prechelt and
Tichy’s [22], or our own experiments[10, 28].
2. The type system has an influence on the development
time: The choice of the static or dynamic type system had
an influence on the development time for all program-
ming tasks in the experiment. Again, this is consistent
with previous experiments (such as [11, 22, 28]).
3. Dynamic type systems potentially reduce develop-
ment times for easier tasks: Although we are currently
not aware of how to determine exactly what “easy” and
“hard” means, it seems that if a dynamic type systems
has a positive impact, it is for easier tasks (which is
consistent with the experiments described in [10, 28]).
Although there was one counter example in the experi-
ment (task 1), we think that the result for this task is a
consequence of the chosen subjects’ low familiarity with
the dynamic language, Groovy (despite the presence of a
warmup task).
4. Static type systems reduce development times if
(a) the type annotations explicitely document design de-
cisions, or
(b) the number of classes to identify in the programming
tasks is relatively high.
https://www.researchgate.net/publication/262317340_An_empirical_study_of_the_influence_of_static_type_systems_on_the_usability_of_undocumented_software https://www.researchgate.net/publication/262317340_An_empiri...
Given the challenges to getting a good result identified in the study how do you think it could have been done better today?
- luord 6y agoYup, that conclusion, specially number one, is pretty much a formal detailing of what I tried to say in my previous comment: Results inconclusive, depends on the task, etc. And, of course there are exceptions in both directions for all of findings 2, 3 and 4; and those exceptions would also contribute to 1. It's for findings like those that I wish people stopped treating type systems like religions. And paradigms, for that matter.