Перш за все, зауважте, що багато мов програмування, які зараз використовуються (особливо "мови вищого рівня"), мають багатопарадигму . Це означає, що ви ніколи не будуєте програм, які мають виключно ООП (за винятком того, якщо ви використовуєте Smalltalk або Eiffel для побудови своїх великих проектів).
Погляньте на PHP, наприклад:
- Має багато елементів ООП (починаючи з версії 5)
- Раніше був переважно процедурним
- Має елементи декларативного програмування (наприклад, функції масиву)
- Реалізовано багато елементів функціонального програмування (починаючи з версії 5.4)
В основному PHP склеює багато різних парадигм (і сам є "клейовою мовою").
Також Java реалізує багато концепцій, які не є об'єктно-орієнтованою парадигмою (наприклад, функціональним програмуванням).
Перегляньте список мов програмування за типами у Вікіпедії: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Imperative_languages (не на 100% точний).
Функціональне програмування (підмножина деклеративного програмування)
- Уідлі використовував на практиці (він став частиною склеєних мов, таких як PHP , також Java та багато інших реалізували концепції функціонального програмування)
- Багато ідей бере свій початок у LISP, який, безумовно, варто переглянути
- Ви можете створювати цілі програми, наприклад, за допомогою Haskell, тому він може "замінити" ООП
Процедурне програмування
- С (як переважно процедурна мова) досі є однією з найбільш широко використовуваних мов
- Багато сучасних клейових мов спочатку були процедурними
- Проте багато програм переважно процедурні (тому, якщо ви хочете, це може "замінити" ООП)
Логічне програмування
- Найвидатніший приклад - Пролог. Це використовується для конкретних завдань, які отримують користь від логічних логічних запитів на основі правил
- Не може "замінити" ООП з точки зору побудови великого проекту, але може замінити його іншими термінами
Декларативні / доменні мови в цілому
- Використання SQL у своїх проектах? Тоді вони не є суто ООП, SQL по суті є декларативним.
- Багато доменних мов (наприклад, CSS) є декларативними
Загальне програмування загалом
Цей список не повний, він просто дасть уявлення. Тільки зауважте, що зазвичай ви використовуєте багато різних парадигм під час написання великої програми, і навіть кожна мова, якою ви користуєтесь, реалізує кілька парадигм.
ООП зазвичай вважається хорошим вибором для структурування великих, складних взаємозв’язків при моделюванні даних. Це не завжди парадигма, на яку слід покластися для багатьох інших завдань.