APIs & Frameworks

Als Entwickler muss der Umgang mit APIs und Frameworks zu den Standardwerkzeugen gehören. REST APIs, wie das von Twitter oder Instagram kann man „im Vorbeigehen“ nutzen, ohne dass eine Einarbeitung notwendig ist.

Im Alltag nutze ich seit Jahren das WordPress API und REST, gelegentlich auch .NET. Ich kann problemlos mit Bootstrap arbeiten, schreibe aber mein eigenes CSS so flüssig, dass für mich Bootstrap eher ein Klotz am Bein ist.

Für umfangreichere Projekte kann ich mich problemlos in neue APIs und Frameworks einarbeiten.

Was ist ein API?

API ist die Abkürzung für Application Programmer’s Interface. Mit „API“ kann man zwei z.T. unterschiedliche Dinge bezeichnen:

1.) Eine Schnittstelle der bestehenden Software A (oder Infrastruktur), an der ein Programmierer aus seiner eigenen Software B mit Software A interagieren kann, zum Beispiel Daten abfragen. Über das Twitter API (Software A) könnte ich meine neuesten Tweets abfragen und in meine Webseite ( Software B) integrieren.

2.) Eine Bibliothek von vorgefertigten Funktionen oder Klassen. Zum Beispiel die WordPress API – Sie beinhaltet eine große Anzahl von Funktionen, etwas „the_title()“ welche mir den Titel der aktuellen Seite in mein Template ausgibt. Das WordPress API ist in PHP geschrieben und wird auch in PHP verwendet. Jedoch ist „the_title()“ keine native PHP-Funktion, sie wird vom WordPress API bereitgestellt. Das WordPress API ist deshalb kein Framework, weil es die Schnittstelle zur Interaktion mit WordPress darstellt – ohne WordPress könnte man mit dem WordPress API nicht viel anfangen – im Gegensatz zu einem Framework, mit dem man eigenständige Applikationen erstellen kann.

Was ist ein Framework?

Typische Frameworks sind PHP Zend, Django, Angular.js oder Node.js (wobei das noch etwas mehr ist). Frameworks bieten einen kompletten Baukausten an Funktionen oder Klassen, aus dem man eine Software oder Web-App erstellen kann.

Zum Beispiel kann ein Web-Framework Funktionen für User-Management und Login so wie Dashboard bieten, was der Entwickler nur noch einbauen muss. Ist ein Entwickler erfahren im Umgang mit einem Framework, kann er komplexe Aufgaben um ein vielfaches schneller und strukturierter lösen. Durch regelmäßige Updates muss man sich bei einem Framework je nach Anwendungsfall nicht mehr um Weiterentwicklung oder Sicherheit der Grundkomponenten kümmern.

Trotzdem ist die Entwicklung einer Webseite mit einem Framework vielfach aufwendiger, als mit einem CMS wie WordPress. Frameworks sind eher für spezielle Anforderungen oder größere Teams von nutzen. Immer wieder gehypte Framework-Werbung wie „Building a complete blog in 1 day“ konnten sich in der Praxis nie wie beworben abbilden. Jedoch muss man erwähnen, dass sich Frameworks wie z.B. .NET oder Qt im Bereich der Desktop-Anwendungsentwicklung als unverzichtbare Standardwerkzeuge erwiesen haben.

Bei meiner alltäglichen Arbeit als Webentwickler nutze ich derzeit keine Frameworks, habe aber bereits mit Zend und .NET gearbeitet. Node.js konnte mich wegen des Overheads bisher nicht überzeugen, Angular.js noch weniger, da ich keine Webapps mache. Django würde ich gerne einsetzen, aber das möchte niemand haben. Ich bleibe bei PHP und WordPress aus ökonomischen Gründen.