Functional vs. Object-Oriented: Comparing How Programming Paradigms Affect the Architectural Characteristics of Systems
Briza Mel Dias de Sousa (1), Renato Cordeiro Ferreira (1,2,3,4), Alfredo Goldman (1) ((1) University of S\~ao Paulo, (2) Jheronimus Academy of Data Science, (3) Technical University of Eindhoven, (4) Tilburg University)

TL;DR
This paper compares how object-oriented and functional programming paradigms influence software system architecture by analyzing a Digital Wallet implemented in Kotlin and Scala, using qualitative and quantitative methods.
Contribution
It provides a comparative analysis of OOP and FP impacts on system architecture through mixed-method research involving developer perspectives.
Findings
OOP and FP lead to different architectural characteristics.
Developers perceive code readability and maintainability differently.
The study offers insights for choosing programming paradigms based on project needs.
Abstract
This study compares the impact of adopting object-oriented programming (OOP) or functional programming (FP) on the architectural characteristics of software systems. For that, it examines the design and implementation of a Digital Wallet system developed in Kotlin (for OOP) and Scala (for FP). The comparison is made through a mixed-method approach. The self-ethnographic qualitative analysis provides a side-by-side comparison of both implementations, revealing the perspective of those writing such code. The survey-based quantitative analysis gathers feedback from developers with diverse backgrounds, showing their impressions of those reading this code. Hopefully, these results may be useful for developers seeking to decide which paradigm is best suited for their next project.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering Research · Software Engineering Techniques and Practices
