Functional vs. Object-Oriented: Comparing How Programming Paradigms Affect the Architectural Characteristics of Systems

Resumo


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.

Palavras-chave: Software Architecture, Programming Paradigms, Object-Oriented Programming, Functional Programming, Empirical Software Engineering

Referências

Dino Alic, Samir Omanovic, and Vaidas Giedrimas. 2016. Comparative Analysis of Functional and Object-Oriented Programming. In 2016 39th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). IEEE, Piscataway, NJ, USA, 667–672. DOI: 10.1109/MIPRO.2016.7522224

Briza Mel Dias, Alfredo Goldman, and Renato Cordeiro Ferreira. 2024. Functional vs. Object-Oriented: Comparing how Programming Paradigms affect the architectural characteristics of systems. Bachelor’s Thesis. University of São Paulo (USP), São Paulo. [link]

Eric Evans. 2003. Domain-Driven Design (1st ed.). Addison-Wesley Professional, Boston, MA. 1–529 pages.

Finley. 2022. Functional programming is finally going mainstream. [link]

R. Harrison, L.G. Samaraweera, M.R. Dobie, and P.H. Lewis. 1996. Comparing Programming Paradigms: An Evaluation of Functional and Object-Oriented Programs. Software Engineering Journal 11, 4 (1996), 247. DOI: 10.1049/sej.1996.0030

Mustafa Ahmed Khan, Syed Shabeeb Raza, Khalid Mahboob, Sana Alam, Muhammad Asghar Khan, and Muhammad Noman Hasany. 2025. A Comparative Study of Object-Oriented, Procedural, and Functional Programming Paradigms in Microservice Architecture. VFAST Transactions on Software Engineering 13, 3 (9 2025), 176–186. DOI: 10.21015/vtse.v13i3.2216

Robert C. Martin. 2017. Clean Architecture (1st ed.). Pearson, Boston, MA. 1–404 pages.

Sam Newman. 2021. Building Microservices (2nd ed.). O’Reilly Media. 1–612 pages.

Michael Pilquist, Rúnar Bjarnason, Paul Chiusano, Martin Odersky, and Daniel Spiewak. 2023. Functional programming in Scala (2nd ed.). Manning Publications, Shelter Island, NY. 1–488 pages.

Mark Richards and Neal Ford. 2020. Fundamentals of Software Architecture (1st ed.). O’Reilly Media, Sebastopol, CA. 1–419 pages.

L. G. Samaraweera and R. Harrison. 1998. Evaluation of the Functional and Object-Oriented Programming Paradigms. ACM SIGSOFT Software Engineering Notes 23, 4 (7 1998), 38–43. DOI: 10.1145/286366.286374

Charles Scalfani. 2022. Why Functional Programming Should Be The Future of Software Development. [link]
Publicado
04/11/2025
DIAS, Briza Mel; FERREIRA, Renato Cordeiro; GOLDMAN, Alfredo. Functional vs. Object-Oriented: Comparing How Programming Paradigms Affect the Architectural Characteristics of Systems. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 24. , 2025, São José dos Campos/SP. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 584-594. DOI: https://doi.org/10.5753/sbqs.2025.15170.