Evolution of Programming Paradigms: A Narrative Review
DOI:
https://doi.org/10.56861/inheriten.v1i1.12Keywords:
Programming Paradigms; Programming Language; EvolutionAbstract
This narrative review examines the historical evolution and conceptual shifts of programming paradigms, offering a comprehensive analysis of how they have shaped language design and software development practices over time. Beginning with low-level machine code and assembly languages, the paper traces the emergence of imperative and structured programming, which introduced disciplined control flow and modularity. It then explores the rise of object-oriented programming, emphasizing encapsulation, inheritance, and polymorphism to manage complexity in large systems. Functional programming is discussed for its mathematical foundations, immutability, and suitability for concurrent processing. The review also analyzes the impact of parallel and concurrent programming paradigms in the era of multi-core processors and distributed systems, highlighting the shift toward multi-paradigm languages that blend approaches to meet modern software demands. By clarifying definitional nuances and examining the philosophical underpinnings of paradigms themselves, this review provides a valuable resource for understanding the dynamic, interdisciplinary nature of programming and its critical role in addressing increasingly complex computational challenges
References
Abdelhafez, A., Luque, G., & Alba, E. (2020). Parallel execution combinatorics with metaheuristics: Comparative study. Swarm and Evolutionary Computation, 55, 100692. https://doi.org/10.1016/j.swevo.2020.100692
Abou-Assali, M. (2014). The Nature of Educational Inquiry: Is One Approach Better? International Review of Contemporary Learning Research, 3(2), 71. https://doi.org/10.12785/irclr/030203
Ahmadulin, R. K., & Bakanovskaya, L. N. (2017). Object-Oriented Programming When Developing Software in Geology and Geophysics. IOP Conference Series Earth and Environmental Science, 50, 12049. https://doi.org/10.1088/1755-1315/50/1/012049
Aldinucci, M., Cesare, V., Colonnelli, I., Martinelli, A. R., Mittone, G., Cantalupo, B., Cavazzoni, C., & Drocco, M. (2021). Practical parallelization of scientific applications with OpenMP, OpenACC and MPI. Journal of Parallel and Distributed Computing, 157, 13. https://doi.org/10.1016/j.jpdc.2021.05.017
Al‐Fedaghi, S. (2017). Diagramming the Class Diagram: Toward a Unified Modeling Methodology. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1710.00202
AlQaralleh, E. A., & Darabkh, K. A. (2014). A new method for teaching microprocessors course using emulation. Computer Applications in Engineering Education, 23(3), 455. https://doi.org/10.1002/cae.21616
Amin, M. T. A. (2010). Multi-core: Adding a New Dimension to Computing. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1011.3382
Barrero, A. (1996). Implementation of abstract data types with arrays of unbounded dimensions. Communications of the ACM, 39, 167. https://doi.org/10.1145/272682.272710
Benton, M. C., & Radziwill, N. (2016). Improving Testability and Reuse by Transitioning to Functional Programming. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1606.06704
Bercich, N. H. (2003). The Evolution of the Computerized Database. arXiv (Cornell University). https://doi.org/10.48550/arxiv.cs/0305038
Brown, R. A., Shoop, E., Adams, J. C., Clifton, C., Gardner, M. K., Haupt, M., & Hinsbeeck, P. (2010). Strategies for preparing computer science students for the multicore world. https://doi.org/10.1145/1971681.1971689
Buhr, P. A. (2016). Understanding Control Flow. In Springer eBooks. Springer Nature. https://doi.org/10.1007/978-3-319-25703-7
Chapman, B. (2007). The Multicore Programming Challenge. In Springer eBooks (p. 3). Springer Nature. https://doi.org/10.1007/978-3-540-76837-1_3
Chickerur, S. (2019). Introductory Chapter: High Performance Parallel Computing. In IntechOpen eBooks. IntechOpen. https://doi.org/10.5772/intechopen.84193
Chien, A. A. (2007). Pervasive parallel computing. 160. https://doi.org/10.1145/1229428.1229467
Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377. https://doi.org/10.1145/362384.362685
Cohen, S. (2020). The evolution of machine learning: past, present, and future. In Elsevier eBooks (p. 1). Elsevier BV. https://doi.org/10.1016/b978-0-323-67538-3.00001-4
Dabagia, M., Papadimitriou, C. H., & Vempala, S. (2021). Assemblies of neurons learn to classify well-separated distributions. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2110.03171
Danelutto, M., Mencagli, G., Torquati, M., González–Vélez, H., & Kilpatrick, P. (2020). Algorithmic Skeletons and Parallel Design Patterns in Mainstream Parallel Programming. International Journal of Parallel Programming, 49(2), 177. https://doi.org/10.1007/s10766-020-00684-w
Darlington, J., Field, A. J., Harrison, P. G., Kelly, P. H. J., Sharp, D. W. N., Wu, Q., & While, R. L. (1993). Parallel programming using skeleton functions. In Lecture notes in computer science (p. 146). Springer Science+Business Media. https://doi.org/10.1007/3-540-56891-3_12
Dillon, R. F. (1979). Structured flow of control in a laboratory control language. Behavior Research Methods, 11(2), 234. https://doi.org/10.3758/bf03205655
Dongarra, J., Abaļenkovs, M., Abdelfattah, A., Gates, M., Haidar, A., Kurzak, J., Łuszczek, P., Tomov, S., Yamazaki, I., & YarKhan, A. (2016). Parallel Programming Models for Dense Linear Algebra on Heterogeneous Systems. Supercomputing Frontiers and Innovations, 2(4). https://doi.org/10.14529/jsfi150405
Du, T. C., & Wolfe, P. M. (1997). Overview of emerging database architectures. Computers & Industrial Engineering, 32(4), 811. https://doi.org/10.1016/s0360-8352(97)00011-9
Effatparvar, M., Sarkohaki, F., & Behzad, S. (2019). An Improvement Over Threads Communications on Multi-Core Processors. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1909.11644
Fleissner, S., & Baniassad, E. (2009). Harmony-oriented programming and software evolution. 991. https://doi.org/10.1145/1639950.1640069
Flynn, M., & Rudd, K. W. (1996). Parallel architectures [Review of Parallel architectures]. ACM Computing Surveys, 28(1), 67. Association for Computing Machinery. https://doi.org/10.1145/234313.234345
Ghose, S. (2024). General-Purpose Multicore Architectures (p. 1). https://doi.org/10.1007/978-981-15-6401-7_46-1
Giles, M. B., & Reguly, I. Z. (2014). Trends in high-performance computing for engineering calculations. Philosophical Transactions of the Royal Society A Mathematical Physical and Engineering Sciences, 372(2022), 20130319. https://doi.org/10.1098/rsta.2013.0319
Goldwasser, M. H., & Letscher, D. (2008). Teaching an object-oriented CS1 -. ACM SIGCSE Bulletin, 40(3), 42. https://doi.org/10.1145/1597849.1384285
Gorodnyaya, L. V., & Andreyeva, T. (2015). PROGRAMMING PARADIGMS IN HIGHER EDUCATION. Bulletin of the Novosibirsk Computing Center Series Computer Science, 38. https://doi.org/10.31144/bncc.cs.2542-1972.2015.n38.p67-90
Gray, J. (2007). Data Management: Past, Present, and Future. arXiv (Cornell University). https://doi.org/10.48550/arxiv.cs/0701156
Guerra, G., & Martínez-Velasco, J. A. (2017). Evaluation of MATPOWER and OpenDSS load flow calculations in power systems using parallel computing. The Journal of Engineering, 2017(6), 195. https://doi.org/10.1049/joe.2017.0023
Hai, R., Koutras, C., Quix, C., & Jarke, M. (2021). Data Lakes: A Survey of Functions and Systems. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2106.09592
Hardgrave, B. C. (1997). Adopting object-oriented technology: Evolution or revolution? Journal of Systems and Software, 37(1), 19. https://doi.org/10.1016/s0164-1212(96)00046-5
Hendrickson, B. (2009). Computational science: Emerging opportunities and challenges. Journal of Physics Conference Series, 180, 12013. https://doi.org/10.1088/1742-6596/180/1/012013
Hennessy, J. L., & Patterson, D. A. (1989). Computer Architecture: A Quantitative Approach. https://cds.cern.ch/record/1414394/files/9780123838728_TOC.pdf
Herlihy, M., & Shavit, N. (2012). The Art of Multiprocessor Programming, Revised Reprint. In Morgan Kaufmann Publishers Inc. eBooks. https://dl.acm.org/citation.cfm?id=2385452
Holland, I. M., & Lieberherr, K. (1996). Object-oriented design [Review of Object-oriented design]. ACM Computing Surveys, 28(1), 273. Association for Computing Machinery. https://doi.org/10.1145/234313.234421
Hwu, W., Tsao, S. C., Navarro, N., Lumetta, S., Frank, M. I., Patel, S. J., Ryoo, S., Ueng, S.-Z., Kelm, J. H., Gelado, I., Stone, S. S., Kidd, R. E., Baghsorkhi, S. S., & Mahesri, A. (2007). Implicitly parallel programming models for thousand-core microprocessors. Proceedings - ACM IEEE Design Automation Conference. https://doi.org/10.1145/1278480.1278669
Jóźwiak, L., & Jan, Y. (2013). Design of massively parallel hardware multi-processors for highly-demanding embedded applications. Microprocessors and Microsystems, 37(8), 1155. https://doi.org/10.1016/j.micpro.2013.09.005
Kachris, C., & Soudris, D. (2016). A survey on reconfigurable accelerators for cloud computing. 1. https://doi.org/10.1109/fpl.2016.7577381
Kakar, A., & Kakar, A. (2020). A Brief History of Software Development and Manufacturing. https://aisel.aisnet.org/sais2020/4/
Kankam, P. K. (2019). The use of paradigms in information research. Library & Information Science Research, 41(2), 85. https://doi.org/10.1016/j.lisr.2019.04.003
Kiasari, P. M. (2025). Are Programming Paradigms Paradigms? A Critical Examination of Floyd’s Appropriation of Kuhn’s Philosophy. https://doi.org/10.48550/ARXIV.2505.01901
Kim, M., Bergman, L., Lau, T., & Notkin, D. (2004). An ethnographic study of copy and paste programming practices in OOPL. 83. https://doi.org/10.1109/isese.2004.10
Kingra, S. K., Parmar, V., Chang, C., Hudec, B., Hou, T., & Suri, M. (2020). SLIM: Simultaneous Logic-in-Memory Computing Exploiting Bilayer Analog OxRAM Devices. Scientific Reports, 10(1). https://doi.org/10.1038/s41598-020-59121-0
Kizza, J. M. (2020). Introduction to Computer Network Vulnerabilities. In Texts in computer science (p. 87). Springer International Publishing. https://doi.org/10.1007/978-3-030-38141-7_4
Kunugi, M., Yohda, M., Tamura, S., Kishida, Y., Hayashi, T., & Hasegawa, T. (1992). PI architecture functionally distributed system for power network supervisory control. Electrical Engineering in Japan, 112(6), 47. https://doi.org/10.1002/eej.4391120605
Lott, S. F. (2009). Building Skills in Object-Oriented Design. http://slav0nic.org.ua/static/books/python/oodesign.pdf
Luxton-Reilly, A., Simon, N. P., Albluwi, I., Becker, B. A., Giannakos, M. N., Kumar, A. N., Ott, L., Paterson, J. H., Scott, M., Sheard, J., & Szabo, C. (2018). A review of introductory programming research 2003–2017 [Review of A review of introductory programming research 2003–2017]. 342. https://doi.org/10.1145/3197091.3205841
Mackenzie, N., & Knipe, S. (2006). Research dilemmas: Paradigms, methods and methodology. Issues in Educational Research, 16(2), 193. https://brainmass.com/file/125444/mackenzie.pdf
Mandal, A., & Pal, S. C. (2011). An Empirical Study and Analysis of the Dynamic Load Balancing Techniques Used in Parallel Computing Systems. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1109.1650
Marz, N., & Warren, J. (2015). Big Data: Principles and best practices of scalable realtime data systems. http://ci.nii.ac.jp/ncid/BB19242389
Meijer, E., & Jones, S. P. (1997). Henk: a typed intermediate language. https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/henk.pdf
Mertens, D. M. (2012). What Comes First? The Paradigm or the Approach? Journal of Mixed Methods Research, 6(4), 255. https://doi.org/10.1177/1558689812461574
Micallef, J. (1987). Encapsulation, Reusability and Extensibility in Object-Oriented Programming Languages. https://doi.org/10.7916/d8tt4zzd
Mistretta, S. (2022). Virtual Robotics in Hybrid Teaching and Learning. In IntechOpen eBooks. IntechOpen. https://doi.org/10.5772/intechopen.102038
Moniruzzaman, A. B. M., & Hossain, S. A. (2013). NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1307.0191
Morrison, A. (2016). Scaling synchronization in multicore programs. Communications of the ACM, 59(11), 44. https://doi.org/10.1145/2980987
Murji, K., & Solomos, J. (2016). Rejoinder: race scholarship and the future. Ethnic and Racial Studies, 39(3), 405. https://doi.org/10.1080/01419870.2016.1109692
Mutlu, O. (2020). Intelligent Architectures for Intelligent Computing Systems. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2012.12381
Nami, M. (2008). A comparison of object-oriented languages in software engineering. ACM SIGSOFT Software Engineering Notes, 33(4), 1. https://doi.org/10.1145/1384139.1384145
Nathan, D., Kit, K. L. M., Min, K. C. H., Chin, P. W. J., & Weisensee, A. (2004). A High-Level Reconfigurable Computing Platform Software Frameworks. arXiv (Cornell University). https://doi.org/10.48550/arxiv.cs/0405015
Navaux, P. O. A., Lorenzon, A. F., & Serpa, M. S. (2023). Challenges in High-Performance Computing. Journal of the Brazilian Computer Society, 29(1), 51. https://doi.org/10.5753/jbcs.2023.2219
NoSQL : A Panorama for Scalable Databases in Web. (2017). International Journal of Modern Trends in Engineering & Research, 4(8), 142. https://doi.org/10.21884/ijmter.2017.4262.qwfhg
Pacheco, P. S. (2011). Why Parallel Computing? In Elsevier eBooks (p. 1). Elsevier BV. https://doi.org/10.1016/b978-0-12-374260-5.00001-4
Pankratius, V., Tichy, W. F., & Hinsbeeck, P. (2010). Multicore software engineering. 487. https://doi.org/10.1145/1810295.1810443
Pearce, O. (2019). Exploring utilization options of heterogeneous architectures for multi-physics simulations. Parallel Computing, 87, 35. https://doi.org/10.1016/j.parco.2019.05.003
Penry, D. A. (2009). Multicore diversity. ACM SIGOPS Operating Systems Review, 43(2), 100. https://doi.org/10.1145/1531793.1531810
Pokorný, J. (2015). Database technologies in the world of big data. 1. https://doi.org/10.1145/2812428.2812429
Polychronopoulos, C. D. (1993). PARALLEL PROGRAMMING ISSUES. International Journal of High Speed Computing, 5(3), 413. https://doi.org/10.1142/s0129053393000189
Pretorius, L. (2024). Demystifying Research Paradigms: Navigating Ontology, Epistemology, and Axiology in Research. The Qualitative Report. https://doi.org/10.46743/2160-3715/2024.7632
Roy, P. V. (2009). Programming paradigms for dummies: what every programmer should know. https://www.researchgate.net/profile/Peter_Van_Roy/publication/241111987_Programming_Paradigms_for_Dummies_What_Every_Programmer_Should_Know/links/00b7d52a23e20bcd69000000.pdf?disableCoverPage=true
Saha, B., & Ray, U. K. (2015). Learning Programming : An Indian Perspective. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1506.08712
Saxena, V., Xin, W., & Zhu, K. (2018). Energy-Efficient CMOS Memristive Synapses for Mixed-Signal Neuromorphic System-on-a-Chip. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1802.02342
Shannon‐Baker, P. (2015). Making Paradigms Meaningful in Mixed Methods Research. Journal of Mixed Methods Research, 10(4), 319. https://doi.org/10.1177/1558689815575861
Silberschatz, A., Korth, H. F., & Sudarshan, S. (1996). Data models [Review of Data models]. ACM Computing Surveys, 28(1), 105. Association for Computing Machinery. https://doi.org/10.1145/234313.234360
Silio, C. B. (2005). Basics of Computer Architecture. In Birkhäuser Boston eBooks (p. 145). https://doi.org/10.1007/0-8176-4404-0_7
Sjöberg, V., Sang, Y., Weng, S.-C., & Shao, Z. (2019). DeepSEA: a language for certified system software. Proceedings of the ACM on Programming Languages, 3, 1. https://doi.org/10.1145/3360562
Stanisic, L., Thibault, S., Legrand, A., Videau, B., & Méhaut, J. (2015). Faithful performance prediction of a dynamic task‐based runtime system for heterogeneous multi‐core architectures. Concurrency and Computation Practice and Experience, 27(16), 4075. https://doi.org/10.1002/cpe.3555
Stroustrup, B. (1988). What is object-oriented programming? IEEE Software, 5(3), 10. https://doi.org/10.1109/52.2020
Su, L., Naffziger, S., & Papermaster, M. (2017, December 1). Multi-chip technologies to unleash computing performance gains over the next decade. 2021 IEEE International Electron Devices Meeting (IEDM). https://doi.org/10.1109/iedm.2017.8268306
Sufi, F. (2023). Algorithms in Low-Code-No-Code for Research Applications: A Practical Review [Review of Algorithms in Low-Code-No-Code for Research Applications: A Practical Review]. Algorithms, 16(2), 108. Multidisciplinary Digital Publishing Institute. https://doi.org/10.3390/a16020108
Suh, S. (2023). Cheat Sheet for Teaching Programming with Comics: Through the Lens of Concept-Language-Procedure Framework. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2306.00464
Taylor, G. (2012). The next decade of computing. AIP Conference Proceedings, 55. https://doi.org/10.1063/1.4730642
Taylor-Sakyi, K. (2016). Big Data: Understanding Big Data. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1601.04602
Tibbetts, N., Ibtisum, S., & Puri, S. (2025). A Survey on Heterogeneous Computing Using SmartNICs and Emerging Data Processing Units (Expanded Preprint). https://doi.org/10.48550/ARXIV.2504.03653
Tichy, W. F. (2014). The Multicore Transformation Opening Statement. Ubiquity, 2014, 1. https://doi.org/10.1145/2618393
Torrellas, J. (2016). Extreme-scale computer architecture. National Science Review, 3(1), 19. https://doi.org/10.1093/nsr/nwv085
Tröger, P. (2008). The Multi-Core Era - Trends and Challenges. arXiv (Cornell University). https://doi.org/10.48550/arxiv.0810.5439
Truică, C., Apostol, E., Darmont, J., & Pedersen, T. B. (2021). The Forgotten Document-Oriented Database Management Systems: An Overview and Benchmark of Native XML DODBMSes in Comparison with JSON DODBMSes. Big Data Research, 25, 100205. https://doi.org/10.1016/j.bdr.2021.100205
Tseng, C.-Y., Cheng, T.-H., & Chang, C.-H. (2024). A Novel Approach to Boosting Programming Self-Efficacy: Issue-Based Teaching for Non-CS Undergraduates in Interdisciplinary Education. Information, 15(12), 820. https://doi.org/10.3390/info15120820
Turing, A. (2007). Computing Machinery and Intelligence. In Springer eBooks (p. 23). Springer Nature. https://doi.org/10.1007/978-1-4020-6710-5_3
Vaidehi, M., & Nair, T. R. G. (2010). Multicore Applications in Real Time Systems. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1001.3539
Végh, J. (2020). How to extend the Single-Processor Paradigm to the Explicitly Many-Processor Approach. arXiv (Cornell University). https://doi.org/10.48550/arxiv.2006.00532
Venu, B. (2011). Multi-core processors - An overview. arXiv (Cornell University). https://doi.org/10.48550/arxiv.1110.3535
Wegner. (1976). Programming Languages—The First 25 Years. IEEE Transactions on Computers, 12, 1207. https://doi.org/10.1109/tc.1976.1674589
Wiederhold, G. (1977). Database design. https://openlibrary.org/books/OL2374515M/File_organization_for_database_design
Woo, M. (2020). The Rise of No/Low Code Software Development—No Experience Needed? Engineering, 6(9), 960. https://doi.org/10.1016/j.eng.2020.07.007
Xue, W., Wang, H., & Roy, C. J. (2024). CPU–GPU heterogeneous code acceleration of a finite volume Computational Fluid Dynamics solver. Future Generation Computer Systems, 158, 367. https://doi.org/10.1016/j.future.2024.04.049
Yang, C., Liu, Y., & Yu, J. (2018, December 8). Exploring Violations of Programming Styles. Proceedings of the 2018 2nd International Conference on Computer Science and Artificial Intelligence. https://doi.org/10.1145/3297156.3297227
Yavuz, A. (2012). Competing Paradigms: The Dilemmas and Insights of an ELT Teacher Educator. International Education Studies, 5(1). https://doi.org/10.5539/ies.v5n1p57
Yuen, C. K. (1997). Parallel programming — A critique. Parallel Computing, 23(3), 369. https://doi.org/10.1016/s0167-8191(97)00092-6
Zackariasson, P., & Wilson, T. L. (2010). Paradigm shifts in the video game industry. Competitiveness Review An International Business Journal Incorporating Journal of Global Competitiveness, 20(2), 139. https://doi.org/10.1108/10595421011029857
Zolfani, S. H., Sedaghat, M., Maknoon, R., & Zavadskas, E. K. (2015). Sustainable tourism: a comprehensive literature review on frameworks and applications. Economic Research-Ekonomska Istraživanja, 28(1), 1.
Downloads
Submitted
Accepted
Published
Issue
Section
License
Copyright (c) 2026 Sigit Nurcahyono, Faza Alameka, Mohd Hafiz Zulkifli

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.





