Die Programmiersprache und App-Plattform Flow steht nun unter Open-Source-Lizenzen. Die Entwickler glauben, dass die Welt eine weitere Programmiersprache braucht.
Flow ist eine funktionale Programmiersprache. Zugleich dient es als Plattform, um Apps für Mobilgeräte und Desktop-Rechner zu schreiben. Flow ist dabei keine neue Programmiersprache. Laut einem Blogpost begann die Entwicklung bereits vor 9 Jahren, also 2010. HTML5 steckte noch in den Kinderschuhen, Adobe Flash war der Quasi-Standard. Flow entstand, weil die Entwickler wussten, dass Flash sterben wird. Also suchten sie nach einer Software, die alternativ auf iOS und Android läuft.
Haxe war der erste Kandidat, lieferte auf den damaligen Smartphones aber nicht die gewünschte Performance. Also entschied sich Area9, die Firma hinter Flow, eine Programmiersprache für Smartphone mit möglichst kleinem Fußabdruck zu entwickeln. Mit ihr sollten sich “komplexe, aber einfach nutzbare und wunderschöne UIs” entwickeln lassen. Im August 2010 lief das erste Flow-basierte Programm auf Flash und HTML5-Basis. 2013 (iOS) und 2014 (Android) erschienen erste Apps, im November 2015 migrierte Flow im Browser komplett auf HTML5, weg von Flash.
Was Flow kann
Die statisch typisierte Programmiersprache beherrscht Typinferenz und bringt den inkrementell arbeitenden Flowc-Compiler mit, der verschiedene Zielplattformen abdeckt (iOS, Android, Linux, Windows, Mac). Inkrementell bedeutet, dass der Compiler nicht in jedem Durchlauf den kompletten Code übersetzt, sondern nur Teile davon, was die Übersetzung deutlich beschleunigt. Flow bevorzugt funktionalen Code, ähnelt syntaktisch aber C, um die Java- und Javascript-Entwickler abzuholen. Es ist dabei recht flexibel: Flow lässt sich auch mit Referenzen und mit dynamischer Typisierung verwenden.
Die besondere Stärke von Flow liegt nach Meinung der Flow-Entwickler in der Standardbibliothek für grafische Oberflächen namens Material, die sich an Googles Material-Design-Richtlinien orientiert. Es sei die vierte Iteration dieser Art von Bibliothek. Weil sie über Jahre hinweg entstanden sei, stecken in ihre eine Menge Erfahrungen hinsichtlich der Bedürfnisse von Mobilplattformen. Insbesondere bei Kooperationen in großen Teams und in Zusammenarbeit mit Designern und UI/UX-Experten spiele Flow seine Vorteile aus.
Warum nicht HTML 5 und Co.?
Den großen Vorteil gegenüber dem weit verbreiteten HTML5 sehen die Entwickler darin, dass sich Flow weniger stark verändere und zugleich weniger Code brauche. Eine Aufteilung in HTML, CSS und Javascript sei nicht nötig. Zugleich sei die Semantik einfacher als die von Javascript und Typescript. Gegenüber Multiparadigmen-Sprachen wie Java, C++ und Swift habe Flow den Vorteil, einfach zu sein. Es gebe kein Überladen, keine impliziten Konvertierungen, Nullpointer und Methode-Überschreiben. Zugleich betrachte Flow HTML als erstes Target, die anderen Sprache würden nur über Umwege im Browser laufen. Als funktionale Sprache ähnele Flow am ehesten ML, Ocaml und F#, die Syntax sei aber an C angelehnt, was den größten Unterschied ausmache.
Wer einen Blick auf Flow werfen möchte, wird auf Github fündig. Dort wartet auch eine Installationsanleitung. Während der Flow Compiler unter der GPLv2 steht, nutzt die Standardbibliothek die MIT-Lizenz. Integrationen für die Sprache gibt es in Visual Studio, Sublime Text, Kate und Emacs.


