Robert C. Martin (Uncle Bob)
16.04.2018, 10:55 Uhr
FP versus OOP
Etliche Jahre hat Robert C. Martin [1] mit Menschen zusammengearbeitet die die Funktionale Programmierung (FP) erlernt haben und auf die Objekt-orientierte Programmierung (OOP) herabsahen. Viele davon sehen FP und OOP als unvereinbare Pole. In einem umfangreichen Blog-Beitrag hat Martin jetzt seine Gedanken zu diesem Thema zusammengefasst.
Robert C. Martin
By Tim-bezhashvyly [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], from Wikimedia Commons
By Tim-bezhashvyly [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], from Wikimedia Commons
"Oh, das sieht aber viel zu sehr nach einem Objekt aus" ist eines der Statements, in welchem die Anhänger der Funktionalen Programmierung (FP) ihre Ablehnung der Objekt-orientierten Programmierung (OOP) ausdrücken. Manche Leute sehen die beiden Arbeitsweisen als strikte Gegensätze: Etwas kann nur FP sein, wenn es nicht nach OOP aussieht. Martin nimmt an, dass diese Meinung eine natürliche Konsequenz daraus ist, etwas neues zu lernen, das eben anders ist als die altbekannte OOP. Das neu Erlernte erscheint besser als die bislang verwendeten Techniken, die im Gegenzug als die schlechteren Techniken eingestuft werden.
In seinem Blog-Beitrag vertritt Martin die Ansicht, dass OOP und FP zwar orthogonal zueinander stehen, sich jedoch nicht gegenseitig ausschließen. Im Gegenteil: Ein gutes FP-Programm kann (und sollte sogar) Objekt-orientiert sein. Umgekehrt kann und sollte ein gutes OOP-Programm auch funktional Programmiert sein.
Ausführlich belegt er seine Aussagen in diesem Blog-Beitrag im Clean Code Blog.
[1] Hier ein Auszug aus dem Wikipedia-Beitrag zu Robert C. Martin:
Robert Cecil Martin ist ein US-amerikanischer Softwareentwickler, IT-Berater und Autor. Robert C. Martin, auch bekannt als „Uncle Bob“, arbeitet seit den 1970er Jahren in diversen Softwareentwicklungsprojekten, seit 1990 als international anerkannter IT-Berater. 2001 initiierte er die Entwicklung des Agilen Manifests, das Fundament agiler Softwareentwicklung. Er ist auch führendes Mitglied der Bewegung Software Craftsmanship die sich der Clean Code Softwareentwicklung verschrieben hat.
Robert C. Martin ist Gründer, Präsident und Chief Executive Officer von Object Mentor Inc., welche Beratung zu den Themen C++, Java, Objektorientierte Programmierung, Entwurfsmuster, UML, Agile Softwareentwicklung und Extreme Programming anbietet.