Hor - stock.adobe.com

Funktionale Programmierung versus Low-Code-Plattformen

Low-Code-Programmierung erweist sich angesichts längerer Softwarelebenszyklen in der Praxis nicht immer als beste Lösung. Warum funktionale Programmierung hier punkten kann.

Mit Low-Code-Programmierung soll es möglich sein, Software schneller zu entwickeln, da weniger manueller Codierungsaufwand anfällt. Soweit die Theorie. Aus praktischer Perspektive gibt der Low-Code-Ansatz durchaus Anlass für eine kritische Betrachtung.

So ist der Softwarelebenszyklus in der Regel länger als geplant. Die Software muss mit der Zeit angepasst werden, was bei Low-Code-programmierter Software mit einem höheren Aufwand verbunden ist. Alternativ dazu verbindet der Ansatz der funktionalen Programmierung die Effizienzvorteile des Low-Code-Ansatzes mit einer zukunftssicheren Softwarearchitektur.

Die Idee hinter der Low-Code-Programmierung ist, die Entwicklung neuer Anwendungen kosteneffizienter zu machen. Ziel ist es außerdem, angesichts des Mangels an Programmierern die Einstiegsbarriere für nicht spezialisierte IT-Allrounder zu senken.

Die Entwicklung erfolgt daher mittels visueller Modellierung auf einer grafischen Oberfläche, auf der die Anwendungen konfiguriert werden. Dabei konzentrieren sich die Entwickler auf einen kleinen entscheidenden Teil des Programmiercodes, um sich bereits früh im Entwicklungszyklus den speziellen Funktionen einer Applikation zuwenden zu können.

Der Low-Code-Ansatz hat seinen Ursprung im Bereich der benutzerführenden und menügesteuerten Programmiersprachen der vierten Generation (4GLs) aus den 80er und 90er Jahren, die weitestgehend in Vergessenheit geraten sind.

Mit den 4GL-Programmiersprachen wurde versucht, sich der menschlichen Sprache, Denkweise und Konzeptualisierung zu nähern. Tatsächlich erwiesen sich 4GL- gegenüber 3GL-Sprachen als benutzerfreundlicher und effizienter durch die Verwendung von Phrasen, grafischen Oberflächen, Drag and Drop und symbolischen Darstellungen. 4GL-Sprachen konzentrieren sich in der Regel auf die Erstellung von Datenbanken, Berichten und Websites.

Programmieren mit Tabellenkalkulation und Datenbank

Der Ansatz der einfachen Programmierung findet sich auch in VBA (Visual Basic for Applications) wieder. VBA ist eine Programmiersprache, die für die Arbeit mit Microsoft Excel, aber auch mit anderen Microsoft-Office-Anwendungen wie Microsoft Word, Microsoft Access und PowerPoint sowie mit vielen Anwendungen von Drittanbietern verwendet wird.

Excel VBA beispielsweise ist eine Sprache, die Excel versteht und die verwendet wird, um Excel Anweisungen zur Programmierung und Automatisierung von Aufgaben zu geben. Die auf den ersten Blick einfachere Programmierung mit Excel Sheets hat jedoch auch Nachteile. Es ist kaum möglich, größere Prozesse zu automatisieren und größere Datenmengen zu bewältigen. Zuletzt scheitert es daran, Anwendungen nahtlos in die bestehende Geschäftsumgebung zu integrieren, was eine aufwendige Migration nach sich zieht. 

Eine einfache Lösung besteht darin, aus Datenbankschemata in Access eine CRUD-Anwendung (Create, Read, Update, Delete) für grundlegende Datenmanagementprozesse auf einer grafischen Benutzerschnittstelle zusammenzustellen. Auch bei Access-Anwendungen ergibt sich das Problem der begrenzten Skalierbarkeit, was bei steigenden Geschäftsanforderungen ebenfalls auf eine aufwendige Migration hinausläuft.

Stetiger Wunsch nach einfacher Programmierung

Die Programmiersprachen der vierten Generation verloren im Verlauf der 1990er Jahre an Bedeutung, da sie zu speziell und mit Einschränkungen verbunden waren. Die Programmierung einfacher zu gestalten, war aus geschäftlicher Sicht nach wie vor wünschenswert. Aus diesem Bedarf heraus sind die ersten Low-Code-Plattformen entstanden, die Anwendungsentwicklung ohne Programmieren versprachen. Der heute noch verfolgte Ansatz sieht vor, Applikationen in einer grafischen Umgebung aus Blöcken zusammenzusetzen, um sie auf skalierbaren Cloud-Plattformen zu betreiben, auch als mobile Apps.

Moderne Low-Code-Umgebungen rationalisieren unbestritten die gängigen Prozesse bei der Programmierung. Die Anbindung von Datenbanken und das Design grafischer Benutzeroberflächen erfolgt bequem per Mausklick. Damit steht in gewissem Sinne eine unternehmensgerechte Variante von 4GL für die Cloud-Ära bereit, ohne die eingeschränkte Skalierbarkeit von Excel und Access, wenn auch nicht ganz ohne Einschränkungen.

Herkömmliche Programmiertechnologien versuchten ebenfalls, das Programmieren von CRUD-Anwendungen zu vereinfachen, was aber nicht vollends gelang. Für gängige objektorientierte Programmiersprachen stehen ORMs (Object-Relational Mappers) zur Verfügung, um möglichst viele Prozesse bei der Abbildung von Domänenobjekten auf die Datenbank zu automatisieren.

Wie bei ORMs hat diese Benutzerfreundlichkeit jedoch zur Folge, dass das Datenbankmodell mit dem Datenmodell untrennbar verbunden ist. Bei der gemeinsamen Entwicklung kommen möglichen Schwächen auf beiden Seiten zum Tragen.

Mit zunehmendem Codevolumen wächst auch die Anzahl der Probleme. Modellierungsschwächen, unkontrollierbares Cache-Verhalten, hohe architektonische Bindung, kompliziertes Debugging und aufwendige Änderungen haben letztlich dazu geführt, dass sich ORMs nicht durchsetzen konnten.

Low-Code-Ansatz: Ein Vorteil und zwei Nachteile

Der Low-Code-Ansatz basiert auf der Idee, standardisierte Komponenten immer wieder verwenden zu können. Diesem Vorteil stehen zwei Nachteile gegenüber.

So lassen sich mit einer Low-Code-Plattform nur einfache, einem bestimmten Schema entsprechende Anwendungen entwickeln, wenn das Schema passt. Gehen die Anforderungen über Eingabe, Anzeige und Reporting tabellarischer Daten hinaus, stößt auch der Low-Code-Ansatz an seine Grenzen.

Das zweite Problem ist der in der Praxis oft deutlich längere Lebenszyklus vieler IT-Anwendungen, so dass bereits programmierte Anwendungen für neue Aufgaben herangezogen werden. Aufgrund des geringen Abstraktionsgrads von Low-Code-Anwendungen ist die erforderliche Anpassung mit einem hohen Aufwand verbunden. Der lange Lebenszyklus erschwert es, Verbesserungen der Low-Code-Plattform in die bestehende Anwendung einfließen zu lassen.

Funktionale Programmierung kommt auch mit weniger Code aus

Der Wunsch, weniger Code zu produzieren, zieht sich durch die gesamte Geschichte der Programmierung – bis heute. Ein bereits etablierter Ansatz, der den Wunsch näher an die Realität bringt, ist die funktionale Programmierung. Funktionaler Code ist 2- bis 15-mal kürzer als vergleichbarer objektorientierter Programmiercode. Zugleich punktet die funktionale Programmierung mit einem hohem Abstraktionsgrad und der Option, bestehende Komponenten einfach wiederzuverwenden.

Mit funktionaler Programmierung gelingt es, die Vorteile von weniger Code mit einer stabilen Softwarearchitektur zu vereinen, was der Effizienz dieses Ansatzes zugutekommt. Die bereichsspezifische Modellierung macht es möglich, individuelle Anforderungen präziser umzusetzen.

Michael Sperber, Active Group GmbH

„Mit funktionaler Programmierung gelingt es, die Vorteile von weniger Code mit einer stabilen Softwarearchitektur zu vereinen, was der Effizienz dieses Ansatzes zugutekommt.“

Dr. Michael Sperber, Active Group GmbH

---

Hierbei kommen neue Vorgehensweisen und Techniken zum Einsatz, die in der herkömmlichen objektorientierten Entwicklung nicht Anwendung finden. Ein weiterer entscheidender Pluspunkt ist, dass die funktionale Programmierung leicht zu erlernen ist. Diese Einfachheit erstreckt über den gesamten Anwendungslebenszyklus – von der Planung, über Entwicklung und Tests bis hin zur Bereitstellung und Anpassung. In diesem Gesamtkontext kann die funktionale Programmierung gegenüber dem Low-Code-Ansatz ihre Stärken ausspielen.

Über den Autor:
Dr. Michael Sperber ist international anerkannter Spezialist für alle Aspekte der funktionalen Programmierung und Autor zahlreicher Fachveröffentlichungen sowie mehrerer Bücher zu diesem Thema. Er hat über 25 Jahre Erfahrung in der praktischen Softwareentwicklung für die unterschiedlichsten Anwendungsgebiete – darunter Bewertung von Finanzderivaten, Versicherungsportale, Steuerung von Hochleistungs-Messgeräten, Compilerbau, Dokumentenmanagement, Steuerung von Halbleiterfabriken und Bühnenbeleuchtung.

Dr. Sperber ist außerdem Experte für die universitäre Programmierausbildung: Das erfolgreiche Konzept der Grundausbildung für den Studiengang Informatik an der Universität Tübingen, welches auch von anderen Universitäten übernommen wurde, stammt von ihm. Er hat außerdem langjährige akademische Lehrerfahrung, war verantwortlicher Project Editor für den R6RS-Standard der funktionalen Programmiersprache Scheme und ist Mitglied des Lenkungsgremiums für die jährlich stattfindende internationale Konferenz „Commercial Users of Functional Programming“.

Er ist seit Januar 2014 Geschäftsführer der Active Group GmbH.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über Softwareentwicklung