AA_schalter.jpg

© Wamsler, Fotolia

Blitzstart

Schnell Programme bauen

Für Programmiergurus ist das Linux-Ökosystem aufgrund seiner Unterstützung zahlreicher Sprachen, Toolkits, Datenbanken und Werkzeuge ein Segen. Für Programmieranfänger entpuppt sich die Überfülle mitunter als Fluch. Quickly macht die ersten Programmierschritte jedoch zu einem Kinderspiel.

Es ist großartig, dass es in der Open-Source-Welt "mehr als einen Weg gibt", um eine Sache zu erledigen (um es in der Sprache der Perl-Community zu formulieren). Programmieranfängern, die noch nicht wissen, wie sie Anwendungen für Linux schreiben, kann das aber mitunter den Wind aus den Segeln nehmen. Um angehenden Entwicklern eine helfende Hand zu reichen, hat die Ubuntu-Community Quickly aus der Taufe gehoben.

Das Projekt versetzt Sie in die Lage, im Handumdrehen einen Prototypen für eine neue Software zu entwickeln. Es bringt Anwendungsvorlagen und einen Sack voller Kommandos mit, die es Ihnen leicht machen, unter Ubuntu eigene Projekt auf die Beine zu stellen, sie in Code umzusetzen und anschließend in einem Personal Package Archive (PPA) auf Launchpad [1] zu veröffentlichen, damit alle Ubuntu-Anwender etwas davon haben.

Was macht Quickly so einfach? Es fällt Standardentscheidungen für Sie, so dass Sie nicht über jedes Detail nachdenken müssen. Die eingesetzte Programmiersprache ist Python, als Benutzeroberfläche kommt PyGTK zum Einsatz, als Datenbank CouchDB, Gedit dient als Editor und Bazaar übernimmt die Versionsverwaltung der Software. Quickly bringt zudem Vorlagen mit, über die Sie ein Ubuntu-Projekt auf Launchpad einrichten.

Entwickler, die schon eine Weile programmieren, hegen sicher Vorlieben in Bezug auf ihre Werkzeuge. Einige ziehen Git Bazaar als Versionsverwaltungssystem vor, andere benutzen lieber Mono anstelle von Python und PyGTK. Anfänger und Gelegenheitsprogrammierer teilen solche Vorlieben meist nicht, sondern fühlen sich viel mehr überrumpelt, wenn sie alle diese Optionen abklopfen müssen. Indem man ihnen die Wahl abnimmt, gelangen die angehenden Entwickler ein wenig schneller an ihr Ziel. Vielleicht bringen diese Tools nicht die bestmöglichen Voraussetzungen für jedes beliebige Projekt mit, aber wenn Sie informiert genug sind, um das zu beurteilen, brauchen Sie Quickly ohnehin nicht. Befinden Sie sich noch nicht in so einer Position, ist Quickly das, was Sie suchen.

Quickly wurde mit Frameworks wie Ruby on Rails oder Django verglichen – ein guter Vergleich, wenn Sie diese Frameworks kennen. Es handelt sich um ein Rapid Application Development Framework, mit dem Sie schnell Linux-Anwendungen bauen bzw. grundlegende Gerüste für solche.

Tatsächlich dreht sich in Quickly momentan alles um Ubuntu, aber es ist nicht auf Ubuntu beschränkt und lässt sich auch auf andere Distributionen portieren. Die Software befindet sich schlicht noch in den Kinderschuhen und die meisten (wenn nicht alle) mit Quickly assoziierten Entwickler arbeiten an und mit Ubuntu. Quickly- und Ubuntu-Entwickler Didier Roche hat andere Projekte eingeladen, Quickly-Vorlagen für Fedora, Gnome usw. beizusteuern. Mit ein wenig Glück, wird das eher früher als später passieren.

Ran an den Speck

Quickly installieren Sie unter Ubuntu 10.04 und 10.10 über den Paketmanager Synaptic. Sie spielen die Pakete quickly, quickly-ubuntu-template und quickly-widgets auf den Rechner. Damit sollten Sie alle Abhängigkeiten abfangen, die nötig sind, um mit Quickly zu arbeiten. Zusätzlich installieren Sie die CouchDB-Pakete (couchdb, python-couchdb), die Sie mit Quickly nutzen sowie das Paket glade, das eine IDE zum Entwerfen grafischer Oberflächen für Anwendungen installiert.

Auch wenn es nicht direkt zu Quickly gehört, schlage ich vor, dass Sie auch Acire installieren. Da es zahlreiche Codebeispiele für Python verwaltet, stoßen Sie schneller auf Lösungen für ein Programmierproblem.

Abbildung 1

Abbildung 1: Acire bietet zahlreiche vorgefertigte Codeschnipsel für Python an. Mehr über die Bedienung erfahren Sie in diesem Heft.

Quickly-Grundlagen

Haben Sie Quickly und die dazugehörigen Anwendungen installiert, ist es an der Zeit, eine grundlegende Anwendung zu basteln. An dieser Stelle brauchen Sie wieder ein Terminal, das Sie über [Alt]+[F2] und die Eingabe von gnome-terminal aufrufen. Alternativ installieren Sie das Programm terminator, das ein in mehrere eigenständige Fenster unterteilbares Terminal installiert, so dass Sie mehrere Tasks zugleich im Auge behalten [2]. Eine grafische Oberfläche (GUI) für Quickly steht bisher übrigens noch aus. Es kann noch etwas dauern, bevor Sie alle Möglichkeiten von Quickly auch über eine GUI nutzen können. Wichtig: Im Artikel erzeugen wir lediglich die Hülle einer Anwendung. Ein vollständig funktionales Programm mit grafischer Oberfläche zu entwerfen, überschreitet leider die Möglichkeiten des Artikels – selbst mit einem RAD-Framework wie Quickly.

Sie beginnen mit der Entwicklung, indem Sie Bazaar initialisieren. Dazu geben Sie

bzr whoami "Benutzername <E-Mail>"

ein, wobei Sie Benutzernamen und E-Mail durch Ihre persönlichen Daten ersetzen. Dann legen Sie in Ihrem Home-Verzeichnis ein Projekt an. Dabei dürfen Sie SuperApp gern durch einen fetzigeren Namen ersetzen:

quickly create ubuntu-application SuperApp

Nach einem Druck auf [Eingabe] rauschen auf der Kommandozeile ein paar Textausgaben vorbei, dann öffnet sich ein Fenster mit den üblichen Menüs (File, Edit, View und Help) mitsamt einem Willkommensgruß und einigen Instruktionen, wie Sie nun weiterhin vorgehen (Abbildung 2).

Abbildung 2

Abbildung 2: Eine App, ein Befehl: Bisher besteht die neue Superanwendungen nur aus einem Fenster.

Tipp

Quicklys Befehle nutzen die Bash-Vervollständigung: Geben Sie quickly cre ein und drücken Sie [Tab], macht die Konsole create daraus. Tippen Sie ubu, erscheinen eine Reihe von möglichen Vorlagen.

Nun bemerken Sie ein neues Verzeichnis mit dem Namen superapp – oder wie auch immer Sie Ihre erste Quickly-Anwendung genannt haben. Sie wechseln mit Hilfe des Befehls cd dorthin und geben

quickly design

ein. Der Befehl öffnet Glade und das einzige Fenster, aus dem Ihr Projekt bestehen wird (Abbildung 3). Die folgenden Quickly-Befehle führen Sie dann auch im Projektverzeichnis aus.

Mit Glade bearbeiten Sie die Eigenschaften des Fensters einfach und schnell. Wollen Sie zum Beispiel auf das große, Ubuntu-ähnliche Logo in Ihrer Anwendung verzichten, klicken Sie es an und drücken dann auf [Entf].

Abbildung 3

Abbildung 3: Mit Glade bearbeiten Sie das gerade erstelle Fenster und passen es Ihren Vorstellungen an.

Sind Sie mit dem Ergebnis zufrieden, werfen Sie Ihren Editor an und geben

quickly edit

ein. Quickly ruft Gedit zusammen mit allen für das Projekt wichtigen Python-Dateien auf. Im letzten Reiter stoßen Sie auf die Datei, welche die Hauptroutinen für Ihr Programm enthält und die superapp heißt bzw. den von Ihnen vergebenen Namen trägt (Abbildung 4).

Abbildung 4

Abbildung 4: Gedit zeigt den von Quickly erzeugten Projektcode an. Im Fenster "superapp" erscheinen die Hauptroutinen des Programms.

Im Anschluss scrollen Sie an das Ende des Codeabschnitts. Sie öffnen Acire und suchen einen Codeschnipsel heraus, den Sie in Ihrem Projekt verwenden möchten. Hier scheren wir mal aus und erzeugen zur Abwechslung einen rudimentären Browser anstelle des üblichen "Hallo Welt!"-Programms. Freunde und Familie wird ein funktionierender Browser sicher mehr beeindrucken, als ein Fensterchen mit der Aufschrift "Hallo Welt!". So ein Ding muss ja extrem schwer zu programmieren sein, gell?

Tatsächlich müssen Sie lediglich aus Acires Aufklappmenü den Eintrag Webkit wählen und am unteren Ende des Dialogfeldes auf Webkit Browser klicken, wie es die Abbildung 5 zeigt.

Abbildung 5

Abbildung 5: Aus Acire holen Sie das Codebeispiel für den Webkit Browser und fügen es in das ursprünglich geschaffene Fenster ein.

Nun wechseln Sie zum Gedit-Fenster superapp und fügen den Code direkt vor dem Eintrag:

# Run the application.

ein. Im Anschluss speichern und schließen Sie Gedit, wechseln auf die Kommandozeile und starten Ihren brandneuen Browser über

quickly run

Quickly zeigt nun ein Fenster wie in Abbildung 6. Erscheint eine Fehlermeldung mit der Ausgabe unexpected indent, weist das darauf hin, dass der Code merkwürdig umbricht (ein häufiges Problem). Schauen Sie sich die in der Fehlermeldung angegeben Zeile an und prüfen Sie, ob hier eine Zeile Code verrutscht ist.

Nun handelt es sich hier nicht um einen beeindruckenden oder sehr funktionalen Browser. Aber Sie haben immerhin den Webkit-Code in die Anwendung integriert und sind nun in der Lage, eine URL in die URL-Leiste einzugeben und eine Webseite aufzurufen. Die Anwendung lässt Sie die Seite neu laden und sich vorwärts und rückwärts durch die Browser-Historie bewegen. Viel mehr als das kann sie nicht, aber es ist beeindruckend, was Sie dank Quickly mit ein paar Kommandos und Codeschnipseln erreichen.

Abbildung 6

Abbildung 6: Ein auf der Webkit-Engine basierender Browser, der mit Quickly erzeugt wurde.

Quickly automatisiert nicht nur eine Menge der Programmieraufgaben, es kann Ihren Code auch paketieren, auf Ubuntus Launchpad-Plattform veröffentlichen und mit einer Lizenz versehen. Wollen Sie Ihr Projekt mit einer Lizenz ausstatten? In diesem Fall bearbeiten Sie einfach die Datei AUTHORS im Projektverzeichnis, die Ihren Namen, die E-Mail-Adresse und das Jahr enthalten soll, das Sie für den Copyright-Vermerk eintragen wollen. Quickly bietet sechs verschiedene Lizenzen an: BSD, MIT, GPLv2 und v3 sowie LGPLv2 und v3. Um Ihr Projekt unter die GPLv2 zu stellen (was ich tue), tippen Sie schlicht:

quickly license GPL-2

Dank des einfachen Kommandos landet eine COPYING-Datei in Ihrem Projektverzeichnis und ein Eintrag zur passenden Lizenz in den Headern der relevanten Dateien. Ändern Sie Ihre Ansichten, ersetzt Quickly die Lizenz ohne weiteres durch die BSD- oder MIT-Lizenz, wenn Sie das Kommando erneut ausführen.

Auch das Paketieren von Software erweist sich mit Quickly als erstaunlich einfach. Befindet sich die Software qualitativ in einem paketierbaren Zustand, geben Sie einfach

quickly package

ein und Quickly erzeugt ein Debian-Paket (.deb), ein TAR.GZ-Archiv, eine Datei namens CHANGES (die listet Veränderungen in der aktuellen Version auf) sowie eine Debian-Quelldatei, die das Paket und seine Inhalte beschreibt. Die so erzeugten Pakete und Dateien landen im übergeordneten Verzeichnis.

Wollen Sie das Projekt nun einer breiten Öffentlichkeit vorstellen, tun Sie das, indem Sie die Abkürzungen quickly share bzw. quickly release verwenden – dafür benötigen Sie allerdings einen Account für Launchpad. Worin besteht der Unterschied zwischen share und release? Das Share-Kommando aktualisiert Ihr PPA mit den letzten Updates und Veränderungen am Code. Über release schicken Sie installierbaren Code an Launchpad, der eine neue Versionsnummer erhält. Der Unterschied ist klein aber wichtig. Auch wichtig: Sie brauchen nicht nur einen Launchpad-Account, sondern müssen auch einen OpenGPG-Key anlegen und den "Code of Conduct" unterschreiben, um ein PPA zu betreiben. Sich durch Launchpad zu klicken, um alle diese Details zu konfigurieren, erweist sich dabei mitunter als recht aufwändiger Vorgang, Sie sollten also Zeit einplanen.

In unseren Tests mit der Beta von Ubuntu 10.10 funktionierte der letzte Befehl nicht, es ließen sich keine Dateien in das PPA laden. Einen Bug-Report gibt es bereits.

Einem Freund empfehlen