Introducing Programming Language Metrics
https://doi.org/10.15514/ISPRAS-2022-34(6)-5
Abstract
We introduce possibly the first approximation of programming language metrics that represent a spectrum over 70 unique and carefully gathered dimensions by which any two programming languages can be compared. Based on those metrics, one can evaluate her own `best' language, and to demonstrate how complex feelings such as “simplicity” and “easy to use”, often found as arguments in language debates and advertisements, can be decomposed into clear and measurable pieces. We put the collection as a completely separate open-source file (here as an appendix) so that everyone can participate in eliciting new and interesting dimensions used in programming languages research, development, and use. Metrics can find their use to compare languages, define requirements, create rankings, give tips for language designers, and simply provide a bird’s-eye view on existing languages features found in the wild.
About the Author
Timur Rasimovich FayzrakhmanovInnopolis University
Russian Federation
Software Developer, PhD Student, Researcher
References
1. S. Nanz and C. A. Furia, “A Comparative Study of Programming Languages in Rosetta Code,” 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, pp. 778–788, May 2015, doi: 10.1109/ICSE.2015.90.
2. L. Prechelt, “An Empirical Comparison of Seven Programming Languages,” Computer, vol. 33, no. 10, pp. 23–29, Oct. 2000, doi: 10.1109/2.876288.
3. M. Fourment and M. R. Gillings, “A comparison of common programming languages used in bioinformatics,” BMC Bioinformatics, vol. 9, no. 1, p. 82, Feb. 2008, doi: 10.1186/1471-2105-9-82.
4. İ. Pembeci and G. Hager, “A Comparative Review of Robot Programming Languages,” Feb. 2003.
5. D. J. Pigott and B. M. Axtens, “HOPL,” Online Historical Encyclopaedia of Programming Languages. https://hopl.info/ (accessed Aug. 11, 2020).
6. “Languages | CodeLani,” CodeLani. https://codelani.com/lists/languages.html (accessed Aug. 13, 2020).
7. “Programming Languages,” Rosetta Code, May 25, 2020. https://rosettacode.org/wiki/Category:Programming_Languages (accessed Nov. 04, 2022).
8. “List of programming languages,” Wikipedia. Aug. 13, 2020. Accessed: Aug. 13, 2020. [Online]. Available: https://en.wikipedia.org/w/index.php?title=List_of_programming_languages&oldid=972639589
9. “GitHub | Advanced Search,” GitHub. https://github.com/search/advanced (accessed Jul. 16, 2020).
10. “The State of the Octoverse | Top Languages,” The State of the Octoverse. https://octoverse.github.com/ (accessed Jul. 16, 2020).
11. “Top Programming Languages 2022,” IEEE Spectrum, Aug. 23, 2022. https://spectrum.ieee.org/top-programming-languages-2022 (accessed Dec. 20, 2022).
12. “TIOBE Programming Community index.” https://www.tiobe.com/tiobe-index/ (accessed Aug. 13, 2020).
13. “Stack Overflow Developer Survey 2022,” Stack Overflow. https://survey.stackoverflow.co/2022/?utm_source=social-share&utm_medium=social&utm_campaign=dev-survey-2022 (accessed Dec. 20, 2022).
14. P. Carbonnelle, “PYPL PopularitY of Programming Language index.” http://pypl.github.io/PYPL.html (accessed Jul. 16, 2020).
15. J. E. Sammet, “Problems in, and a pragmatic approach to, programming language measurement,” in Proceedings of the November 16-18, 1971, fall joint computer conference, Las Vegas, Nevada, May 1972, pp. 243–251. doi: 10.1145/1479064.1479112.
16. S. B. Aruoba and J. Fernández-Villaverde, “A Comparison of Programming Languages in Economics,” National Bureau of Economic Research, Cambridge, MA, w20263, Jun. 2014. doi: 10.3386/w20263.
17. H. J. Boom and E. de Jong, “A critical comparison of several programming language implementations,” Software: Practice and Experience, vol. 10, no. 6, pp. 435–473, 1980, doi: 10.1002/spe.4380100605.
18. Z. Alomari, O. E. Halimi, K. Sivaprasad, and C. Pandit, “Comparative Studies of Six Programming Languages,” arXiv:1504.00693 [cs], Apr. 2015, Accessed: Jun. 17, 2020. [Online]. Available: http://arxiv.org/abs/1504.00693
19. S. S. Al-Qahtani, P. Pietrzynski, L. F. Guzman, R. Arif, and A. Tevoedjre, “Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 - a Team CPLgroup COMP6411-S10 Term Report,” arXiv:1008.3434 [cs], Aug. 2010, Accessed: Jul. 14, 2020. [Online]. Available: http://arxiv.org/abs/1008.3434
20. D. P. Delorey, C. D. Knutson, and C. Giraud-carrier, “Programming language trends in open source development: An evaluation using data from all production phase sourceforge projects,” in In Second International Workshop on Public Data about Software Development (WoPDaSD ’07, 2007.
21. B. J. MacLennan, “Simple metrics for programming languages,” Information Processing & Management, vol. 20, no. 1, pp. 209–221, Jan. 1984, doi: 10.1016/0306-4573(84)90051-7.
22. B. J. MacLennan, “The Structural Analysis of Programming Languages.,” NAVAL POSTGRADUATE SCHOOL MONTEREY CA, 1981.
23. G. Rossum, “Python reference manual,” CWI (Centre for Mathematics and Computer Science), NLD, Technical Report, 1995.
24. B. W. Kernighan and D. M. Ritchie, The C programming language. 2006.
25. “Elm - delightful language for reliable web applications.” https://elm-lang.org/ (accessed Nov. 04, 2022).
26. G. Steele, Common LISP: the language. Elsevier, 1990.
Review
For citations:
Fayzrakhmanov T.R. Introducing Programming Language Metrics. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2022;34(6):67-84. https://doi.org/10.15514/ISPRAS-2022-34(6)-5