Przede wszystkim należy zauważyć, że wiele obecnie używanych języków programowania (zwłaszcza „języki wyższego poziomu”) to języki wieloparadygmatyczne . Oznacza to, że nigdy nie tworzysz programów, które są wyłącznie OOP (chyba że używasz Smalltalk lub Eiffel, być może do tworzenia dużych projektów).
Spójrz na przykład na PHP :
- Posiada wiele elementów OOP (od wersji 5)
- Wcześniej było to głównie proceduralne
- Posiada elementy programowania deklaratywnego (np. Funkcje tablicowe)
- Zaimplementowano wiele elementów programowania funkcjonalnego (od wersji 5.4)
Zasadniczo PHP skleja ze sobą wiele różnych paradygmatów (i sam jest „językiem klejenia”).
Również Java implementuje wiele koncepcji, które nie pochodzą z paradygmatu zorientowanego obiektowo (np. Z programowania funkcjonalnego).
Spójrz na listę języków programowania według typu w Wikipedii: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Imperative_languages (nie w 100% dokładne).
Programowanie funkcjonalne (podzbiór programowania dekleratywnego)
- Wideley używany w praktyce (stał się częścią sklejonych języków takich jak PHP , także Java i wiele innych ma zaimplementowane koncepcje programowania funkcjonalnego)
- Wiele pomysłów wywodzi się z LISP-a, któremu zdecydowanie warto się przyjrzeć
- Możesz budować całe aplikacje, np. Z Haskell, dlatego może on "zastąpić" OOP
Programowanie proceduralne
- C (jako język głównie proceduralny) jest nadal jednym z najczęściej używanych języków
- Na początku wiele współczesnych języków klejowych było proceduralnych
- Nadal wiele programów jest w większości proceduralnych (więc jeśli chcesz, może "zastąpić" OOP)
Programowanie logiczne
- Najbardziej znanym przykładem jest Prolog. Służy do określonych zadań, które korzystają z zapytań logicznych opartych na regułach
- Nie może „zastąpić” OOP w zakresie budowania dużego projektu, ale może go zastąpić innymi warunkami
Ogólnie języki deklaratywne / specyficzne dla domeny
- Używasz SQL w swoich projektach? Wtedy nie są one czysto OOP, SQL jest zasadniczo deklaratywny.
- Wiele języków specyficznych dla domeny (takich jak CSS) jest deklaratywnych
Ogólnie programowanie imperatywne
Ta lista nie jest kompletna, wystarczy, że da pomysł. Zwróć uwagę, że podczas pisania dużej aplikacji zwykle używasz wielu różnych paradygmatów, a nawet każdy używany język implementuje wiele paradygmatów.
OOP jest zwykle uważane za dobry wybór do tworzenia struktury dużych, złożonych relacji podczas modelowania danych. Nie zawsze jest to paradygmat dla wielu innych zadań.