skip to main content
research-article

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

Published:24 October 2011Publication History
Skip Abstract Section

Abstract

Static 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 authors argue the other way around. A previous experiment suggests that there are multiple factors that play a role for a comparison of statically and dynamically typed language. As a follow-up, this paper presents an empirical study with 21 subjects that compares programming tasks performed in Java and Groovy - programming tasks where the number of expected type casts vary in the statically typed language. The result of the study is, that the dynamically typed group solved the complete programming tasks significantly faster for most tasks - but that for larger tasks with a higher number of type casts no significant difference could be found.

References

  1. Jürgen Bortz. Statistik: für Human- und Sozialwissenschaftler. Springer, 6., vollst. überarb. u. aktualisierte aufl. edition, September 2005.Google ScholarGoogle Scholar
  2. Ruven E. Brooks. Studying programmer behavior experimentally: the problems of proper methodology. Commun. ACM, 23:207--213, April 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Kim B. Bruce. Foundations of object-oriented languages: types and semantics. MIT Press, Cambridge, MA, USA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Luca Cardelli. Type systems. In Allen B. Tucker, editor, The Computer Science and Engineering Handbook, chapter 103, pages 2208--2236. CRC Press, 1997.Google ScholarGoogle Scholar
  5. B. Curtis. Five paradigms in the psychology of programming. In M. Helander, editor, Handbook of Human-Computer Interaction, pages 87--106. Elsevier (North-Holland), 1988.Google ScholarGoogle ScholarCross RefCross Ref
  6. Mark T. Daly, Vibha Sazawal, and Jeffrey S. Foster. Work in progress: an empirical study of static typing in ruby. Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), Orlando, Florida, October 2009, 2009.Google ScholarGoogle Scholar
  7. Steve M. Easterbrook, J. Singer, M. Storey, and D. Damian. Selecting empirical methods for software engineering research. In F. Shull, J. Singer, and D. Sjøberg, editors, Guide to Advanced Empirical Software Engineering. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. D. Gannon. An experimental evaluation of data type conventions. Commun. ACM, 20(8):584--595, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Stefan Hanenberg. Doubts about the positive impact of static type systems on programming tasks in single developer projects - an empirical study. In ECOOP 2010 - Object-Oriented Programming, 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings, LNCS 6183, pages 300--303. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Stefan Hanenberg. An experiment about static and dynamic type systems: Doubts about the positive impact of static type systems on development time. In Proceedings of the ACM international conference on Object oriented programming systems languages and applications, OOPSLA '10, pages 22--35, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Stefan Hanenberg. A chronological experience report from an initial experiment series on static type systems. In 2nd Workshop on Empirical Evaluation of Software Composition Techniques (ESCOT), Lancaster, UK, 2011.Google ScholarGoogle Scholar
  12. Stefan Hanenberg, Sebastian Kleinschmager, and Manuel Josupeit-Walter. Does aspect-oriented programming increase the development speed for crosscutting code? an empirical study. In Proceedings of Empirical Software Engineering and Measurement, pages 156--167, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Martin Höst, Björn Regnell, and Claes Wohlin. Using students as subjects - a comparative study of students and professionals in lead-time impact assessment. Empirical Softw. Engg., 5(3):201--214, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Natalie Juristo and Ana M. Moreno. Basics of Software Engineering Experimentation. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Barbara Kitchenham, Hiyam Al-Khilidar, Muhammad Ali Babar, Mike Berry, Karl Cox, Jacky Keung, Felicia Kurniawati, Mark Staples, He Zhang, and Liming Zhu. Evaluating guidelines for empirical software engineering studies. In ISESE '06: Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, pages 38--47, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Leslie Lamport and Lawrence C. Paulson. Should your specification language be typed. ACM Trans. Program. Lang. Syst., 21(3):502--526, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Clemens Mayer, Stefan Hanenberg, Romain Robbes, and Eric Tanter. An experiment about the impact of static type systems for the use of undocumented apis - unpublished work in progress. 2011.Google ScholarGoogle Scholar
  18. Benjamin C. Pierce. Types and programming languages. MIT Press, Cambridge, MA, USA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Lutz Prechelt. Kontrollierte Experimente in der Softwaretechnik. Springer, Berlin, March 2001.Google ScholarGoogle ScholarCross RefCross Ref
  20. Lutz Prechelt and Walter F. Tichy. A controlled experiment to assess the benefits of procedure argument type checking. IEEE Trans. Softw. Eng., 24(4):302--312, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Marvin Steinberg and Stefan Hanenberg. What is the impact of static type systems on debugging type errors and semantic errors? an empirical study of differences in debugging time using statically and dynamically typed languages - unpublished work in progress.Google ScholarGoogle Scholar
  22. Laurence Tratt and Roel Wuyts. Guest editors' introduction: Dynamically typed languages. IEEE Software, 24(5):28--30, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Walter Bruce Walsh and Nancy E. Betz. Tests and Assessment. Prentice-Hall, Harlow, England, 2. edition, 1995.Google ScholarGoogle Scholar
  24. Claes Wohlin, Per Runeson, Martin Höst, Magnus C. Ohlsson, Bjöorn Regnell, and Anders Wesslán. Experimentation in software engineering: an introduction. Kluwer Academic Publishers, Norwell, MA, USA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static vs. dynamic type systems: an empirical study about the relationship between type casts and 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

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 47, Issue 2
      DLS '11
      February 2012
      103 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2168696
      Issue’s Table of Contents
      • cover image ACM Conferences
        DLS '11: Proceedings of the 7th symposium on Dynamic languages
        October 2011
        114 pages
        ISBN:9781450309394
        DOI:10.1145/2047849
        • General Chair:
        • Theo D'Hondt

      Copyright © 2011 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 October 2011

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader