Open Source im professionellen Einsatz
Linux-Magazin 06/2014
© Janaka Dharmasena, 123RF

© Janaka Dharmasena, 123RF

Visual Programming Languages

Da-Vinci-Code

In grafischen Programmiersprachen klicken Entwickler ihre Software aus fertigen Bausteinen zusammen. Die dabei praktizierten Ansätze und bereitgestellten Werkzeuge unterscheiden sich stark von denen konventioneller Universalsprachen, wie der Test von einigen kostenlosen Entwicklungsumgebungen zeigt.

1091

Die Idee klingt bestechend: Wie in einem Malprogramm zeichnen Programmierer mit der Maus einen Ablaufplan, den die Entwicklungsumgebung in eine fertige Anwendung verwandelt. So müssen sie weder eine kryptische Sprachgrammatik lernen, noch produzieren sie Syntaxfehler oder Pufferüberläufe. Im Idealfall führt die Entwicklungsumgebung das Programm sogar schrittweise aus, hebt die gerade aktive Komponente optisch hervor und erleichtert so die Fehlersuche.

Obwohl erste grafische Entwicklungsumgebungen schon in den 1960er Jahren entstanden, hat sich die visuelle Programmierung bis heute nicht großflächig durchgesetzt. Gebräuchlich sind lediglich GUI-Editoren oder Rapid Development Tools (RAD), in denen Entwickler die Benutzeroberfläche ihrer Anwendungen zusammenklicken, Beispiele sind Glade [1] und Qt Designer [2].

Am Ende erwecken aber doch erst wieder mühsam eingetippte Codebröckchen die GUI-Elemente zum Leben. Ähnlich limitiert sind Werkzeuge für den Entwurf, allen voran Tools für Unified Modeling Language [3]. Auch sie generieren meist nur ein Codegerüst, das der Programmierer über die Tastatur mit Funktionen füllt.

Wer aber gründlich sucht, findet erstaunlich viele grafische Programmiersprachen (Visual Programming Languages, VPL). Meist liefern ihre Erfinder gleich eine passende Entwicklungsumgebung mit, nur selten entsteht eine VPL am Reißbrett. Zwar ist die Sprache dadurch praxiserprobt, doch muss der Programmierer auch zwingend die zugehörige Umgebung benutzen, die ihre Entwickler meist für ein ganz bestimmtes Anwendungsgebiet konzipieren.

Etoys, Scratch & Co.

Die Entwicklungsumgebung Etoys [4] unterliegt zu Teilen der MIT- und Apache-Lizenz und richtet sich vor allem an Kinder. Sie sollen im Unterricht eigene interaktive Geschichten schreiben oder die Umlaufbahnen der Planeten nachprogrammieren. So will Etoys den Schülern nicht nur das Programmieren schmackhaft machen, sondern ihnen spielerisch auch die Mathematik näher bringen, Wissenschaft anschaulich erklären und den Umgang mit Sprache verbessern.

Bereits vor der Jahrtausendwende von Disney entwickelt, arbeitet die Squeakland Foundation derzeit an Etoys weiter. Wer die Entwicklungsumgebung nicht im Repository seiner Distribution findet, lädt von der Homepage eine "To Go"-Fassung herunter, allerdings nur für 32-Bit-Systeme. Es genügt, das entsprechende Zip-Archiv zu entpacken und dann »etoys.sh« aufzurufen.

Startet er ein neues Projekt, zeichnet der Entwickler zunächst mit den eingebauten Malwerkzeugen zweidimensionale Objekte wie Autos, Straßen oder Häuser. Diese arrangiert er dann auf einer weißen Leinwand zu einer kleinen Szene. Klickt er ein Objekt mit der rechten Maustaste an, helfen mehrere kleine Symbole (Abbildung 1) dabei, es unter anderem zu drehen, in der Größe zu verändern oder im so genannten Beobachter zu öffnen. Dahinter verbirgt sich eine Palette mit zum Objekt passenden Funktionen. Diese setzt der Anwender wiederum per Drag & Drop zu einem Skript zusammen.

Abbildung 1: Im Bild lässt das angezeigte Skript das kleine rote Auto über den Bildschirm fahren, über die eingeblendeten Symbole manipulieren Kinder zudem den großen blauen Stern.

Benötigt eine Funktion Parameter, etwa die Gradzahl bei einer Drehung, stellt der Anwender diese über Mausklicks fest ein. Alternativ darf er auch Variablen erstellen. Etoys bietet sogar eine rudimentäre Versionsverwaltung, die Entwicklungsumgebung selbst basiert auf der Smalltalk-Implementierung Squeak. Von diesem objektorientierten Unterbau bekommt der Anwender nichts mit, erst auf expliziten Wunsch blendet Etoys den Smalltalk-Quellcode ein.

Die Entwickler stellen auf der Webseite eine umfangreiche Dokumentation bereit, hinzu kommen Beispiele sowie kostenlose Lehrvideos (Screencasts). Dennoch dauert das Einarbeiten etwas länger und ist die Bedienung wenig intuitiv.

Für kleinere Kinder bieten sich als Alternativen Scratch [5] oder das darauf aufsetzende Snap [6] an. Beide stellen die Funktionen in Form von bonbonbunten Bausteinen bereit. Über deren Nasen und Einbuchtungen stecken sie das korrekte Programm zusammen. Die einzelnen Codebestandteile heben beide farbig hervor. So strahlen beispielsweise Schleifen in einem dunklen Gelb.

Scratch und Snap sind jedoch als Webdienste ausgelegt. Während sich Snap nur über seine Homepage aufrufen lässt, setzt die Offline-Version von Scratch auf die unter Linux kaum noch lauffähige Runtime-Umgebung Adobe Air.

Eher an Schüler richtet sich die Entwicklungsumgebung Alice [7], die ihren Eleven 3-D-Programmierung (Abbildung 2) näherbringen möchte. Der Fokus liegt hier mehr auf der Objektorientierung.

Abbildung 2: Die meist jugendlichen Benutzer des 3-D-Editors Alice können zum Beispiel einen dreidimensionalen Wolf durch eine selbst entworfene Szenerie laufen lassen.

Die aktuelle Version 3.1 basiert auf Java und installiert sich ungewöhnlicherweise über einen Assistenten. Der saugt knapp 1,2 GByte Daten aus dem Internet, darunter 3-D-Objekte wie Personen und Wohnungsgestände aus dem Computerspiel "Die Sims 2". Verwenden dürfen Alice-Nutzer diese aber nur für nicht kommerzielle oder akademische Zwecke. Alice' eigene Lizenz [8] erlaubt einen kostenlosen Einsatz.

Wie bei Etoys ähneln die fertigen Ablaufpläne sehr stark den einfachen, imperativen Programmen, in denen jemand einen Kasten um jede Anweisung gemalt hat. Auf Wunsch zeigt Alice Java-Code an, die Funktionen im Ablaufplan erhalten dann unter anderem Klammern um ihre Parameterliste. Diese Darstellung hilft Schülern, die mit Alice Java lernen.

Fertige Animationen nimmt die eingebaute Screencapture-Funktion auf, als Bonus gibt es eine direkte Anbindung an Youtube. Über die Alice-Homepage erreichen Interessierte eine Vielzahl von Tutorials und Beispiele, für Lehrer gibt es sogar passendes Lehrmaterial.

Blockly

Auf den ersten Blick erinnert das unter der Apache-Lizenz stehende und von Google entwickelte Blockly [9] an Snap oder Scratch. Der visuelle Code-Editor lässt sich in eigene Webanwendungen einbinden und hilft den Benutzern dabei, Makros zu erstellen. Blockly ist eher ein Framework und der mitgelieferte Code-Editor zugleich ein Beispiel für eine Blockly-Anwendung.

Wie in allen anderen Blockly-Anwendungen klickt sich der Entwickler aus den angebotenen Bausteinen der linken Palette das passende Programm zusammen (Abbildung 3). Die unterschiedlichen Kontrollstrukturen tragen verschiedene Farben, Schleifen sind zum Beispiel grün. Mehrere Anweisungen fasst der Benutzer zu Funktionen zusammen, außerdem kann er Variablen erstellen. Blockly setzt aber nur imperative Programme um.

Abbildung 3: Dieses Beispiel aus Blockly zeigt die auf der rechten Seite zusammengeklickte Funktion als Graph an.

Mit Hilfe der visuellen Programmiersprache führt der Entwickler die zusammengeklickten Programme nicht nur aus, sondern übersetzt sie im Hintergrund automatisch in Python-, Dart- und Javascript-Code oder überführt sie in ein XML-Format. Der Editor zeigt den so generierten Code direkt auf den entsprechenden Registern an.

Im Auslieferungszustand kennt Blockly nur wenige Bausteine mit den wichtigsten Grundfunktionen. Eigene Bausteine erzeugt der Coder in einem Editor, der Block-Factory. Links legt der Entwickler das Aussehen des Blocks fest, rechts schreibt er die Logik in den Editor – allerdings in normalem Javascript.

Die Dokumentation von Blocky beschränkt sich auf ein Wiki. Weitere Hilfe liefern die mitgelieferten Beispiele. Sie zeigen, wie man Blockly in die eigene Webanwendung integriert. Nach dem Auschecken des aktuellen Blockly-Quellcodes aus dem Subversion-Repository liegen die Beispiele in den Unterverzeichnissen unter »blockly/apps/« .

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • IBM droht Open-Lava-Projekt

    Der Gründer des Open-Lava-Projekts, David Bigagli, hat Post von IBMs Anwälten erhalten. Der Vorwurf: Ab Version 3.0 verletze die GPL-Software Copyright von IBM. Bigagli widerspricht, doch die Hintergründe bleiben unklar.

  • Opensuse Conference 2010: Reboot und Alice im Wunderland

    Gut 250 Besucher treffen sich seit gestern mitten im Knoblauchsland nordwestlich von Nürnberg zur zweiten Opensuse Conference. "Hintern hoch!" - treffender könnte das Motto für die Suse-Entwickler nicht lauten.

  • Update: Qt-IDE für Entwickler ist da

    Die auf den Qt Developer Days in München angekündigte Entwicklungsumgebung ist nun für Tester und Neugierige verfügbar.

  • Spielplatz zum Lernen

    Eine Million Schüler in über 40 Ländern verwenden den XO-1-Computer des OLPC-Projekts im Schulunterricht. Dessen intuitive Oberfläche Sugar gibt es nun auch für andere Plattformen.

  • Alien im Wunderland

    Alien (Alice Environment) ist eine Grid-Implementation aus Open-Source-Komponenten. Dieses Cern-Projekt einer kleinen Arbeitsgruppe stellt die Infrastruktur für verteilte Simulationen, Rekonstruktionen und Analysen von sehr umfangreichen Physikdaten bereit.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.