English

An Exploratory Study on the Predominant Programming Paradigms in Python Code

Software Engineering 2022-09-07 v1

Abstract

Python is a multi-paradigm programming language that fully supports object-oriented (OO) programming. The language allows writing code in a non-procedural imperative manner, using procedures, using classes, or in a functional style. To date, no one has studied what paradigm(s), if any, are predominant in Python code and projects. In this work, we first define a technique to classify Python files into predominant paradigm(s). We then automate our approach and evaluate it against human judgements, showing over 80% agreement. We then analyze over 100k open-source Python projects, automatically classifying each source file and investigating the paradigm distributions. The results indicate Python developers tend to heavily favor OO features. We also observed a positive correlation between OO and procedural paradigms and the size of the project. And despite few files or projects being predominantly functional, we still found many functional feature uses.

Keywords

Cite

@article{arxiv.2209.01817,
  title  = {An Exploratory Study on the Predominant Programming Paradigms in Python Code},
  author = {Robert Dyer and Jigyasa Chauhan},
  journal= {arXiv preprint arXiv:2209.01817},
  year   = {2022}
}

Comments

Accepted to the ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2022)