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 2010 Publication History

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

Cited By

View all
  • (2024)Programming languages ranking based on energy measurementsSoftware Quality Journal10.1007/s11219-024-09690-4Online publication date: 27-Jul-2024
  • (2022)An Empirical Study of Type-Related Defects in Python ProjectsIEEE Transactions on Software Engineering10.1109/TSE.2021.308206848:8(3145-3158)Online publication date: 1-Aug-2022
  • (2021)A Study of Bug Resolution Characteristics in Popular Programming LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.296189747:12(2684-2697)Online publication date: 1-Dec-2021
  • Show More Cited By

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

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 10
    OOPSLA '10
    October 2010
    957 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1932682
    Issue’s Table of Contents
    • cover image ACM Conferences
      OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
      October 2010
      984 pages
      ISBN:9781450302036
      DOI:10.1145/1869459
    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: 17 October 2010
    Published in SIGPLAN Volume 45, Issue 10

    Check for updates

    Author Tags

    1. dynamically typed languages
    2. empirical study
    3. programming languages
    4. type systems

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)117
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 09 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Programming languages ranking based on energy measurementsSoftware Quality Journal10.1007/s11219-024-09690-4Online publication date: 27-Jul-2024
    • (2022)An Empirical Study of Type-Related Defects in Python ProjectsIEEE Transactions on Software Engineering10.1109/TSE.2021.308206848:8(3145-3158)Online publication date: 1-Aug-2022
    • (2021)A Study of Bug Resolution Characteristics in Popular Programming LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.296189747:12(2684-2697)Online publication date: 1-Dec-2021
    • (2018)What Programming Languages Do Developers Use? A Theory of Static vs Dynamic Language Choice2018 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VLHCC.2018.8506534(239-247)Online publication date: Oct-2018
    • (2017)To type or not to typeProceedings of the 39th International Conference on Software Engineering10.1109/ICSE.2017.75(758-769)Online publication date: 20-May-2017
    • (2017)Exploiting type hints in method argument names to improve lightweight type inferenceProceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.33(77-87)Online publication date: 20-May-2017
    • (2017)Empirical, Human-Centered Evaluation of Programming and Programming Language Constructs: Controlled ExperimentsGrand Timely Topics in Software Engineering10.1007/978-3-319-60074-1_3(45-72)Online publication date: 29-Jun-2017
    • (2016)Discount method for programming language evaluationProceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools10.1145/3001878.3001879(1-8)Online publication date: 1-Nov-2016
    • (2016)Inferring Types by Mining Class Usage Frequency from Inline CachesProceedings of the 11th edition of the International Workshop on Smalltalk Technologies10.1145/2991041.2991047(1-11)Online publication date: 23-Aug-2016
    • (2016)Exploring cheap type inference heuristics in dynamically typed languagesProceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/2986012.2986017(43-56)Online publication date: 20-Oct-2016
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media