ABSTRACT
Some programming languages become widely popular while others fail to grow beyond their niche or disappear altogether. This paper uses survey methodology to identify the factors that lead to language adoption. We analyze large datasets, including over 200,000 SourceForge projects, 590,000 projects tracked by Ohloh, and multiple surveys of 1,000-13,000 programmers.
We report several prominent findings. First, language adoption follows a power law; a small number of languages account for most language use, but the programming market supports many languages with niche user bases. Second, intrinsic features have only secondary importance in adoption. Open source libraries, existing code, and experience strongly influence developers when selecting a language for a project. Language features such as performance, reliability, and simple semantics do not. Third, developers will steadily learn and forget languages. The overall number of languages developers are familiar with is independent of age. Finally, when considering intrinsic aspects of languages, developers prioritize expressivity over correctness. They perceive static types as primarily helping with the latter, hence partly explaining the popularity of dynamic languages.
- Ohloh, the open source network. http://ohloh.net.Google Scholar
- Sourceforge. http://sourceforge.net.Google Scholar
- Tiobe index. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.Google Scholar
- R. Agarwal and J. Prasad. A Field Study of the Adoption of Software Process Innovations by Information Systems Professionals. IEEE Trans. Engr. Management, 47(3), 2000.Google Scholar
- Y. Chen, R. Dios, A. Mili, L. Wu, and K. Wang. An empirical study of programming language trends. IEEE Software, 22:72--78, May 2005. Google ScholarDigital Library
- R. Dattero and S. D. Galup. Programming languages and gender. Communications of the ACM, 47(1):99--102, 2004. Google ScholarDigital Library
- F. D. Davis, R. P. Bagozzi, and P. R. Warshaw. User acceptance of computer technology: a comparison of two theoretical models. Management science, 35(8):982--1003, 1989. Google ScholarDigital Library
- M. E. Glickman. Parameter estimation in large dynamic paired comparison experiments. Journal of the Royal Statistical Society: Series C (Applied Statistics), 48(3):377--394, 1999.Google Scholar
- S. 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), 2010. Google ScholarDigital Library
- B. C. Hardgrave and R. A. Johnson. Toward an information systems development acceptance model: the case of object-oriented systems development. IEEE Trans. Engr. Management, 50(3), 2003.Google Scholar
- Q. Hardy. Technology workers are young (really young). http://bits.blogs.nytimes.com/2013/07/05/technology-workers-are-young-really-young/, 2013.Google Scholar
- S. Karus and H. Gall. A study of language usage evolution in open source software. In Proceedings of the 8th Working Conference on Mining Software Repositories (MSR), 2011. Google ScholarDigital Library
- D. R. MacIver. The hammer principle. http://hammerprinciple.com/therighttool, 2010.Google Scholar
- L. A. Meyerovich and A. Rabkin. How not to survey developers and repositories: experiences analyzing language adoption. In Workshop on Evaluation and usability of programming languages and tools (PLATEAU), 2012. Google ScholarDigital Library
- L. A. Meyerovich and A. Rabkin. Socio-PLT: Principles for programming language adoption. In Onward!, 2012. Google ScholarDigital Library
- F. Morandat, B. Hill, L. Osvald, and J. Vitek. Evaluating the design of the R language. In European Conference on Object-Oriented Programming (ECOOP), 2012. Google ScholarDigital Library
- S. Okur and D. Dig. How do developers use parallel libraries? In Foundations of Software Engineering (FSE), 2012. Google ScholarDigital Library
- C. Parnin, C. Bird, and E. Murphy-Hill. Java generics adoption: how new features are introduced, championed, or ignored. In Proceedings of the 8th Working Conference on Mining Software Repositories (MSR), 2011. Google ScholarDigital Library
- D. Patitucci. Gender and programming language preferences of computer programming students at moraine valley community college. Master of Science, Old Dominion University, 2005.Google Scholar
- G. Richards, C. Hammer, B. Burg, and J. Vitek. The eval that men do: A large-scale study of the use of eval in JavaScript applications. In European Conference on Object-Oriented Programming (ECOOP), 2011. Google ScholarDigital Library
- C. K. Riemenschneider, B. C. Hardgrave, and F. D. Davis. Explaining software developer acceptance of methodologies: A comparison of five theoretical models. IEEE Trans. Software Eng., 28, 2002. Google ScholarDigital Library
- E. Rogers. Diffusion of innovations. Free Press., New York, NY, 1995.Google Scholar
- C. Scaffidi, M. Shaw, and B. Myers. Estimating the numbers of end users and end user programmers. In IEEE Symposium on Visual Languages and Human-Centric Computing, pages 207--214, 2005. Google ScholarDigital Library
- S. Sutton. Predicting and explaining intentions and behavior: How well are we doing? Journal of Applied Social Psychology, 28(15):1317--1338, 2006.Google ScholarCross Ref
- V. Venkatesh, M. G. Morris, G. B. Davis, and F. D. Davis. User acceptance of information technology: Toward a unified view. MIS quarterly, pages 425--478, 2003. Google ScholarDigital Library
Index Terms
- Empirical analysis of programming language adoption
Recommendations
Empirical analysis of programming language adoption
OOPSLA '13Some programming languages become widely popular while others fail to grow beyond their niche or disappear altogether. This paper uses survey methodology to identify the factors that lead to language adoption. We analyze large datasets, including over ...
Experiences with a simple structured programming language
SIGCSE '74: Proceedings of the fourth SIGCSE technical symposium on Computer science educationA great deal of interest has developed in structured programming [Dahl, Dijkstra, and Hoare, 1972] during the past few years. This paper is concerned with some experiences obtained in the use of a structured programming language in the computer science ...
An empirical investigation of mobile banking adoption: The effect of innovation attributes and knowledge-based trust
Rapid advances in mobile technologies and devices have made mobile banking increasingly important in mobile commerce and financial services. Using innovation diffusion theory and knowledge-based trust literature, this study develops a research model to ...
Comments