Abstract
Recent empirical studies that compared static and dynamic type systems on API usability showed a positive impact of static type systems on developer productivity in most cases. Nevertheless, it is unclear how large this effect is in comparison to other factors. One obvious factor in programming is tooling: It is commonly accepted that modern IDEs have a large positive impact on developers, although it is not clear which parts of modern IDEs are responsible for that. One possible---and for most developers obvious candidate---is code completion. This paper describes a 2x2 randomized trial that compares JavaScript and Microsoft's statically typed alternative TypeScript with and without code completion in MS Visual Studio. While the experiment shows (in correspondence to previous experiments) a large positive effect of the statically typed language TypeScript, the code completion effect is not only marginal, but also just approaching statistical significance. This seems to be an indicator that the effect of static type systems is larger than often assumed, at least in comparison to code completion.
- Christopher Anderson, Paola Giannini, and Sophia Drossopoulou. Towards type inference for javascript. In ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings, pages 428–452, 2005. Google Scholar
Digital Library
- 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, October 2009, 2009.Google Scholar
- Susan A. Dart, Robert J. Ellison, Peter H. Feiler, and A. Nico Habermann. Software development environments. Computer, 20(11):18–28, November 1987. Google Scholar
Digital Library
- Stefan Endrikat, Stefan Hanenberg, Romain Robbes, and Andreas Stefik. How do API documentation and static typing affect API usability? In 36th International Conference on Software Engineering, ICSE ’14, Hyderabad, India - May 31 - June 07, 2014, pages 632–642, 2014. Google Scholar
Digital Library
- J. D. Gannon. An experimental evaluation of data type conventions. Commun. ACM, 20(8):584–595, 1977. Google Scholar
Digital Library
- 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, pages 22–35, New York, NY, USA, 2010. ACM. Google Scholar
Digital Library
- Stefan Hanenberg. Faith, hope, and love: An essay on software science’s neglect of human factors. In Proceedings of the ACM international conference on Object oriented programming systems languages and applications, OOPSLA ’10, pages 933–946, Reno/Tahoe, Nevada, USA, October 2010. Google Scholar
Digital Library
- Stefan Hanenberg, Sebastian Kleinschmager, Romain Robbes, Éric Tanter, and Andreas Stefik. An empirical study on the impact of static typing on software maintainability. Empirical Software Engineering, 19(5):1335–1382, 2014. Google Scholar
Digital Library
- Daqing Hou and David M. Pletcher. An evaluation of the strategies of sorting, filtering, and grouping api methods for code completion. In Proceedings of ICSM 2011, pages 233– 242, 2011. Google Scholar
Digital Library
- Sebastian Kleinschmager, Stefan Hanenberg, Romain Robbes, Éric Tanter, and Andreas Stefik. Do static type systems improve the maintainability of software systems? An empirical study. In IEEE 20th International Conference on Program Comprehension, ICPC 2012, Passau, Germany, June 11-13, pages 153–162, 2012.Google Scholar
Cross Ref
- Clemens Mayer, Stefan Hanenberg, Romain Robbes, Éric Tanter, and Andreas Stefik. An empirical study of the influence of static type systems on the usability of undocumented software. In Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012, part of SPLASH 2012, Tucson, AZ, USA, October 21-25, 2012, pages 683–702. ACM, 2012. Google Scholar
Digital Library
- Gail C. Murphy, Mik Kersten, and Leah Findlater. How are java software developers using the eclipse IDE? IEEE Software, 23(4):76–83, 2006. Google Scholar
Digital Library
- Anh Tuan Nguyen, Tung Thanh Nguyen, Hoan Anh Nguyen, Ahmed Tamrawi, Hung Viet Nguyen, Jafar M. Al-Kofahi, and Tien N. Nguyen. Graph-based pattern-oriented, contextsensitive source code completion. In Proceedings of ICSE 2012, pages 69–79, 2012. Google Scholar
Digital Library
- Sebastian Okon and Stefan Hanenberg. Can we enforce a benefit for dynamically typed languages in comparison to statically typed ones? a controlled experiment. In submitted, 2015.Google Scholar
- Cyrus Omar, YoungSeok Yoon, Thomas D. LaToza, and Brad A. Myers. Active code completion. In Proceedings of ICSE 2012, pages 859–869, 2012. Google Scholar
Digital Library
- Jens Palsberg and Michael I. Schwartzbach. Object-oriented type inference. SIGPLAN Not., 26(11):146–161, November 1991. Google Scholar
Digital Library
- Pujan Petersen, Stefan Hanenberg, and Romain Robbes. An empirical comparison of static and dynamic type systems on API usage in the presence of an IDE: java vs. groovy with eclipse. In 22nd International Conference on Program Comprehension, ICPC 2014, Hyderabad, India, June 2-3, 2014, pages 212–222, 2014. Google Scholar
Digital Library
- Benjamin C. Pierce. Types and programming languages. MIT Press, Cambridge, MA, USA, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Romain Robbes and Michele Lanza. Improving code completion with program history. Autom. Softw. Eng., 17(2):181–212, 2010. Google Scholar
Digital Library
- S.S. Senn. Cross-over Trials in Clinical Research. Statistics in Practice. Wiley, 1993.Google Scholar
- Carlos Souza and Eduardo Figueiredo. How do programmers use optional typing?: An empirical study. In Proceedings of the 13th International Conference on Modularity, MODULARITY ’14, pages 109–120, New York, NY, USA, 2014. ACM. Google Scholar
Digital Library
- Samuel Spiza and Stefan Hanenberg. Type names without static type checking already improve the usability of apis (as long as the type names are correct): An empirical study. In Proceedings of the 13th International Conference on Modularity, MODULARITY ’14, pages 99–108, New York, NY, USA, 2014. ACM. Google Scholar
Digital Library
- Andreas Stefik and Stefan Hanenberg. The programming language wars: Questions and responsibilities for the programming language community. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2014, pages 283––299, New York, NY, USA, 2014. ACM. Google Scholar
Digital Library
- Andreas Stuchlik and Stefan Hanenberg. Static vs. dynamic type systems: An empirical study about the relationship between type casts and development time. In Proceedings of the 7th symposium on Dynamic languages, DLS ’11, pages 97– 106, Portland, Oregon, USA, 2011. ACM. Google Scholar
Digital Library
- Peter Thiemann. Towards a type system for analyzing javascript programs. In Programming Languages and Systems, 14th European Symposium on Programming,ESOP 2005, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2005, Edinburgh, UK, April 4-8, 2005, Proceedings, pages 408–422, 2005. Google Scholar
Digital Library
- Walter F. Tichy. Should computer scientists experiment more? IEEE Computer, 31:32–40, 1998. Google Scholar
Digital Library
- Walter F. Tichy, Paul Lukowicz, Lutz Prechelt, and Ernst A. Heinz. Experimental evaluation in computer science: A quantitative study. Journal of Systems and Software, 28(1):9–18, 1995. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
An empirical investigation of the effects of type systems and code completion on API usability using TypeScript and JavaScript in MS visual studio
Recommendations
An empirical investigation of the effects of type systems and code completion on API usability using TypeScript and JavaScript in MS visual studio
DLS 2015: Proceedings of the 11th Symposium on Dynamic LanguagesRecent empirical studies that compared static and dynamic type systems on API usability showed a positive impact of static type systems on developer productivity in most cases. Nevertheless, it is unclear how large this effect is in comparison to other ...






Comments