Abstract
Although static type systems are an essential part in teach-ing and research in software engineering and computer science, there is hardly any knowledge about what the impact of static type systems on the development time or the resulting quality for a piece of software is. On the one hand there are authors that state that static type systems decrease an application's complexity and hence its development time (which means that the quality must be improved since developers have more time left in their projects). On the other hand there are authors that argue that static type systems increase development time (and hence decrease the code quality) since they restrict developers to express themselves in a desired way. This paper presents an empirical study with 49 subjects that studies the impact of a static type system for the development of a parser over 27 hours working time. In the experiments the existence of the static type system has neither a positive nor a negative impact on an application's development time (under the conditions of the experiment).
- }}Bruce, K.: Foundations of Object-Oriented Languages: Types and Semantics, MIT PRESS, 2002 Google Scholar
Digital Library
- }}Cardelli, Luca: Type Systems, In: CRC Handbook of Computer Science and Engineering, 2nd Edition, CRC Press, 1997.Google Scholar
- }}Carver, J; Jaccheri, L.; Morasca, S., Schull, F. Using empirical stud-ies during software courses, Empirical Methods and Studies in Soft-ware Engineering, Experiences from ESERNET, LNCS 2765, Springer, 2003, pp. 81--103.Google Scholar
- }}Conover, W. J.: Practical nonparametric statistics, 3rd edition, John Wiley & Sons, 1998.Google Scholar
- }}Daly, M.; Sazawal, V., Foster, J.: Work in Progress: an Empirical Study of Static Typing in Ruby, Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU) at ON-WARD 2009.Google Scholar
- }}Eckel, B.: Strong Typing vs. Strong Testing, mindview, 2003, http://www.mindview.net/WebLog/log-0025, last access: August 2009Google Scholar
- }}Gannon, J. D.: An Experimental Evaluation of Data Type Conventions, Comm. ACM 20(8), 1977, S. 584--595. Google Scholar
Digital Library
- }}Gat, E.: Lisp as an alternative to Java. Intelligence 11(4): 21--24, 2000. Google Scholar
Digital Library
- }}Graver, J. O.; Johnson, R. E.: A Type System for Smalltalk, Seventeenth Symposium on Principles of Programming Languages, 1990, pp. 136--150 Google Scholar
Digital Library
- }}Hanenberg, S.: Faith, Hope, and Love - A criticism of software science's carelessness with regard to the human factor, To appear in Proceedings of Onward 2010.Google Scholar
- }}Hanenberg, S.: What is the Impact of Type Systems on Programming Time? - Preliminary Empirical Results, Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU) at ONWARD 2009.Google Scholar
- }}Hanenberg, S. Doubts about the Positive Impact of Static Type Systems on Programming Tasks in Single Developer Projects - An Empirical Study, Proceedings of ECOOP 2010, Springer, pp. 300--303. Google Scholar
Digital Library
- }}Hanenberg, S.; Stuchlik, A.: What is the impact of type casts on development time? An empirical study with Java and Groovy, Submitted, 2010.Google Scholar
- }}Hudak, P.; Jones, M.P.: Haskell vs. Ada vs. C++ vs. Awk vs. .. An Experiment in Software Prototyping Productivity, technical report, Dept. of Computer Science, Yale Univ., New Haven, Conn., July 1994.Google Scholar
- }}Juristo, N.; Moreno, A.: Basics of Software Engineering Experimentation, Springer, 2001.Google Scholar
Digital Library
- }}Kitchenham, B. et al.: Preliminary guidelines for empirical research in software engineering, IEEE Transactions on Software Engineering, Volume 28, Issue 8, 2002, pp. 721 -- 734. Google Scholar
Digital Library
- }}Kitchenham, B. et al.: Evaluating guidelines for empirical software engineering studies, International Symposium on Empirical Software Engineering, Rio de Janeiro, Brazil, 2006, pp. 38 -- 47. Google Scholar
Digital Library
- }}Lamport, L.; Paulson, L. C.: Should your specification language be typed, vol. 21, ACM, New York, NY, USA. 1999. Google Scholar
Digital Library
- }}Pierce, B.: Types and Programming Languages, MIT Press, 2002. Google Scholar
Digital Library
- }}Pfleeger, S. L., Experimental Design and Analysis in Software Engineering Part 4: Choosing an Experimental Design, Software Engineering Notes, vol 20, no 3, ACM, 1995 Google Scholar
Digital Library
- }}Prechelt, L.: Kontrollierte Experimente in der Softwaretechnik: Potenzial und Methodik, Springer-Verlag, 2001.Google Scholar
- }}Prechelt, Lutz: An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program. Technical Report 2000-5, March 2000.Google Scholar
- }}Prechelt, L., Tichy W.: A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking, IEEE Transactions on Software Engineering 24(4), 1998, S. 302--312. Google Scholar
Digital Library
- }}Svahnberg, M.; Aurum, A.; Wohlin, C.: Using Students as Subject, Proceedings of the 2nd Symposium on Empirical software engineering and measurement, Kaiserslautern, Germany, pp. 288--290 . Google Scholar
Digital Library
- }}Tichy, W.: Should Computer Scientists Experiment More?, IEEE Computer 31(5): S. 32--40 Google Scholar
Digital Library
- }}Tratt, L., Wuyts, R.: Dynamically Typed Languages. IEEE Software 24(5), 2007, S. 28--30. Google Scholar
Digital Library
- }}Wohlin, C., Runeson, P., Höst, M.: Experimentation in Software Engineering: An Introduction, Springer, 1999 Google Scholar
Digital Library
Index Terms
An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time
Recommendations
An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsAlthough static type systems are an essential part in teach-ing and research in software engineering and computer science, there is hardly any knowledge about what the impact of static type systems on the development time or the resulting quality for a ...
Static vs. dynamic type systems: an empirical study about the relationship between type casts and development time
DLS '11Static type systems are essential in computer science. However, there is hardly any knowledge about the impact of type systems on the resulting piece of software. While there are authors that state that static types increase the development speed, other ...
Static vs. dynamic type systems: an empirical study about the relationship between type casts and development time
DLS '11: Proceedings of the 7th symposium on Dynamic languagesStatic type systems are essential in computer science. However, there is hardly any knowledge about the impact of type systems on the resulting piece of software. While there are authors that state that static types increase the development speed, other ...







Comments