skip to main content
research-article

An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time

Published:17 October 2010Publication History
Skip Abstract Section

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).

References

  1. }}Bruce, K.: Foundations of Object-Oriented Languages: Types and Semantics, MIT PRESS, 2002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}Cardelli, Luca: Type Systems, In: CRC Handbook of Computer Science and Engineering, 2nd Edition, CRC Press, 1997.Google ScholarGoogle Scholar
  3. }}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 ScholarGoogle Scholar
  4. }}Conover, W. J.: Practical nonparametric statistics, 3rd edition, John Wiley & Sons, 1998.Google ScholarGoogle Scholar
  5. }}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 ScholarGoogle Scholar
  6. }}Eckel, B.: Strong Typing vs. Strong Testing, mindview, 2003, http://www.mindview.net/WebLog/log-0025, last access: August 2009Google ScholarGoogle Scholar
  7. }}Gannon, J. D.: An Experimental Evaluation of Data Type Conventions, Comm. ACM 20(8), 1977, S. 584--595. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}Gat, E.: Lisp as an alternative to Java. Intelligence 11(4): 21--24, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}Graver, J. O.; Johnson, R. E.: A Type System for Smalltalk, Seventeenth Symposium on Principles of Programming Languages, 1990, pp. 136--150 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}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 ScholarGoogle Scholar
  11. }}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 ScholarGoogle Scholar
  12. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}Hanenberg, S.; Stuchlik, A.: What is the impact of type casts on development time? An empirical study with Java and Groovy, Submitted, 2010.Google ScholarGoogle Scholar
  14. }}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 ScholarGoogle Scholar
  15. }}Juristo, N.; Moreno, A.: Basics of Software Engineering Experimentation, Springer, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}Lamport, L.; Paulson, L. C.: Should your specification language be typed, vol. 21, ACM, New York, NY, USA. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}Pierce, B.: Types and Programming Languages, MIT Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}Prechelt, L.: Kontrollierte Experimente in der Softwaretechnik: Potenzial und Methodik, Springer-Verlag, 2001.Google ScholarGoogle Scholar
  22. }}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 ScholarGoogle Scholar
  23. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}Tichy, W.: Should Computer Scientists Experiment More?, IEEE Computer 31(5): S. 32--40 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}Tratt, L., Wuyts, R.: Dynamically Typed Languages. IEEE Software 24(5), 2007, S. 28--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}Wohlin, C., Runeson, P., Höst, M.: Experimentation in Software Engineering: An Introduction, Springer, 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!