Wie das Programmieren ohne Text von der Hand geht Visual Programming Languages und No-Code

Von Stephan Augsten

Anbieter zum Thema

Visuelle Programmiersprachen verzichten auf jeglichen Text-Code – volle Konzentration auf die Logik. Die einzig benötigte Fähigkeit: Puzzeln.

Der Quellcode eines Arcade-Spiels in „Snap!“.
Der Quellcode eines Arcade-Spiels in „Snap!“.
(Bild: Snap!)

Die erste Assoziation zu „Programmieren“ dürfte häufig „Code“ sein – im Sinne von Quelltext nach einer spezifizierten Syntax und Grammatik. Ein Programmierer ist demnach im Grunde schlicht ein Autor für hochspezialisierten Text. Das liefert Freiheiten, aber auch die Notwendigkeit, eine bestimmte Sprache zu beherrschen.

Letztlich geht es aber doch nur um die Geschichte – und dafür muss man im Grunde gar keine Sprache schreiben können. Höhlenmenschen konnten Geschichten grafisch vermitteln, Kleinkinder tun es heute noch. Und genau an der Stelle setzt auch visuelle Programmierung an.

Grafische Unterstützung beim Programmieren gibt es seit eh und je – Visual Studio, Visual Basic & Co. verlangen aber freilich nach textueller Programmierung, lediglich grafische Oberflächen lassen sich bisweilen in WYSIWYG-Editoren zusammenschustern. Visual Programming Languages (VPL) hingegen ermöglichen die Entwicklung von Apps ganz ohne (Text-)Code. Kein Code? Da kommt auch gleich das nächste, deutlich modernere Schlagwort zu Tage, No-Code.

Der Quellcode eines Arcade-Spiels in „Snap!“.
Der Quellcode eines Arcade-Spiels in „Snap!“.
(Bild: Snap!)

Im Grunde meinen No-Code und VPL ein und dasselbe, auch wenn man sich hier freimütig in Definitionen verstricken darf: Apps werden über grafische Elemente zusammengestellt, die einfach per Drag and Drop abgelegt werden – ebenso die logischen Verbindungen zwischen solchen Elementen.

Auf höherem Level dürfte das allgemein bekannt sein, insbesondere in Form von Ablaufdiagrammen per Unified Markup Language (UML), deren Logik theoretisch „nur noch“ von reinen Codern in eine Programmiersprache gegossen werden muss; und mit Executable UML (xUML) gab es auch den Versuch, derlei UML-Diagramme direkt ausführbar zu machen. In der Praxis werden VPL und No-Code dann aber doch meist recht unterschiedlich verstanden.

Visual Programming Languages

Mit VPL werden heute vor allem die Block-Editoren in Verbindung gebracht, wie zum Beispiel beim MIT App Inventor zu sehen, den wir vor einiger Zeit bereits näher vorgestellt haben. Auf ein ähnliches System setzt auch die Microsoft-Lernplattform MakeCode.

Das Prinzip ist recht simpel. Bausteine wie etwa Schleifen, Setzen oder Lesen von Variablen, Bedingungen oder GUI-Manipulationen werden in Form von Puzzle-Teilen angeboten, die eben zusammengepuzzelt werden können. Der große Charme dabei: Es lassen sich eben nur passende Dinge zusammenbauen. Damit ist nicht bloß die Syntax nebensächlich, sondern auch die Grammatik – übrig bleibt fast reine Logik, die Geschichte der App.

So einfach der Zusammenbau aber auch sein mag, VPLs sind immer eingeschränkt. Die Freiheiten einer mächtigen Programmier- oder Skriptsprache darf man hier nicht erwarten. Zu sehr sind die Möglichkeiten vom Entwickler der VPL und dessen Umgebung abhängig. Und so sind Block-Editoren häufig auf einen engen Kontext gemünzt.

Auf MakeCode etwa gibt es spezielle Baukästen, um Retro-Browser-Spiel zu erstellen und um Kleinstcomputer bspw. für den IoT-Bereich zu bespielen. Der App Inventor ist an der Stelle schon deutlich offener, was die Inhalte angeht, ist aber nur für Android-Apps gedacht. Dort werden beispielsweise auch API-Zugriffe über Blöcke realisiert. Mal ein konkretes Beispiel, wie eine komplette Foto-App entstehen könnte:

  • WYSIWYG-GUI-Designer: „Button1“ platzieren
  • Block-Designer: WENN-DANN-Block setzen
  • WENN: Button1 geklickt wird
  • DANN: Rufe die Smartphone-Kamera auf und nehme ein Foto auf

Mit drei Drag-and-Drop-Aktionen steht eine App samt grafischer Nutzeroberfläche. Es gibt aber auch VPLs, die eher unter General Purpose fallen, etwa Snap!, zu finden bei der University of California Berkeley. Und freilich: Wie die meisten Varianten läuft Snap! direkt im Browser.

Bei MakeCode sind die Blöcke sogar auf Deutsch verfügbar.
Bei MakeCode sind die Blöcke sogar auf Deutsch verfügbar.
(Bild: MakeCode)

Hauptfokus vermutlich aller Visual Programming Languages ist die Lehre. Plattformen wie MakeCode, MIT App Inventor und Snap! werden von allgemeinbildenden Schulen über Volkshochschulen bis hin zu Elite-Universitäten weltweit für Schulungszwecke eingesetzt. Allerdings sollte man die Frameworks auch nicht unterschätzen, es lassen sich durchaus einfache praxistaugliche Apps entwickeln – wenn die IT-Abteilung gerade mal keine Zeit hat.

No-Code

Profis und IT-Abteilungen werden sich in der Regel wenig um Snap! und Co. scheren, außer vielleicht wieder zu Schulungszwecken. In solchen Umfeldern ist eher von No-Code-Plattformen die Rede.

Workflow-Design in Unqork.
Workflow-Design in Unqork.
(Bild: Unqork)

Hierunter fallen der extrem mächtige Web-Services-Verbinder IFTTT (If This Then That) oder unqork, die ihre Lösung in einem Marketing-Artikel mit dem Titel „No-Code Is the Visual Programming We've Been Waiting For“ vorstellen. In einem einminütigen Video lässt sich dort zum Beispiel sehen, wie eine simple Smartphone-App mit ähnlich wenig Aufwand entsteht, wie es beim App Inventor der Fall ist.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Im No-Code-Bereich ist ebenfalls meist ein gewisser Kontext vorgegeben, beispielsweise für Anwendungsbereiche wie Finanzen oder bestimmte Branchen. Und natürlich liefern kommerzielle Anbieter Lösungen für individuell vereinbarte Kontexte, sprich die Erfordernisse und Möglichkeiten einzelner Unternehmen oder Abteilungen.

Der No-Code-Markt hat in den letzten Jahren deutlich an Fahrt aufgenommen und bringt auch zunehmend General-Purpose-Lösungen zu Tage, die nicht so sehr auf einen Fokus getrimmt sind, wie zumindest die meisten VPLs. Beispielsweise konnte das 2016 gegründete niederländische Unternehmen Betty Blocks in 2021 ein Investment von 33 Millionen Euro durch unter anderem die NIBC Bank verzeichnen.

Ist das nützlich?

Die Betty-Blocks-Homepage zitiert das nächste passende Buzzword: Citizen Developer. No-Code-Plattformen können durchaus von hauptberuflichen Entwicklern genutzt werden, um schlicht und ergreifend deutlich schneller zum Ziel zu kommen. Es dürfte zudem um ein Vielfaches einfacher sein, Unternehmens- und Entwicklungskonventionen durchzudrücken, Kompatibilität zwischen diversen Anwendungen zu erreichen und so weiter. Auch für Demos, zur Veranschaulichung von Programmlogiken oder Quick Prototyping haben derlei Systeme ihren Reiz.

Solche Plattformen zielen allerdings häufig auf Menschen ab, die eben keine (hauptberuflichen) Entwickler sind. VPLs und No-Code-IDEs befähigen technikaffine Mitarbeiter und Organisationseinheiten, eigene, nur für kleine Bereiche relevante Apps zu entwickeln – ohne sich wochen- oder monatelang mit Formalia, Beschaffung und Wartezeiten zu arrangieren. Dass sich hier auf der anderen Seite eine ganze Reihe von Problemen ergeben können, insbesondere Schatten-IT samt Sicherheitsrisiken, steht auf einem anderen Blatt.

Klar ist aber auch: Je umfangreicher die Möglichkeiten der Entwicklung, desto komplexer das jeweilige System. Wer noch nie programmiert hat, könnte zwar möglicherweise mit dem MIT App Inventor binnen einiger Stunden eine kleine Demo-Anwendung bauen, für eine produktiv genutzte App mit Betty Blocks dürften dann aber doch wieder relevant viel Arbeitszeit und Skills von Nöten sein. Die Hauptfrage dürfte hier jeweils sein: Welche Tools mit welchen Vorgaben und Möglichkeiten gibt ein Unternehmen für „Citizen-Entwicklungen“ frei.

Ein gutes Beispiel dafür, dass selbst Laien wahre Produktivitätswunder programmieren können, ist IFTTT: Eine Unternehmens-IT könnte hier eigens erstellte Bausteine anbieten, aus denen nun wirklich fast jeder Mitarbeiter nützliche, praxistaugliche Anwendungen ableiten könnte, um produktiver, effizienter oder einfach nur komfortabler zu arbeiten. Eigentlich klar, denn IFTTT überlässt den größten Teil der Arbeit bereits bestehenden „großen“ Anwendungen und schaufelt vor allem Daten gemäß Bedingungen von A nach B. Anders ausgedrückt: IFTTT ist ein API-Verbinder.

Visuelle Programmierung erstreckt sich also über ein weites Feld. Angefangen von simplen Lern-Puzzle-Baukästen für extrem eingeschränkte Bereiche wie Retro-Browser-Spiele, über General-Purpose-No-Code-Plattformen, bis hin zu High-Level-Workflow-Designern wie IFTTT. Nutzen lässt sich da in nahezu jeder denkbaren Situation finden – auch wenn dieser erstmal gegen Risiken gegengerechnet werden sollte!

Auf professionellem Level und bei der Entwicklung für „echte“ In-the-Wild-Anwendungen dürfte aber (noch) der logische nächste Level die Nase vorn haben: Low-Code-Plattformen erweitern die No-Code-Systeme dann um die Möglichkeit, auch manuellen Text-Code beizusteuern.

Nimmt man nun noch aktuelle Entwicklungen wie AI-gestützte Programmierhilfen wie GitHub Copilot hinzu, könnte sich eine Entwicklungswelt abzeichnen, in der Programmierer eher Maler denn Autoren sind. Zumindest in der Theorie des Marketings – in der Praxis dürften viele Programmierer nach wie vor an den Freiheiten textueller Programmiersprachen hängen. Development-Revolutionen werden häufig angekündigt, bleiben aber meist eher Modeerscheinungen.

(ID:48143070)