Wer macht das Rennen?

Funktionale Programmierung vs. Low-Code-Ansatz

Die Anforderungen an die App-Entwicklung steigen, beispielsweise was das Thema „Analytics“ betrifft. Hier kann sich die funktionale Programmierung als effizienter Ansatz gegenüber dem mit Kompromissen behafteten Low-Code-Ansatz positionieren.

Funktionale Programmierung vs. Low-Code-Ansatz

Der Low-Code-Ansatz steht auch dafür, in der Programmierung weniger versierten IT-Allroundern den Einstieg in die App-Entwicklung zu ermöglichen.

Es gibt einen klaren Trend zu immer leistungsfähigeren Apps, was auch auf die wachsende Performance der Endgeräte wie Smartphones oder Tablets zurückzuführen ist. Gepusht wird dieser Trend durch eine wachsende Zahl von IoT-Anwendungen auf Mobile Devices und langfristig sicherlich auch durch 5G. Damit steigen auch die Anforderungen an die App-Entwicklung, beispielsweise was das Thema „Analytics“ betrifft. Hier ist funktionale Programmierung ein ebenso effizienter wie zukunftsfähiger Ansatz.

In der boomenden App-Entwicklung machte bislang ein anderer Ansatz von sich reden: Low-Code verspricht mehr Effizienz und sogar Programmieren ohne tiefgehende Programmierkenntnisse. Dank vorgefertigter Bausteine entfällt das aufwändige manuelle Schreiben von Code. Der Low-Code-Ansatz eröffnet Möglichkeiten für eine schlanke, komfortable App-Entwicklung, jedoch nicht ohne Kompromisse.

Einfache Apps lassen sich mit Low-Code durchaus realisieren. Muss eine App zu einem späteren Zeitpunkt jedoch angepasst werden, wird die Sache aufwändiger. Der anfängliche Benutzerkomfort dank Fertigbausteinen wird dadurch erkauft, dass anders als in einer herkömmlichen Software-Architektur nachträgliche Eingriffe nur bedingt möglich sind. Hier punktet die funktionale Programmierung, die mit weniger Code auskommt, aber die Möglichkeit bietet, zu einem späteren Zeitpunkt tiefergehende Anpassungen durchzuführen.

Vergessene Sprachen

Der Low-Code-Ansatz geht zurück auf Programmiersprachen der vierten Generation, die sogenannten 4GLs aus den 1980er- und 1990er-Jahren – inzwischen vergessene Sprachen wie Powerbuilder oder XBase++. Diese stellten Entwicklern grundlegende Anwendungsfunktionen zur Verfügung, um den Programmieraufwand deutlich zu reduzieren. Der Einsatz beschränkte sich überwiegend auf Anwendungen für Dateneingabe, Speicherung in Datenbanken, Datenabfragen und Datenverarbeitung in Reports.

Weniger Programmieraufwand war auch das Ziel, als Excel oder Access für komplexere Aufgaben im Unternehmen herangezogen wurden. Ab 1993 kam mit VBA (Visual Basic for Applications) eine Programmiersprache zur Steuerung von Office-Programmen auf den Markt. VBA-Code in Excel-Sheets ermöglichte in gewissem Sinne eine Programmierung. Letztlich erwiesen sich die Möglichkeiten von Excel jedoch als begrenzt, was eine Prozessautomatisierung in größerem Stil und die Bewältigung größerer Datenmengen betrifft. 1992 kam mit Access ein Datenbankprogramm auf den Markt, das auch als Programmierhilfe herhalten musste. So war es möglich, CRUD-Anwendungen (Create, Read, Update, Delete) für grundlegende Datenmanagementoperationen zusammenzubauen. Anspruchsvollere Geschäftsfunktionen ließen sich jedoch nicht abbilden.

An Grenzen stoßen

Die Idee, Anwendungen zu entwickeln, ohne programmieren zu müssen, findet sich heute in Low-Code-Plattformen wieder. Diese ermöglichen es, auf einer grafischen Oberfläche Applikationen aus Blöcken zusammenzubauen und zu konfigurieren. Gerade die Entwicklung Cloud-basierter und/oder mobiler Apps soll davon profitieren. Die auf diese Weise innerhalb möglichst kurzer Zeit erstellten Apps werden von der Entwicklungsplattform gleich in die Cloud hochgeladen, wo sie in Betrieb genommen werden können.

Alles, was die herkömmliche Programmierung aufwändig macht, entfällt hier weitgehend. Die Gestaltung grafischer Oberflächen oder Anbindung der App an eine Datenbank erfolgt per Mausklicks. Low-Code greift als moderner Ansatz die Idee der 4GLs auf, ergänzt um Cloud-Fähigkeit und mit den komfortablen grafischen Benutzeroberflächen von heute. Die Cloud macht es möglich, dass die Skalierbarkeit der Apps ebenfalls kein Problem darstellt. Wo Low-Code jedoch an Grenzen stößt, sind Apps, die über die Eingabe, Wiedergabe und das Reporting von Tabellendaten hinausgehen.

Die für gängige objektorientierte Programmiersprachen verfügbaren ORMs (Object-Relational Mappers) waren der Versuch, dieses Problem zu lösen. Ziel war es, möglichst viele Prozesse bei der Abbildung von Domänenobjekten auf die Datenbank automatisieren. Daraus resultierte jedoch, dass das Datenbankmodell mit dem Datenmodell fest verbunden ist, so dass mögliche Schwächen auf beiden Seiten auftraten, parallel zum wachsenden Code-Volumen. Aufgrund von Problemen bei der Modellierung, dem instabilen Cache-Verhalten, kompliziertem Debugging und Änderungsmanagement verloren auch ORMs an Bedeutung.

Hoher Abstraktionsgrad

Bausteine von Applikationen wiederzuverwenden, ist ein plausibler Ansatz, aber nicht für jede App praktikabel. So gilt es am Anfang des Entwicklungsprojekts sorgfältig zu prüfen, ob eine Low-Code-Entwicklung überhaupt in Frage kommt, da mit Low-Code Apps nur innerhalb eines enggesteckten Schemas realisierbar sind. Eine App, die am Lebenszyklusbeginn den aktuellen Anforderungen entspricht, muss in einigen Jahren möglicherweise angepasst werden. Der geringe Abstraktionsgrad der Low-Code-Programmierung erschwert genau dies oder macht es gänzlich unmöglich.

Das Ziel, weniger Code zu produzieren, verfolgt auch die funktionale Programmierung. Funktionaler Code ist bis zu zwei- bis 15-mal kürzer als entsprechender objektorientierter Code. Der dennoch hohe Abstraktionsgrad sowie die Programmiertiefe einer herkömmlichen Software-Architektur sorgen jedoch für das entscheidende Plus an Flexibilität. Die funktionale Programmierung gewinnt somit an Akzeptanz als zeitgemäßer Ansatz für die Entwicklung hochwertiger Apps. In Kombination mit der bereichsspezifischen Modellierung lässt sich die Entwicklung an individuelle Anforderungen anpassen.

Der Low-Code-Ansatz steht auch dafür, in der Programmierung weniger versierten IT-Allroundern den Einstieg in die App-Entwicklung zu ermöglichen. Auch funktionale Programmierung ist leicht erlernbar und stellt Einsteiger nicht vor allzu große Hürden. Wer die App-Entwicklung über einen längeren Lebenszyklus betrachtet, bis hin zu späteren Anpassungen, findet in der funktionalen Programmierung – so der Individualsoftware-Spezialist Active Group – einen effizienten und ganzheitlichen Ansatz, der strategischen Überlegungen und dem Bedarf für mehr Flexibilität weitaus besser gerecht wird.

Bildquelle: Getty Images / iStock / Getty Images Plus

©2020Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok