OOP ist wahrscheinlich das am häufigsten verwendete Programmierparadigma im heutigen Software-Design. Meine Frage ist - welche anderen Paradigmen können damit konkurrieren und an die Stelle von OOP treten ? Um diese Frage zu klären, frage ich nicht nach anderen Paradigmen. Es gibt viele von ihnen, aber ich würde gerne wissen, welche ...
- Wurde in der Praxis nicht nur in der Theorie eingesetzt.
- Kann mit OOP konkurrieren , kann also in einem großen Projekt mit einem Minimum an Schmerzen verwendet werden.
- Kann verwendet werden, um eine Desktop-App mit Geschäftslogik, Datenbanken usw. zu entwickeln.
- Wird nicht neben OOP verwendet, sondern als Ersatz für OOP.
Und wenn es welche gibt, was sind die Vor- und Nachteile, warum ist es besser / schlechter als OOP, welche Sprachen sind am besten zu verwenden, was ist mit der Verwendung in populären Sprachen, hat es irgendwelche Entwurfsmuster und kann es OOP komplett ersetzen?
language-agnostic
oop
programming-languages
paradigms
Dariusz Woźniak
quelle
quelle
Antworten:
Funktionale Programmierung ist ein weiteres Programmierparadigma, das vor allem bei Akademikern beliebt ist. Das beste Beispiel für eine funktionale Programmiersprache ist Haskell und Standard ML .
Der grundlegende Unterschied zwischen funktionaler Programmierung und objektorientierter Programmierung besteht darin, dass Sie im Sinne des Datenflusses anstelle des Steuerflusses programmieren . Eine gute Einführung finden Sie in der Präsentation Taming Effects with Functional Programming von Simon Peyton-Jones .
Ein gutes Beispiel für die in der Industrie verwendete funktionale Programmierung ist Erlang . Es wird hauptsächlich in Telekommunikations-, verteilten und fehlertoleranten Systemen verwendet. Siehe die Präsentation Erlang - Software für eine gleichzeitige Welt von Joe Armstrong .
Es gibt auch neuere funktionale Programmiersprachen, die funktionale Programmierung mit OOP kombinieren. Zwei gute Beispiele sind F # für die .NET-Plattform und Scala für die Java-Plattform. Sie können häufig vorhandene Bibliotheken auf der Plattform verwenden, die in anderen Sprachen geschrieben sind.
Der Trend zu neuen Programmiersprachen ist jetzt das Multi-Paradigma , bei dem mehrere Paradigmen wie objektorientierte Programmierung und funktionale Programmierung in derselben Sprache kombiniert werden.
quelle
Die prozedurale Verarbeitung war alles, bevor OOP auftauchte, und hat einige große reale Anwendungen (tatsächlich die meisten ursprünglich) und viele Betriebssysteme hervorgebracht.
Es kann sicherlich in großen Produkten mit einem Minimum an Schmerzen und einem Maximum an Leistung verwendet werden
quelle
Die vektorrelationale Datenmodellierung wird verwendet, um ausführbare Informationsmodelle mit domänenrelevanter Semantik innerhalb der Global Information Network Architecture, einem netzwerkresidenten Modellbroker, zu erstellen.
quelle
Bitte beachten Sie zunächst, dass viele der derzeit verwendeten Programmiersprachen (insbesondere "höhere Sprachen") Multi-Paradigmen sind . Das bedeutet, dass Sie niemals Programme erstellen, die nur OOP sind (außer wenn Sie Smalltalk oder Eiffel verwenden, um Ihre großen Projekte zu erstellen).
Schauen Sie sich zum Beispiel PHP an:
Grundsätzlich klebt PHP viele verschiedene Paradigmen zusammen (und ist selbst eine "Klebesprache").
Auch Java implementiert viele Konzepte, die nicht aus dem objektorientierten Paradigma stammen (z. B. aus der funktionalen Programmierung).
Schauen Sie sich die Liste der Programmiersprachen nach Typ in Wikipedia an: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Imperative_languages (nicht 100% genau).
Funktionale Programmierung (Teilmenge der deklerativen Programmierung)
Verfahrensprogrammierung
Logische Programmierung
Deklarative / domänenspezifische Sprachen im Allgemeinen
Imperative Programmierung im Allgemeinen
Diese Liste ist nicht vollständig, sie soll nur eine Idee geben. Beachten Sie nur, dass Sie beim Schreiben einer großen Anwendung normalerweise viele verschiedene Paradigmen verwenden und sogar jede Sprache, die Sie verwenden, mehrere Paradigmen implementiert.
OOP wird normalerweise als gute Wahl für die Strukturierung großer, komplexer Beziehungen bei der Modellierung von Daten angesehen. Es ist nicht immer das Paradigma für viele andere Aufgaben.
quelle
FP - Functional Programming ist ein äußerst beliebtes Programmierparadigma, das es schon sehr lange gibt und in den letzten Jahren immer mehr an Bedeutung gewonnen hat. FP bevorzugt Unveränderlichkeit gegenüber Veränderlichkeit, Rekursion und Funktionen ohne Nebenwirkungen. Einige Beispiele für beliebte fp-Sprachen sind Erlang, Scala, F #, Haskell und Lisp (unter anderem).
quelle
Derzeit gibt es keine Paradigmen, die OOP wirklich ersetzen könnten. Das Problem mit (Vorteil von) OOP ist, dass es eine Menge Arbeit für Sie erledigt - Ressourcen automatisch freigeben, Daten validieren usw. und es einfach macht, Code zu validieren - ganz zu schweigen davon, dass die überwiegende Mehrheit der weltweit vorhandenen Bibliotheken sind in einer OOP-Sprache wie C ++, C # oder Java geschrieben. Die Realität, ohne solche großen Bibliotheken auszukommen, ist äußerst zweifelhaft.
In Nischen- oder akademischen Welten finden Sie viel funktionale Programmierung. Wenn Sie jedoch wirklich ein großes Projekt durchführen möchten, ist OOP der einzige Weg.
Ich denke, dass generische Programmierung als neues Paradigma auftauchen wird. Es befindet sich jedoch noch in der Entwicklungsphase und nur C ++ / D bietet eine wirklich gute generische Programmierung.
quelle