Für die Erstellung von Geschäftsanwendungen stehen Hunderte von Plattformen und Programmiersprachen zur Auswahl. Diese Optionen reichen von sehr komplexen, traditionellen Programmiersprachen bis hin zu modernsten Low-Code-Plattformen, auf denen manchmal keine traditionelle Programmiererfahrung mehr erforderlich ist. Was sind die Vorteile der Programmierung mit einer sprachenbasierten Low-Code-Lösung?
Herkömmliche Programmiersprachen bieten große Leistung und Flexibilität, jedoch auf Kosten von Komplexität und Zeit. Unternehmen suchen nach einem schnelleren Weg, um neue Anwendungen auf den Markt zu bringen – hier kommen Low-Code-Entwicklungsplattformen ins Spiel.
Low-Code-Plattformen können in zwei Kategorien unterteilt werden: modellbasiert und sprachenbasiert. Low-Code bietet große Vorteile für eine schnelle Anwendungsentwicklung und liefert einen schnellen und einfachen Ausgangspunkt, der dann durch zusätzliche Plattformoptionen weiter verbessert werden kann.
Low-Code übernimmt die anfängliche Erstellung einer Anwendung und die gesamte Einrichtung, so dass sich Entwickler darauf konzentrieren können, die beste Lösung für die geschäftlichen Anforderungen zu realisieren. Nach der ersten Anwendungserstellung und dem schnellen Start beginnen sich modell- und sprachenbasierte Low-Code-Plattformen jedoch zu differenzieren. Beide Ansätze verwenden ähnliche Theorien, es bestehen aber starke Unterschiede bei der tatsächlichen Umsetzung von Programmieraufgaben, in der Flexibilität und den weiteren Entwicklungsmöglichkeiten
Integrierte Entwicklungsumgebung verlassen
Quelle: S.M.Hartmann GmbHModellbasierte Low-Code-Plattformen beschränken die Anwendungserstellung auf Funktionen, die in der integrierten Entwicklungsumgebung (Integrated Development Environment = IDE) der Low-Code-Plattform verfügbar sind. Wenn die IDE keine Lösung für das Problem bietet, muss der Entwickler die IDE verlassen und die Problemlösung oder einen Workaround mit einer anderen Programmiersprache erstellen. Sobald dies erledigt ist, muss ein Connector erstellt werden, um diesen Workaround mit der Low-Code-Lösung zu verknüpfen.
Wenn ein Entwickler aber die IDE der Plattform verlassen muss, um Code in einer anderen IDE oder Sprache zu schreiben, wird das Versprechen einer schnelleren Anwendungserstellung gebrochen. Tatsächlich erhöht dieser Ansatz Zeit und Komplexität für Fehlerbehebungen und erschwert die Wartung von Anwendungen, da innerhalb einer Umgebung nicht auf die gesamte Programmierung zugegriffen werden kann. Die häufigsten Gründe, warum Entwickler modellbasierte Low-Code-IDEs verlassen müssen, sind fehlende Integrationsmöglichkeiten und komplexe Logikprozesse.
Probleme mit der Integration
In fast jede Unternehmensanwendung, die heute erstellt wird, muss mindestens ein anderes System oder ein spezielles Softwarepaket integriert werden. Die meisten modellbasierten Low-Code-Plattformen verfügen über eine eingeschränkte native Konnektivität für diese speziellen Integrationsanforderungen. Ihr Cloud-basierter Ansatz kann die Integration in lokale Anwendungen erheblich erschweren, insbesondere wenn die lokalen Anwendungen älter und z.B. nicht für die Cloud-Integration ausgelegt sind.
Wenn die Low-Code-Plattform keinen integrierten Connector bietet, muss eine spezielle Integrationslösung außerhalb der IDE erstellt werden. Entwickler müssen die IDE der Low-Code-Plattform verlassen, um eine Lösung in einer anderen Programmiersprache zu erstellen.
Komplexe Logik
Modellbasierter Low-Code konzentriert sich auf das Erstellen von Workflows in einer grafischen Drag-und-Drop-Oberfläche. Der Entwickler kann Prozesse und logische Entscheidungen nur erstellen, wenn die Low-Code-Plattform ein Symbol dafür hat. Alles, was nicht innerhalb der IDE verfügbar ist, kann nicht mit dieser bestimmten Plattform allein ausgeführt werden. Angenommen man braucht eine Lösung, die unterschiedliche Verbindungen zu verschiedenen externen Ressourcen benötigt und dann eigene Verarbeitungsentscheidungen basierend auf den zurückgegebenen Informationen treffen muss – und man stellt fest, dass jede Ressource Daten in einem anderen Format zurückgibt, das dann in ein gemeinsames Format umzuformatieren sind.
Quelle: S.M.Hartmann GmbHDer Versuch, ein derart komplexes Problem durch Drag-und-Drop von Symbolen in einer grafischen Oberfläche zu lösen, muss scheitern und wird nicht ohne umfangreiche Codierung außerhalb der IDE funktionieren. Modellbasierte Low-Code-Plattformen schränken die Lösung komplexer Probleme leider erheblich ein. Ohne die Möglichkeit, komplexe Prozesse nativ zu handhaben, sind Sie mit modellbasierte Low-Code-Plattformen nicht in der Lage, große Unternehmensanwendungen zu handhaben.
Eingesperrt in Low-Code – ausgesperrt von neuen Technologien
Die meisten Low-Code-Plattformen basieren auf festgelegten Webtechnologien und werden in einer Cloud-Umgebung gehostet. Das Erstellen von Anwendungen mit der neuesten Version einer solchen Low-Code-Plattform bietet wahrscheinlich die beste Leistung für die jeweilige zugrunde liegende Technologie.
Da sich jedoch Web- und Mobiltechnologien rasant ändern, sind die vor einigen Jahren erstellten Anwendungen mit der Zeit nicht mehr up-to-date und suboptimal. Neue Betriebssystem– oder Plattformversionen erscheinen – mit der Folge, dass Anwendungen, die mit älteren Versionen erstellt wurden, möglicherweise nicht mehr aktualisiert werden können oder in einer neuen Umgebung nicht mehr funktionieren. Ein wichtiger Aspekt bei der Auswahl einer Low-Code-Plattform ist daher deren Fähigkeit, neue Technologien zu integrieren und zu mitzuwachsen – und gleichzeitig muss sie natürlich sicher stellen, dass sich diese Änderungen nicht auf Anwendungen auswirken, die in älteren Versionen codiert wurden.
Traditionelle Codierung (Full-Code)
Wenn es um die vollständige Kontrolle über eine Anwendung geht, ermöglichen herkömmliche Codierungssprachen immer noch die größte Flexibilität und Designkontrolle. Insbesondere im Webdesign muss allerdings häufig mehr als eine Programmiersprache verwendet werden, um nur eine Anwendung oder Website zu vervollständigen. Als Beispiel hier ein paar Sprachen, für eine typische Webanwendung verwendet werden:
- Frontend: HTML5, CSS, JavaScript
- Backend: Python, PHP, Ruby, Ruby on Rails, Perl
- Datenbank: MySQL, MongoDB.
Oft benötigt man dann auch gleich mehrere Programmierer, die über das jeweils erforderliche Spezialwissen verfügen. Low-Code-Plattformen integrieren die zugrunde liegenden Sprachen in einer übergeordneten „Hochsprache“ und ermöglichen es so, dass ein einziger Entwickler in die Lage versetzt wird, nahezu alles zu programmieren – ohne spezifisches Detailwissen!
Auch die neueste und großartigste Programmiersprache unterliegt einem Wandel, oft innerhalb von nur ein paar Jahren. Programmierer, die Webanwendungen in traditionellen Sprachen erstellen, müssen Ihren Wissenstands permanent up-to-date halten bzw. alle paar Jahre mehrere neue Sprachen lernen. Es kann überaus erschöpfend sein, mit den rasanten Änderungen in den Web-Sprachen Schritt halten zu müssen, vor allem wenn die heißesten Trends nicht unbedingt die besten für die Anforderungen des Unternehmens sind.
Moderne Anforderungen
Weder mit der traditionellen Entwicklungsmethode noch mit der modellbasierten Low-Code-Entwicklung ist es schnell und effizient, möglich, aktuelle Projektanforderungen wie z.B. die Kommunikation mit anderen Anwendungen über Web-APIs zu realisieren oder Auswertungen im Sinne eines Business-Intelligence-Tools zu erstellen. Zeitgemäße sprachenbasierte Low-Code-Entwicklungsumgebungen stellen hierfür entsprechende Befehle zur Verfügung, um schnell sowohl eigene APIs zur erstellen als auch externe APIs anzusprechen bzw. haben bestenfalls ein Business-Intelligence-Tool direkt integriert oder ermöglichen über bereits vorhandene Verbindungselemente einen leichten und flexiblen Zugriff.
Dasselbe gilt für Progressive Webanwendungen oder auch für die Anforderungen, die sich daraus ergeben, dass ein- und dieselbe Anwendungen auf unterschiedlichen Endgeräten wie Laptop, Smartphone oder Tablet zur Verfügung gestellt werden muss – natürlich jeweils im richtigen Design und angepasst an die Bildschirmgröße. Mit einer sprachenbasierten Low-Coe-Entwicklungsumgebung ist man hier immer auf der sicheren Seite.
Visual LANSA: Die optimale Lösung
Tatsächlich empfehlen wir in diesem Zusammenhang Visual LANSA, dieses Tool setzen wir hausintern auch zur Entwicklung ein. Dabei handelt es sich um eine sprachenbasierte Low-Code-Lösung – tatsächlich könnte man sagen, dass es sich um die erste unternehmensfähige Midcode-Lösung handelt. Visual LANSA kombiniert die Flexibilität und Kontrolle traditioneller Programmierung mit den Vorteilen und Konzepten von Low-Code-Prinzipien.
Mit Visual LANSA bleibt man immer in der Entwicklungsumgebung (IDE) , während man eine Lösung für alle komplexen Prozesse und benutzerdefinierten Integrationsanforderungen programmiert. Visual LANSA verfügt über eine eigene leicht erlernbare Programmiersprache, die in der IDE verwendet werden kann.
Um noch mehr Flexibilität zu bieten, kann dieselbe Programmiersprache für serverseitige und clientseitige Anwendungen und Objekte verwendet werden. Bei der herkömmlichen Codierung hingegen muss z.B. PHP als serverseitige Sprache und eine Kombination aus JavaScript und HTML / CSS für die Clientseite verwendet werden. Bei modellbasiertem Low-Code erstellt ein Entwickler möglicherweise den clientseitigen Teil in der Low-Code-IDE und muss dann extern einen separaten Connector für den Datenabruf programmieren.
Mit Visual LANSA muss ein Entwickler also nur noch eine Sprache können, um umfangreichste Unternehmensanwendungen zu erstellen: eine einzige Sprache und eine einzige Plattform zum Erstellen von Applikationen und Programmpaketen – unabhängig davon, ob man diese auf Mobilgeräten, im Internet, auf Servern, auf einer IBM i oder lokal bereitstellt. Visual LANSA erhöht die Geschwindigkeit der Anwendungserstellung gegenüber der herkömmlichen Codierung zum Teil um das 10fache, indem automatisch Codezeilen erstellt werden – z.B. durch die automatische Erstellung von Servermodulen oder wiederverwendbaren Elemente, auf die dann von jeder Visual LANSA-Anwendung aus zugegriffen werden kann.
Entwickler müssen also nicht nur weniger Code schreiben, sondern können auch Programme, Funktionen und Module erstellen, die in anderen Anwendungen wiederverwendet werden können. Der gleiche Prozess wird für die Erstellung ganzer Unternehmensframeworks und Webanwendungen angewendet: Beantworten Sie einige Fragen, und die Struktur und das Layout sind für Sie abgeschlossen.
Wenn sich die zugrunde liegenden Technologien ändern und neue, effizientere Methoden aktuell werden, bleiben Visual LANSA-Anwendungen davon unberührt. Visual LANSA trennt die Codierungssprache von der zugrunde liegenden Technologie, mit der die Anwendungen ausgeführt werden. So kann Visual LANSA z.B. problemlos mit der Weiterentwicklung der Web-Technologie Schritt halten, ohne die Möglichkeiten der Entwickler jemals zu beeinträchtigen.
Der interne Code für die Ausführung einer Visual LANSA-Anwendung im Web kann sich ändern, der einmal programmierte Code, der die Prozesse und die Logik steuert, bleibt jedoch unberührt. Dieses Entwurfsmodell stellt sicher, dass Visual LANSA zukunftssicher ist, und beseitigt die Gefahr, dass Visual LANSA-Anwendungen in den nächsten Jahren veraltet sein werden.
Seit kurzer Zeit hat Visual LANSA auch ein Business-Intelligence-Tool in die Entwicklungsumgebung integriert – die webbasierte Business-Intelligence-Plattform Yellowfin, die sowohl vor Ort als auch in der Cloud über die Marktplätze von Amazon und Azure bereitgestellt werden kann.
Die Programmierung mit einem Low-Code-Tool ist wohl der leistungsstärkste Prozess zur Anwendungserstellung, der Entwicklern heute zur Verfügung steht. Durch die Verknüpfung von höchst performanter Programmentwicklung mit den Vorteilen der traditionellen Programmierdenkweise zur Lösung komplexer Integrationen und Probleme sind höchste Effektivität und Effizient gewährleistet.
Visual LANSA ist eine solche Low-Code-Lösung, mit der sich die Entwickler auf die Lösung geschäftlicher Anforderungen konzentrieren können, anstatt sich bemühen zu müssen, aufgrund irgendwelcher Einschränkungen externe Workarounds zu finden. Modellbasierter Low-Code kann nützlich sein, wenn nur einfache Anwendungen benötigt werden. Zur Erstellung oder Pflege von Unternehmensanwendungen ist sprachenbasierter Low-Code jedoch die weitaus effizienteste und effektivste Methode.
Jörg Hamacher ist Geschäftsführer der S.M.Hartmann GmbH.