• Lena

Interview mit dem Ideengeber und Architekt der Sprache storm – Lars Laegner

Lernen Sie mehr über die Architektur und die Hintergründe der Entwicklung der Programmiersprache storm. Lars Laegner beschreibt, warum der Ansatz wesentlich effizienter bei der Umsetzung von Businessanforderungen funktioniert als klassische SAP Entwicklungsmethoden.

Wie würden Sie kurz die Highlights und den Nutzen der Programmiersprache storm zusammenfassen?

storm löst typische Anforderungen an die Implementierung von Anwendungen im Business-Umfeld zeitsparend und mit hoher Qualität. Dabei geht es darum, Anforderungen deskriptiv zu beschreiben, in einer perfekt dafür ausgelegten Umgebung, der Spezifikations- und Designsprache storm. Diese kann Requirements an Daten und UI’s sehr intuitiv beschreiben, ist gleichzeitig mächtig und umfangreich. Unsere Software erledigt die eigentliche Implementierung der Anwendungen automatisch, sobald Sie Ihre Spezifikation speichern. Wir liefern ein Resultat, das so aussieht, wie ein guter Programmierer es umsetzen würde.

Warum sollte ich storm verwenden, meine Programmierer sind ja in der Lage, alles selber zu programmieren?

Weil Sie mit der Fertigstellung der Spezifikation der Anforderungen bei storm automatisch auch fertig sind mit der Implementierung. Wenn Sie alles selber umsetzen, brauchen Sie einen Programmierer der alle notwendigen Sprachen kennt, die für eine Full-Stack Anwendung notwendig sind. Zum Beispiel SAPUI5, HTML5, CSS für das Frontend und Java inklusive der Frameworks OData und JPA für die Persistenz auf dem Backend. Typischerweise beherrschen die allerwenigsten Programmierer alle Welten gleich gut, daher haben Sie immer ein Team, welches koordiniert werden muss. Damit entstehen Schnittstellenherausforderungen und wenn Sie Ihre Anwendung auf eine neue Plattform migrieren wollen, implementieren Sie typischerweise alles nochmal.


Mit modernen Frameworks und neuen Programmiermodellen kann ich doch auch schneller implementieren heutzutage?

Ja, aber erstens um Faktoren langsamer als mit storm und zum anderen sind Sie gezwungen, sich im Detail damit auseinanderzusetzen. Mit storm definieren Sie die Anwendung einmalig und plattformunabhängig. Sie lassen die Anwendung automatisch implementieren für alle Plattformen, die Sie benötigen.

Warum nochmal die Arbeit machen, wenn Sie bereits definiert haben, was Sie wollen?

Nehmen wir das Beispiel von SAP Plattformen, alleine im Bereich SAP Java gibt es davon unzählig viele. SAP NetWeaver Portal mit Java EE5, SAP Cloud Platform mit Java EE6 Web Profile/SAP Cloud Platform mit Java EE7 Web Profile (TomEE). Mittlerweile bietet SAP für die Java Entwicklung zudem die Cloud Foundry Edition an. Da hinzu kommen noch die HANA XS Tomcat Versionen. Ihre Programmierer sind primär damit beschäftigt, neue Details der Implementierungen und Plattformen zu entdecken. Das bedeutet einen hohen Zeitaufwand anstatt sich auf Business-Logik und das Umsetzen der eigentlichen Anforderungen zu konzentrieren. Viele der obigen Plattformen bedingen eigene IDE’s und Projekttypen, die nicht kompatibel sind. Im klassischen Umfeld sind Sie ständig damit beschäftigt, Plattform- und Framework-Details und Bugs selber zu umschiffen. Das wird jetzt im Generator für Sie hinterlegt und steht automatisch allen Nutzern der Sprache zur Verfügung. Wenn eine Zielplattform neue Best Practice Lösungen vorgibt, sind wir in der Lage dies in einer neuen storm Version zu benutzen. Damit haben Sie den schnellsten Weg zur optimalen Umsetzung Ihrer Anforderung auch in der Zukunft.

Wenn Ihr Generator eine Anforderung nicht umsetzen kann, die ich benötige, stecke ich mit Ihrem Tool dann in einer Sackgasse?

Nicht bei storm. Zum einen haben wir verschiedene Erweiterungskonzepte direkt in der Sprache integriert. Zum Beispiel Funktionen, die wir zu definierten Zeitpunkten auf dem Server aufrufen, vor oder nach einem Update einer bestimmten Entität. Auch UI-Aktionen, wo Sie Ihren eigenen JavaScript Code selber hinterlegen. Wenn Sie am UI selber eine spezielle UI5 XML Definition vornehmen wollen, fügen Sie das in der Spezifikation an Ort und Stelle hinzu. Der Erweiterungsaspekt ist uns sehr wichtig und hat das Ziel, dass Sie zu 100% in storm implementieren. Aus diesem Grund sind wir hier verstärkt aktiv und bieten in Zukunft weitere Optionen zur Einbringung Ihres Codes an.

Das entscheidende Argument führe ich gerne noch zum Schluss an. Der Code, den wir generieren, ist wie von einem Programmierer gebaut. Wenn Sie für dieses Projekt die weitere Implementierung selber übernehmen möchten, importieren Sie es einfach in die IDE Ihrer Wahl und machen dort weiter. Sie verlieren keine Zeit, haben keine Arbeit. Wir verwenden keine unlesbaren Variablennamen oder undurchdringliches Coding. Unser Ziel ist es, alle Anforderungen direkt in storm zu ermöglichen. Aus diesem Grund gehen wir davon aus, dass Sie diesen Schritt nicht benötigen. Kommen Sie statt dessen lieber auf uns zu, wir bauen ein neues Feature oder Patterns in unser Produkt ein.


Kann ich beliebige Anwendungen damit implementieren?

Nein. Wir erzeugen keine Blockchain Anwendungen, IoT Hardware Anbindungen oder ähnliche. Wir konzentrieren uns im ersten Jahr auf 2 wesentliche Szenarien, Data Entry und Search. Unser Ziel ist, alle notwendigen Sprachelemente bereitzustellen, dass Sie diese Aufgaben sehr effizient umsetzen können. Grundsätzlich werden wir sicherlich mit weiteren storm Versionen auch weitere nachgefragte Szenarien umsetzen. Ein mögliches Szenario wäre hier sicherlich die Unterstützung von Workflows. Hier werden wir eng mit unseren Partnern und Kunden die wichtigsten Themenfelder definieren.


Implementieren Sie nur SAP Apps?

Aktuell generieren wir vollständige SAPUI5 Apps, inklusive Server-Schnittstellen und Persistenz in Java. Wichtiges Designkriterium der Sprache storm ist, dass wir alle Definitionen plattformunabhängig erfassen. Ob Sie eine Anwendung auf SAP NetWeaver mit Java EE5 oder auf SAP Cloud Platform TomEE 7 implementieren, ist für Sie transparent. Solange Sie nur Standardfunktionalitäten der storm Sprache verwenden, genügt die Angabe des Systemtyps der Zielplattform. Sie merken nicht, dass wir für das Dokument-Pattern auf SAP NetWeaver KM verwenden und auf der SAP Cloud Platform den SAP Document Service beziehungsweise CMIS-Schnittstelle. Wichtige SAP Zielplattform ist strategisch für uns der ABAP Stack sowie neue Cloud Angebote von SAP. Hier werden in Zukunft weitere Ankündigungen kommen. Im Moment sind wir hier schon sehr gut aufgestellt. Wir verwenden bereits alle OData-Services der ABAP Plattform für die Auswahl von Daten, wie zum Beispiel Drop-Downs.


Welche Art von Programmierpatterns bieten Sie an, das keine andere Programmiersprache einfach mitbringt?

Wir haben verschiedene Patterns Typen definiert, die es ermöglichen, alle notwendigen Bereiche der typischen App-Entwicklung spezifizieren zu können. UX-Patterns für das User Interface, die wiederum Action-Patterns für die Aktionen auf Daten verwenden. Selbstverständlich gibt es auch Responsive-Patterns um flexible und mobile Desktop- und Tablet-Anwendungen plattformgerecht zu spezifizieren. Ebenso haben wir auch UI-Validierung-Patterns auf Einzelfeldern oder auf dem gesamten Modell einer Entität. Wichtige Idee dabei ist immer, dass Sie plattformneutral definieren. Auf diese Weise können wir ein storm-Validierung-Patterns für SAP UI5 korrekt in die Restriktionen eines XML View Elementes wandeln. Gleichzeitig kann es als UI5 JavaScript Funktion angeboten und als serverseitige Java-Validierungsprüfung implementiert werden. Das ist möglich, weil alles aus einer plattformunabhängigen Quelle kommt und wir in beliebige Programmiersprachen transformieren.

Typischerweise versagen Generatoren bei komplexeren Themen wie Berechtigungen auf Daten, da dies kein simples Thema ist und die Anforderungen häufig kundenindividuell sind. Wie haben Sie das gelöst?

Ja, das war eine besondere Herausforderung.

Hohe Freiheitsgrade bei der Definition der Berechtigungen und gleichzeitig flexible Verwendung an verschiedensten Stellen der Datenpflege, UI’s, Suche. Wir sind sehr stolz darauf, dies in unseren aktuellen Plattformen sehr gut umzusetzen.

Sie definieren, welche Berechtigungssammlung Sie nutzen wollen. Zum Beispiel eine „Full Control“ Berechtigung, die alle Aktionen auf einer Entität erlaubt, oder eine Read-Only Berechtigung. Dies kann mit statischen Benutzergruppen hinterlegt werden, aber auch datenabhängig dynamisch basierend auf den Feldwerten einer Entität. Wenn ein Endbenutzer beispielsweise am Business-Objekt festlegen soll, dass die Abteilung Finanzen leseberechtigt und die Abteilung Produktion schreibberechtigt ist, ist das in wenigen Zeilen definiert. Implizit hängen wir die Berechtigung bei Java Plattformen direkt an die Daten, wodurch wir performant berechtigungstreu suchen können. „Early ACL Binding“ ist hier als Fachbegriff zu nennen. Sie verwenden die Berechtigungsdefinition analog auch bei einem Suchfilter, um schnell einen Such-Tab zu erstellen. Auf einem Tab zeigen Sie schreibberechtigte, in einem anderen Tab leseberechtigte Objekte. Das alles jeweils in einer Zeile definiert.

Aber es steckt sehr viel Aufwand im SAPUI5 Generator dies korrekt auf Frontend und Server umzusetzen. So können Sie sehr einfach ein dynamisches berechtigungsabhängiges UI definieren. Dieses blendet bei einem Zugriff eines nicht schreibberechtigten Benutzers bestimmte Tabs des UI’s aus.


Was sind Ihre Ziele und Pläne für 2018 und darüber hinaus?

2018 ist das Ziel, den Marktstart erfolgreich zu gestalten. Aktuell sind wir in der Ramp-Up Phase und begleiten die ersten Projekte zum Go Live. Wir erweitern Schritt für Schritt die Sprache dort, wo der größte Nutzen für unsere Kunden liegt. Mittelfristig bauen wir hierfür eine digitalisierte Cloud Platform für die storm basierte Generierung von Anwendungen auf. Aktuell ist der Fokus auf SAPUI5 mit Java, weitere SAP Plattformen werden langfristig folgen. Wenn der Kern der stormPlattform soweit ist, werden wir die Erstellung von individuellen Anwendungspatterns für unsere Partner und ambitionierte Kunden öffnen. Dadurch ist hier langfristig noch mehr Potential für das Umsetzen weiterer Szenarien vorhanden.

Wir werden unseren Kunden gut zuhören, welche Ausbaustufen auch außerhalb des SAP Sektors, wie Microsoft Azure oder Amazon AWS für Sie interessant sind. Wir wollen uns bewusst den Freiraum lassen, nächstes Jahr vielleicht ein Microsoft Azure oder Amazon AWS basiertes UI auf Basis von Angular JS zu erzeugen. Unsere Kunden werden uns den Weg weisen.


Vielen Dank für das Interview!

Sehr gerne.


(Stand 2017)


Meichelbeckstraße 28

81545 München

Deutschland

Mainzer Straße 97

65189 Wiesbaden

Deutschland

Impressum // Nutzungsbedingungen // Datenschutz | Copyright © 2020 frequi GmbH & Co. KG. All Rights Reserved.

  • Facebook Social Icon
  • LI-In-Bug
  • Twitter_Logo_WhiteOnBlue
  • XNG_Sharebutton_v01-7d06f36109c803c7a79f