Ralph Segert

Interview: Effiziente Appentwicklung mit LiveCode aber die Vorurteile sind stark

—   06.07.2017    Rubrik: Appentwicklung    Views: 341      —

Hauke Fehr ist Softwareentwickler, Autor und Dozent aus Berlin. Im folgendem Interview erzählt er über sein Buch “Eigene App programmieren” und die Programmiersprache LiveCode, die für ihn zu einer Offenbarung geworden, hierzulande aber noch unbekannt ist und der mit Vorurteilen begegnet wird. Hauke Fehr räumt sie überzeugend aus. Sehr spannend.

RS: Dein Buch Eigene App programmieren ist eine Einführung in die Programmiersprache und Entwicklungsumgebung LiveCode, hierzulande wenig bekannt und genutzt. Was hat es mit LiveCode auf sich und wie bist Du zu dieser Sprache gekommen?

HF: LiveCode ist ein komplettes Cross-Plattform-Entwicklungssystem mit eigener Programmiersprache, eingebauter IDE und grafischem GUI-Editor, in dem alles miteinander verzahnt ist. Es ist insofern ein All-in-One-Produkt, mit dem man schnelle Skripte für den alltäglichen Gebrauch fabrizieren, aber auch umfangreiche native Anwendungen für Desktop (Mac, Windows, Linux) und echte Apps für mobile Geräte (Android, iOS) erstellen kann.

Buchcover: Eigene Apps programmieren

LiveCode basiert im ersten Ursprung auf Apples HyperCard-Paket aus den 80er Jahren, ist aber heute natürlich um ein Vielfaches erweitert und zu einem vollwertigen universellen System ausgebaut worden. Durch seine einzigartige Oberfläche - bei der man in der Regel wie mit einem Designprogramm erst einmal eine schöne Oberfläche baut und diese dann Schritt für Schritt mit Skripten versieht, die man jederzeit während der Entwicklung mit nur einem Klick gleichzeitig testet - kann man mit LiveCode enorm schnell und effizient Programme entwickeln. Daher eignet sich LiveCode ebenso für Programmiereinsteiger wie auch für Profis, die schneller qualitativ gute Apps entwickeln wollen.

Ich bin vor vielen Jahren durch eigene Recherche zu LiveCode gekommen, als ich multimediale Lernprogramme entwickeln wollte und einen flexibleren und für mich besser nutzbaren Nachfolger für Borland Delphi gesucht habe. Es war ein langes Casting mit vielen Bewerbern.

RS: Was sind die Vorteile von LiveCode im Vergleich zu Swift oder Java?

HF: Swift ist relativ schnell zu erlernen, wird aber von LiveCode, was die “geniale Einfachheit” des Gesamtpakets angeht, meiner Meinung nach um Längen geschlagen. Außerdem kann man mit Swift ausschließlich Apps für Apple-Betriebssysteme entwickeln. Schon von daher ist es eigentlich nicht mit LiveCode vergleichbar. Java hingegen ist natürlich in seinem Anwendungsbereich universell - und es ist eine echte Compilersprache, mit der alles möglich ist. So viel zu den Vorteilen von Java.

„Eine Vielzahl der alltäglichen Anwendungen, die heute mit Java gemacht werden, könnte man genauso gut mit LiveCode bauen.“

Aber jeder Anfänger, der einmal versucht hat, das Programmieren mit Java zu erlernen, weiß natürlich, wie lange es dauert, bis man auch nur die absoluten Grundlagen verstanden hat - von komplexen Apps mit benutzerfreundlichen Oberflächen ganz zu schweigen. Ich denke: Profis, die mit Java arbeiten, haben selbstverständlich gute Gründe dafür, insbesondere wenn sie hochperformante leistungsfähige Software für unterschiedlichste Geräte entwickeln müssen. Eine Vielzahl der alltäglichen Anwendungen aber, die heute oft auch mit Java gemacht werden, könnte man genauso gut mit LiveCode bauen - allerdings dann in einem Bruchteil der Zeit und mit viel mehr Spaß dabei.

Der Hauptvorteil von LiveCode gegenüber verbreiteten Systemen von heute liegt tatsächlich darin, dass man sich mehr auf den eigentlichen kreativen Prozess des Gestaltens und Programmierens eigener Inhalte konzentrieren kann, anstatt sich sehr häufig mit einer Menge technischer Spezifikationen und abstrakten syntaktischen Feinheiten herumschlagen zu müssen. Gleichzeitig ist LiveCode in den meisten Bereichen leistungsfähig genug, um echte professionelle Anwendungen zu entwickeln, die vollständig konkurrieren können.

RS: Auf dem Buchcover steht „Intuitive Programmierung“. Vor der Intuition kommt meistens der Schweiß, das wird bei LiveCode wohl nicht anders sein. Warum würde es Einsteigern trotzdem mit LiveCode leichter fallen, eigene Apps zu programmieren? Und welche Vorkenntnisse sollte er mitbringen?

HF: Klar, ohne sich einzuarbeiten kann man wohl mit keinem System der Welt drauflosprogrammieren. Aber es gibt unterschiedliche Lernkurven. Ich habe noch kein anderes ernstzunehmendes Entwicklungspaket kennengelernt, mit dem man innerhalb so kurzer Zeit bereits echte Erfolgserlebnisse hat. Wer ein paar wesentliche Grundlagen des Programmierens bereits kennt, zum Beispiel durch JavaScript oder Python, kann mit LiveCode schon nach wenigen Stunden Apps bauen, die sofort funktionieren und auch noch gut aussehen. Mit ein paar Klicks ist daraus dann auch schnell eine Standalone-Fassung für Windows, Linux oder Mac gemacht.

Vor allem die Erstellung einer grafischen Benutzeroberfläche erfordert bei den meisten Systemen eine Menge Mühe. Nicht so bei LiveCode - hier wird sie wie in einem simplen Grafikprogramm einfach zusammengeklickt, was jeder Einsteiger bereits nach kürzester Zeit hinkriegt, und kann dann beliebig angepasst und verfeinert werden.

In die Besonderheiten der LiveCode-Sprache muss man sich einmal hineindenken. Aber hat man es dann begriffen, läuft wirklich alles intuitiv ab, da die Sprache nicht an pseudomathematischen Ausdrücken orientiert ist, sondern an vereinfachten englischen Handlungsanweisungen. So heißt es nicht x = x+1 - sondern put x+1 into x oder add 1 to x, wenn man 1 zur Variable x addieren möchte. Man muss das natürlich erst einmal verinnerlichen, aber die Syntax ist konsequent und prägt sich sehr leicht an, wenn man ein bisschen Englisch kann. Auch das Setzen von Objekt-Properties geschieht sprachlich intuitiver - zum Beispiel durch set the backgroundColor of button “meinButton” of this stack to “blue”. 

Wer noch überhaupt keine Vorkenntnisse im Programmieren besitzt, kann diese mit LiveCode sehr schnell erwerben. Mein Buch wendet sich primär an Leser, die noch nie zuvor etwas programmiert haben - mit LiveCode erhalten sie einen Einstieg, der dazu führt, dass sie schnell und bildhaft begreifen, was Programmieren eigentlich ist - und viele beginnen, sich das Programmieren erstmals selbst zuzutrauen, wie mir zahlreiche Leserreaktionen zeigen.

RS: Wie lange arbeitest Du bereits mit LiveCode und was war Dein Gesellenstück damit?

HF: Ich hatte früher viel mit Borland Delphi und C++ Builder entwickelt. Das waren ja früher sehr populäre Entwicklungssysteme, die auch das Prinzip des integrierten GUI-Designers hatten und von daher in gewisser Weise mit dem Workflow von LiveCode vergleichbar sind - allerdings technisch orientierter, komplizierter und nur durch umfangreiche Zusatzmodule auch richtig multimedial nutzbar.

Für mich war erst einmal der Cross-Plattform-Gedanke wichtig: Die Nachfrage nach Mac-Versionen von meinen Programmen nahm zu, und so ging ich für mein nächstes Projekt auf die Suche. Der Macromedia Director hatte es mir eine Zeit lang angetan, aber er war bereits im Aussterben begriffen, und mit Flash konnte ich mich vom Konzept her nie wirklich anfreunden. Als ich LiveCode entdeckte (das damals noch “Runtime Revolution” hieß), wusste ich schnell: Damit kann ich genau das machen, was ich brauche, und es kommt meinen Bedürfnissen zur Arbeitsweise sehr gut entgegen. Das ist jetzt etwa zehn Jahre her - und mittlerweile hat sich LiveCode, auch gestützt durch große Crowdfunding-Kampagnen, erheblich weiterentwickelt.


Die Website von LiveCode Open Soruce

Es gibt jetzt auch eine OpenSource-Version, ideal für Einsteiger, mit vollem Umfang, vollkommen kostenlos, und es werden seit einigen Jahren auch die großen mobilen Betriebssysteme unterstützt. Ich habe seitdem eine Menge Desktop-Programme sowie auch mehrere mobile Apps mit LiveCode entwickelt, immer zur vollen Zufriedenheit der Kunden.

Mein Gesellenstück allerdings war das eigene Projekt, das mich überhaupt zu LiveCode gebracht hat: Ein kompletter digitaler Sprachkurs zum Erlernen der schwedischen Sprache, Schwedisch SOUVERÄN. Da steckt fast alles drin, was LiveCode zu bieten hat, und das Erstellen der Programmodule hat Freude gemacht und verlief ohne größere Frustrationen.

RS: Wo hat LiveCode seine Nachteile? Um Themen zu nennen: Geringere Performance der fertigen App? Designgrenzen? Einen schwierigeren Stand in den App-Stores? Bei der Nutzung von Datenbanken?

HF: Ich denke, dass LiveCode für die meisten alltäglichen Anwendungsgebiete mehr Vorteile als Nachteile hat. In meinem Blogartikel Was kann man mit LiveCode machen- und was nicht? habe ich es einmal zusammengefasst, und die teils verblüfften Reaktionen zeigen, dass man LiveCode sehr leicht unterschätzt und glaubt, es wäre mehr ein Lernbaukasten für Einsteiger als ein professionelles Entwicklungssystem. Das lässt sich aber leicht widerlegen.

Die Nutzung von Datenbanken geht mit LiveCode zum Beispiel ganz hervorragend und effizient - und auch weitere Komponenten, die man für kommerzielle Anwendungen braucht, sind in LiveCode bereits durch einfach verwendbare Befehle integriert. Druckausgabe, PDF-Erstellung, XML-Formate, komplexes Textparsing, Nutzung mobiler Features, Bildverarbeitung, Netzwerkprotokolle - all das geht ohne Plugins oder Einbindung externer Komponenten. Durch Java-Schnittstellen lassen sich neuerdings sogar Android-Bibliotheken aller Art einbinden, und Weiteres ist in der Entwicklung.

Aber die Frage war die nach den Nachteilen: Nun ja, LiveCode ist (ähnlich wie Python oder JavaScript) eine Interpretersprache, die ihre Runtime in die Programme integriert. Dadurch haben LiveCode-Apps natürlich nicht die Performance nativ kompilierter Programme. Das wirkt sich in Everyday-Apps nicht spürbar aus. Bis hin zum grafischen 2D-Spiel ist alles flüssig und gut machbar. Aber High-Performance-Programme wie Videobearbeitung, Maschinensteuerungen oder auch 3D-Programme würde ich sicherlich nicht in LiveCode bauen - dafür gibt es besser geeignete Systeme.

Im App-Store sind LiveCode-Apps vollkommen akzeptiert, es sind hunderte vorhanden - von sehr vielen Apps weiß niemand, dass sie überhaupt in LiveCode geschrieben wurden. Und Designgrenzen sehe ich auch nicht - mit LiveCode ist prinzipiell jedes Design möglich. Die Komplexität hängt vom Aufwand des Programmierers ab.

„In LiveCode ist es wesentlich leichter, auch einmal ein Design zu erstellen, das auf eigenen Ideen und nicht den Designvorgaben von iOS oder Android basiert.“

RS: Vor jeder Programmierung steht und fällt der Erfolg einer App mit der Konzeption, dem Kernnutzen und dem User Interface Design. Wie arbeiten Dir im Workflow Konzepter und Designer am besten zu?

HF: Da sehe ich keine spezifischen Unterschiede zwischen LiveCode und anderen Entwicklungssystemen. Das Nutzerkonzept wird vom Kunden vorgegeben, der mehr oder weniger detaillierte Vorstellungen hat, wie die App funktionieren soll. Das technische Konzept ergibt sich daraus für mich. Vielleicht ist es mit LiveCode in der Hinsicht etwas einfacher, dass man schon sehr schnell einen funktionierenden Prototypen mit den Grundfunktionen bauen kann, den man dem Kunden vorab als Windows- oder Mac-Version präsentieren kann. Dann wird nur noch verfeinert und optimiert.  Das Design erstelle ich entweder aus den Standardvorgaben für Android oder iOS - oder der Kunde möchte einen Screendesigner heranziehen, dessen Vorlagen ich dann mit LiveCode exakt nachbaue. Teils kann ich dabei die nativen Komponenten des Betriebssystems nutzen (das wird derzeit immer mehr in LiveCode integriert), teils imitiere ich sie mit den grafischen Mitteln von LiveCode, was mit etwas Feinarbeit am Ende ein praktisch identisches Ergebnis hervorbringt.

RS: Sind die Designvorgaben in den Style-Guides von iOS und Android mit LiveCode auch im Detail umsetzbar?

HF: Siehe auch die vorherige Frage: Im Grunde ja. Man hat für iOS vielleicht etwas mehr (bzw. anders gearteten) Aufwand als wenn man das Design direkt nativ mit den vorhandenen Elementen in Xcode erstellt, wo alles von selbst den Vorgaben entspricht, aber ich habe auch schon meine eigenen grafischen Komponentensammlungen angelegt, die exakt auf den Design-Vorgaben aufbauen, und es gibt dafür auch Ressourcen im Web. Für Android ist das auf die Weise auch gut machbar. Außerdem ist es im Gegenzug in LiveCode wesentlich leichter, auch einmal ein Design zu erstellen, das auf eigenen Ideen und nicht den Designvorgaben von iOS oder Android basiert (wie in Spielen und kreativ ausgerichteten Programmen).

RS: Du möchtest LiveCode auch in Deutschland bekannter machen, nicht zuletzt mit Deinem LiveCode-Blog, das auch Hilfestellungen für Einsteiger bietet. Auf welche Hindernisse und Vorurteile stößt Du hierzulande bei Firmen und Entwicklern?

Die Vorurteile sind stark - und sie basieren fast ausschließlich auf demselben Problem: “Ich habe von LiveCode noch nichts gehört, also glaube ich nicht, dass es seriös ist.” Das ist in anderen Ländern anders. In Schottland und England wird Livecode an hunderten von Schulen eingesetzt, in den Niederlanden und Österreich haben große namhafte Firmen und Organisationen (KLM, Universität Wien) LiveCode zur Entwicklung gigantischer Verwaltungsprogramme eingesetzt, und auch die NASA hat kürzlich in einem Satellitenprogramm LiveCode zur Datenauswertung verwendet.

Dass LiveCode seriös im professionellen Kontext eingesetzt werden kann, beweisen letztendlich die Anwendungen, die damit erstellt wurden und die erfolgreich im Einsatz sind. Um aber eine breitere Akzeptanz für LiveCode-Apps bei den Kunden zu schaffen, muss die Bekanntheit in Deutschland steigen, damit man auch mal “davon gehört hat”. Das ist mir ein wichtiges Anliegen.

RS: Noch einmal zurück zum Buch. Wie kam es, dass der Rheinwerk Verlag ein Buch über LiveCode machen wollte?

Das Buch war meine Idee, weil es einfach nichts zu LiveCode in deutscher Sprache gab, und ich bin mit meinem Konzept an den Rheinwerk-Verlag herangetreten. Auch hier gab es am Anfang ein paar Vorurteile aber auch die Fähigkeit, sich begeistern zu lassen und sich auf neue Gedanken einzulassen. Am Ende war die Redaktion komplett überzeugt. Es war eine sehr gute Zusammenarbeit mit dem Rheinwerk-Verlag, und die Verkaufszahlen des Buches zeigen, dass es sich auch für den Verlag letztendlich gelohnt hat.

RS: Ist ein weiteres Buch oder Projekt bei Dir in der Pipeline oder anders gefragt: Was würdest Du gerne realisieren?

Ein umfangreicheres und mehr in die Tiefe gehendes Werk über LiveCode für professionelle Programmierer (“Das LiveCode-Profibuch”) wäre in der Hinsicht noch ein großes Anliegen von mir - ich denke, dass die Nachfrage bald groß genug sein könnte, dann stünde dem nichts mehr im Weg. Derzeit schreibe ich aber erst einmal ein Buch für Kinder und Jugendliche: “Programmieren lernen mit Scratch”, das zum Jahresende bei Rheinwerk erscheinen wird. Scratch ist eine perfekte spielerische Vorstufe, um die Kenntnisse und Denkweisen zu erlangen, die man dann zum “richtigen Programmieren” später perfekt anwenden kann. Ein weiteres Buch im Rheinwerk-Verlag ist in Planung - auch über das Programmieren, aber dazu kann ich jetzt noch nichts verraten.

RS: Zuguterletzt: Was sind zur Zeit Deine drei Top-Ressourcen im Web?

HF: Ich habe keine Top-Ressourcen. Meine hunderte von Bookmarks nutze ich nur selten. Ich fange bei jeder Fragestellung immer wieder mit Google von null an. Das hält frisch und up to date. :-)

RS: Vielen Dank für das aufschlussreiche Interview.

Über Hauke Fehr

Hauke Fehr lebt und arbeitet als Softwareentwickler, Dozent und Trainer in Berlin. Er programmiert seit 30 Jahren Desktop-Anwendungen und Apps für verschiedene Betriebssysteme, in letzter Zeit verstärkt auch Online-Systeme aller Art.  Sein erstes großes App-Projekt war die Sprachlern-App “Schwedisch SOUVERÄN”, die er komplett mit LiveCode umgesetzt hat. Seine Dienste bietet er unter dem Namen Fehr Media Softwareentwicklung an. Er bloggt auf der Site LiveCode-Blog.

Hauke Fehr

   

Thematisch verwandte Artikel

Kommentare (0)

Noch keine Kommentare. Ich freue mich auf Fragen und Anregungen.

  Name, Email und URL für nächsten Kommentar merken?
  Nachricht via Email, falls man auf meinen Kommentar antwortet?

Spamschutz: Bitte den folgenden Code eingeben:
  

Seitenanfang