Temporal Correlation Analysis of Programming Language Popularity
- 7 Downloads
Based on the premise that programming languages interact with one another while their popularities changes over time, we describe a technique for extracting latent features from the popularities of programming languages. We constructed a matrix in which each column consisted of a time series of partial correlation coefficients between the popularities of different languages. For the analysis, we utilized non-negative matrix factorization (NMF) to factorize the matrix into the matrices of temporal modes and mixture components. We found that the matrix was optimally factorized with three temporal modes, and the factorization results were more or less independent of factorization algorithms. In accordance with NMF, which learns a part-based representation of the matrix, the sparse property of the temporal modes illustrated different patterns of correlation strength over time. By analyzing the NMF results, we show that the most popular languages of Java, C, and C++ become more correlated as time passes and that the recent similar trends in the popularities of Java and C can be explained by the positive correlation between the two at a later stage in time. These and other characteristics of the popularity explained by NMF may provide clues to understanding the evolution of the popularity of programming language.
KeywordsProgramming language Popularity Non-negative matrix factorization Partial correlation coefficient Temporal correlation
Unable to display preview. Download preview PDF.
This work was supported by a research grant from the Kongju National University in 2018.
- TIOBE, https://www.tiobe.com/tiobe-index/ (2019).
- PYPL PopularitY of Programming Language index, http://pypl.github.io/PYPL.html/ (2019).
- RedMonk Programming Language Rankings, https://redmonk.com/sogrady/2016/02/19/language-rankings-1-16/ (2019).
- P. Kochhar, D. Wijedasa and D. Lo, in IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER) (Suita, 2016), p. 563.Google Scholar
- TIOBE Programming Community Index Definition, https://www.tiobe.com/tiobe-index/programming-lang uages-definition (2019).
- A. Shashua and T. Hazan, in Proceedings of the 22nd International Conference on Machine Learning, ICML (Bonn, Germany, 2005), p. 792.Google Scholar
- Y. Wang and E. Agichtein, in Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval (New York, NY, USA: ACM, SIGIR, 2011), p. 1145.Google Scholar
- P. Sembiring, J. Phys.: Conf. Ser. 930, 012046 (2017).Google Scholar
- A. Türkmen, https://doi.org/1507.03194 (2015).
- A. Langville et al., https://doi.org/1407.7299 (2014).
- P. Hoyer, J. Mach. Learn. Res. 5, 1457 (2004).Google Scholar
- R. Fisher, Biometrika 10, 507 (1915).Google Scholar
- Y. Benjamini and Y. Hochberg, J. R. Stat. Soc. B 57, 289 (1995).Google Scholar