ПОРІВНЯННЯ ОБ’ЄКТНО-ОРІЄНТОВАНОЇ ТА ФУНКЦІЙНОЇ ПАРАДИГМ ПРОГРАМУВАННЯ У ПРОЕКТУВАННІ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
COMPARISON OF OBJECT-ORIENTED AND FUNCTIONAL PROGRAMMING PARADIGMS IN SOFTWARE DESIGN
Сторінки: 34-38. Номер: №3, 2021 (297)
Автори:
А. І. КОВАЛЬ, О. М. ЯШИНА, Г. І. РАДЕЛЬЧУК, Ю. В. ФОРКУН
Хмельницький національний університет
ANDRIY IGOROVYCH KOVAL, OKSANA MIKOLAIVNA YASHYNA.,
GALINA IVANIVNA RADELCHUK, FORKUN YURII VIKTOROVYCH
Khmelnytskyi National University
DOI: https://www.doi.org/10.31891/2307-5732-2021-297-3-34-38
Надійшла / Paper received : 04.05.2021 р
Надрукована / Paper Printed : 30.06.2021 р
Анотація мовою оригіналу
У статті описано та досліджено дві парадигми проектування – об’єктно-орієнтовану та функційну. Проаналізовано доречність використання кожної з них з посиланням на їх відмінності та переваги для конкретних цілей. Незважаючи на змінні тенденції популярності цих парадигм, зробити висновок стосовно актуальності котроїсь з них залишається неможливим.
Хоча як об’єктно-орієнтоване програмування, так і функціональне програмування є суттєвими парадигмами, які мають одну і ту ж мету – розробити зрозумілі та безпомилкові програми, їх підходи різні. ООП дотримується імперативної моделі програмування, яка базується на наборі примітивів, яку надає мова програмування. Функціональна парадигма, навпаки, тісно пов’язана з декларативним стилем, що означає, що визначається лише те, що потрібно виконати, не вказуючи, як це зробити.
Здається, загальний консенсус полягає в тому, що об’єктно-орієнтована парадигма та функціональна парадигма ефективні в будь-якій певній ситуації, тому розробники завжди повинні вибрати парадигму програмування, яка робить процес продуктивним та простим.
Об’єктно-орієнтовані мови хороші, коли є фіксований набір операцій над речами, і коли код розвивається, в першу чергу додаються нові речі. Цього можна досягти, додавши нові класи, що реалізують існуючі методи, а існуючі класи залишаються самі.
Функціональні мови хороші, коли є фіксований набір речей, і коли код розвивається, в першу чергу додаються нові операції над існуючими речами. Цього можна досягти, додавши нові функції, які обчислюються з існуючими типами даних, а існуючі функції залишаються в спокої.
Об’єктно-орієнтоване програмування, так само як і функційне, має своє місце у сучасній розробці програмного забезпечення. В той час, як розвиток технологій Big Data дав новий поштовх для використання функційного програмування, об’єктно-орієнтоване програмування, у свою чергу, залишається актуальним задля роботи для відображення в коді об’єктів реального світу.
Ключові слова: парадигма програмування, об’єкт, функція, об’єктно-орієнтоване програмування, функційне програмування.
Розширена анотація англійською мовою
This article describes two types of paradigms – object-oriented and functional paradigms. Paradigm stands for a style and an approach to perform any kind of coding activities. Relevance of usage for each of them as well as their differences and benefits were analyzed. Regardless of ever-changing tendencies in popularity of both paradigms it is impossible to acknowledge any of them to deprecate another one.
Although object-oriented programming as well as functional programming are essential in their approaches they have the same goal – to make comprehensive programs without possible mistakes. OOP follows imperative programming model which is based on a set of primitives the given language provides. Functional paradigm is intertwined with declarative style which imply what is to be done, but not how to do it. We may come to conclusion that the consensus is that object oriented paradigm and functional paradigm can be effective in a peculiar situation. Therefore, developers are to choose and pick the programming paradigm for a given task to make a process as simple and productive as it can be.
Object-oriented programming languages are a good choice when you have a fixed set of operations on things and you add new things for your code to evolve. You can achieve it by adding new classes that implement existing methods while existing classes remain the same. Functional languages may be a better choice if you have a fixed set of things and you add new operations on existing things for your code to evolve. You can achieve it by adding new functions which are to be computed with existing data types while existing functions remain the same.
Object-oriented programming as well as functional programming has its place in modern approaches to software development. Meanwhile the functional programming is being reconsidered and used much more often due to Big Data Technologies while object-oriented programming remains popular to perform representation of real-life objects in the code.
Keywords: programming paradigm, object, function, object-oriented programming, functional programming.
References
- Programming paradigm. Wikipedia. the free encyclopedia. URL: https://en.wikipedia.org/-wiki/Programming_paradigm
- Gamma E. Priemy obektno-orientirovannogo proektirovaniya. Patterny proektirovaniya / E. Gamma, R. Helm, R. Dzhonson, Dzh. Vlissides ; per. s angl. – SPb : Piter, 2017. – 368 s.
- Berd R. Zhemchuzhiny proektirovaniya algoritmov. Funkcionalnyj podhod. S primerami na yazyke Haskell / R. Berd. – : Izd-vo «DMK-Press»? 2015. – 330 c.
- Vajsfeld M. Obektno-orientirovannoe myshlenie / M. Vajsfeld ; per. s angl. – SPb : Piter, 2018. – 304 s.
- Okasaki K. Chisto funkcionalnye struktury dannyh / K. Okasaki ; per. s angl. – M. : Izd-vo «DMK-Press», 2016. – 252 s.
- Buch G. Obektno-orientirovannyj analiz i proektirovanie s primerami prilozhenij / G. Buch, Robert, A. Maksimchuk i dr. ; per. s angl. – 3-e izd. – M. : ID «Vilyams», 2020. – 720 s.
- Dinamika populyarnosti obektno-orientirovannogo i funkcionalnogo programmirovaniya [Elektronnyj resurs] // Google Trends. – Rezhim dostupa : https://trends.google.ru/trends/explore?date=today%205-y&q=%2Fm%2F05prj,%2Fm%2F02ykw