Aus Linux-Magazin 10/2014

Das Zeitalter der Frameworks

Abbildung 1: Busker ist kein Scherz, sondern ein komplettes Framework.

Kaum ein Entwickler beginnt heute noch ein Projekt auf der grünen Wiese. Für fast alle Zwecke gibt es Frameworks, die ihm ein Grundgerüst für die Anwendung vorgeben und Routine-Aufgaben vereinfachen. Dabei braucht Software gar nicht viel Code, um als Framework gelten zu dürfen.

Die Skriptsprache PHP ist fast so alt wie das Linux-Magazin. Als Tom Schwaller, der damalige Chefredakteur, die 1995 erfundene “Killersoftware für Webapplikationen” vorstellte, hieß sie noch Personal Home Page Construction Kit/Form Interpreter (PHP/FI). Sein Artikel [1] demonstrierte in wenigen Zeilen die Formularverarbeitung, Funktionen, Kontrollstrukturen, das Aufrufen von Systemkommandos und die Arbeit mit Datenbanken.

2014 sind umfangreiche Systeme wie Sugar CRM in PHP geschrieben, die Server-seitige Sprache steckt hinter bedeutenden Onlinediensten wie Wikipedia oder Facebook. Wer heute eine Website mit PHP aufbaut, verwendet jedoch ein so genanntes Framework. Dabei hat der Entwickler die Wahl: Symfony, Cake PHP, Typo3 Flow, das Zend Framework und andere buhlen um seine Gunst.

Ein solches Framework erspart es dem Entwickler, häufig genutzte Features wie Benutzerverwaltung, Suche, Navigation und Bilder-Upload selbst von Grund auf zu implementieren. Auch die Open-Source-Projekte Qt oder Gstreamer bezeichnen ihre Software als Frameworks, sie ist für GUI- beziehungsweise Multimedia-Anwendungen gedacht.

Hier geht es um das Wiederverwenden von Code – ein alter Hut! Bibliotheken dienen dem gleichen Zweck und gehören zu jeder Programmiersprache, die auf sich hält. Ein Framework steht aber in einer anderen Beziehung zum Entwickler, wie die US-amerikanischen Informatiker Ralph E. Johnson und Brian Foote schon 1988 in einem Aufsatz [2] herausgearbeitet haben: Aus Bibliotheken pickt sich der Entwickler heraus, was er benötigt, die Architektur der Anwendung bestimmt er selbst.

Ein Framework dagegen gibt dem Programmierer vor, wie er die Anwendung aufbauen soll – er füllt das Gerüst nur noch mit Details. Das bezeichnet man als Umkehrung der Kontrolle (Inversion of Control).

Nichts ist mehr rahmenlos

Das Schlagwort Framework hat in den letzten Jahren eine wahre Inflation erlebt. Im Portal Sourceforge haben sich rund 3500 Projekte in diese Kategorie eingeordnet. Es existieren beispielsweise jede Menge Frameworks für Webanwendungen, etwa Django, Ruby on Rails, Mojolicious oder Apache Cocoon. Sie setzen ihrerseits wieder Frameworks zum Erzeugen von Javascript und Stylesheets ein, zum Beispiel Ext JS und Bootstrap. Viele der verwendeten Sprachen sind übrigens auch fast gleich alt wie das Linux-Magazin: Ruby, Java und Javascript stammen aus dem Jahr 1995, Python schon aus 1991.

Wie spartanisch ein Framework aussehen darf, das dennoch seinen Namen zu Recht trägt, zeigt Busker [3]. Der Berliner IT-Consultant Marc Berszick alias Pachacamac hat das Ruby-Webframework im Juli 2014 unter MIT-Lizenz veröffentlicht. Es macht Anleihen beim größeren Bruder Sinatra und nimmt dem Entwickler Logging, Routing und das Umwandeln von Templates ab. Busker besitzt keine Abhängigkeiten außer der Ruby-Standardbibliothek, doch das Bemerkenswerteste ist sein Umfang: Es umfasst gerade mal 50 Zeilen Code.

Abbildung 1: Busker ist kein Scherz, sondern ein komplettes Framework.

Abbildung 1: Busker ist kein Scherz, sondern ein komplettes Framework.

Infos

  1. Tom Schwaller, “Dynamische Webseiten mit PHP/FI”: Linux-Magazin 06/96
  2. Ralph E. Johnson, Brian Foote, “Designing Reusable Classes”: Journal of Object-Oriented Programming June/July 1988, Volume 1, Number 2, http://www.laputan.org/drc/drc.html
  3. Busker: https://github.com/pachacamac/busker
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben