Blog

Die Entstehung der heute verbreiteten Tools

Neulich hatten wir hier im Büro mal wieder die Diskussion CMS versus PHP Framework. Dabei fiel auf, dass die Unterschiede dieser Tools eigentlich nur vor dem Hintergrund der Geschichte von CMS und PHP Frameworks zu verstehen sind. Ich möchte hier im Blog mal versuchen diesen Gedankengang nachzuzeichnen.

Ein Rückblick

Es scheint noch gar nicht so lange her; doch erinnern wir uns: Im Jahr 2000 basierte ein Großteil der Websites selbst im professionellen Bereich noch auf statischen HTML-Dateien. Jeder kleine Rechtschreibfehler oder jedes vergessene Komma erforderte den Einsatz eines Entwicklers, der die Datei per FTP herunterlud, änderte und danach per FTP wieder auf den Server spielte. Endnutzer waren nicht in der Lage die Website direkt zu bearbeiten. Ein Relaunch einer gesamten Website in einem neuen Layout war eine große Herausforderung.

Selbstverständlich wurde auch damals schon ein wenig Funktionalität zu Websites hinzugefügt. Es gab frei verfügbare Gästebücher, Fotogallerien und Foren, die als PHP oder PERL Skripte häufig im CGI-Ordner eingefügt werden konnten. Selbst kleine Content Management Systeme, welche zumindest den Content eines Bereichs der Website verwalteten waren verbreitet. Auf den bekannten Skriptportalen fielen diese einfachen CMS in den Bereich Newsscripte.

Anspruchsvollere webbasierte PHP Anwendungen wurden von Grund auf neu entwickelt. In vielen Fällen hatten diese Anwendungen eine Website als Frontend und ein individuell entwickeltes Backend. Das Backend platzierte man typischerweise in einem /admin-Ordner direkt unterhalb der Root-Seite. Die ganzen individuell von Grund auf neu entwickelten PHP-Funktionen wurden unterhalb dieses Verzeichnisses platziert.

Zu dieser Zeit waren Entwickler gezwungen die gleichen Funktionalitäten immer und immer wieder zu schreiben. Programmierer verbrachten einen großen Teil Ihrer Zeit damit Standardfunktionalitäten wie Nutzerverwaltungen und Warenkörbe für die verschiedensten Projekte jedesmal neu zu entwerfen. Um sich diese Prozesse zu vereinfachen begannen viele einzelne Entwickler Code vom einen Projekt ins andere zu kopieren. Um den Code noch effektiver wiederverwenden zu können gab es sogar viele Programmierer die anfingen Ihre eigenen kleinen Frameworks zu entwerfen.

Es war zu dieser Zeit sehr offensichtlich dass großer Bedarf für zwei verschiedene Arten von Systemen bestand:

Es bestand Bedarf für professionelle Content Management Systeme, um Websites effizienter verwalten zu können. So dass Redakteure die Seiten bearbeiten konnten ohne für jedes zu ersetzende Komma beim Programmierer anfragen zu müssen.

Es bestand der Bedarf für professionelle Programmier-Frameworks um Entwicklern die ständige Neu-Entwicklung ähnlicher Funktionalitäten zu erleichtern.

Content Management Systeme erscheinen

Wie bereits angesprochen wurde ist die Idee eines Content Management Systems (CMS) sehr einfach. Es soll eine Plattform zur Verfügung gestellt werden, die es ermöglicht Inhalte zu erstellen, zu bearbeiten und zu verwalten. Diese Inhalte können danach in einer bestimmten Struktur wiedergegeben werden; beispielsweise als Website. Systeme die ausschließlich zur Verwaltung von Webinhalten verwendet werden bezeichnet man auch manchmal als Web Content Management Systeme (WCMS). Im Alltag ist es manchmal schwierig diese verschiedenen Systeme so klar zu unterscheiden. Viele der Systeme sind nämlich sowohl für online als auch für offline Content einsetzbar.

Meiner persönlichen Meinung nach ist TYPO3 bis heute das beste existierende Content Management System. Die Entwicklung von TYPO3 begann bereits 1998. Aber bis 2002 war es mehr oder weniger eine One Man Show von Kasper Skårhøj. Es war in etwa zu dieser Zeit als das System stärker in den Fokus der Öffentlichkeit rückte. Auch andere Content Management Systeme wie Drupal oder Mambo wurden im gleichen Zeitraum als Open Source Software veröffentlicht. Es war also wirklich erst 2001 und 2002 als Content Management Systeme in größerem Umfang der Öffentlichkeit zugänglich wurden.

Um nicht falsch verstanden zu werden. TYPO3 und die anderen genannten Anwendungen waren nicht die ersten professionellen Content Management Systeme. Auch vor 2001 waren bereits einige kommerzielle und proprietären Produkte auf dem Markt. Darüber hinaus hatten wir wie gesagt auch schon früher diese zahlreichen frei zugänglichen News-Skripte. Nichts desto trotz war es wirklich eine weltbewegende Veränderung für das Internet als plötzlich TYPO3 und die anderen Systeme frei erhältlich waren.

Es war eine zukunftsweisende Veränderung. Bereits kurz danach gab es kaum mehr eine Website die es dem normalen Redakteur nicht ermöglichen würde Inhalte über eine grafische Nutzeroberfläche zu erstellen und verändern. Die Trennung von Inhalt, Struktur und Layout war vollzogen. Non-Techies waren plötzlich in der Lage gesamte Websites selbst zu verwalten.

Ein weiterer Vorzug ging mit dem Aufkommen der Content Management Systeme einher. Funktionalitäten mussten von nun an nicht mehr als externe Skripte eingebunden werden. Content Management Systeme wie TYPO3 erlaubten das einbinden von Foren, Gästebüchern, Galerien, Shops und vielen weiteren Standardfunktionalitäten durch wenige Mausklicks.

Auch konnten Entwickler bereits damals eigene Funktionalität zu TYPO3 hinzufügen, indem sie existierende Dateien und Klassen innerhalb des existierenden TYPO3 Dateisystems erweiterten. Der nächste große Auftrieb kam als Kasper Skårhøj TYPO3 Version 3.5b1 in 2002 veröffentlichte. Diese Version beinhaltete einen Extension Manager und verwandelte TYPO3 in ein echtes Framework, welches das Hinzufügen neuen Codes und neuer Funktionalitäten wirklich sehr stark erleichterte.

Aber bevor ich irgendwann dazu auch noch was schreiben werde möchte ich heute noch gerne kurz erläutern wie es um die PHP Frameworks zu dieser Zeit stand.

Die ersten PHP Frameworks

Wenn Entwickler heute von PHP Frameworks sprechen, dann beziehen sie sich normalerweise auf Frameworks wir das ZEND Framework, Symfony, cakePHP oder CodeIgniter. 2001 und 2002 als die ersten Content Management Systeme populär wurden war noch keines dieser Frameworks verfügbar. Wenn wir jedoch den Begriff Framework ein wenig allgemeiner auslegen, dann können wir auch dann von Framework sprechen wenn wir bei eine Software in erster Linie dazu dient eine Struktur zur Verfügung zu stellen, die wiederverwendbare Komponenten bietet um Anwendungen effizienter entwickeln zu können.

Aus heutiger Sicht ist es dann zwar manchmal diskussionswürdig ob man einer bestimmten Software den Begriff Framework zuweist oder nicht. Doch hier soll jetzt erstmal interessieren was damals wie ein Framework genutzt wurde.

Neben den bereits oben erwähnten persönlichen Frameworks einzelner Entwickler, die Ihren Code strukturierten um darauf verschiedene Projekte aufsetzen zu können, war es aus meiner heutigen Sicht und Erinnerung insbesondere das PEAR Projekt, welches zu dieser Zeit gerade sehr populär wurde. PEAR steht für PHP Extension and Application Repository. Das Projekt definiert sich selbst auf der eigenen Website als ein „framework and distribution system for reusable PHP components“. Die Enwticklung von PEAR begann bereits 1999 mit dem Ziel Entwicklungsprozesse zu verkürzen und Code für Standardfunktionalitäten zur Verfügung zu stellen.

Neben PEAR war damals auch SMARTY sehr beliebt unter Entwicklern. Wieder ist es natürlich diskussionswürdig, ob man unter heutigen Gesichtspunkten SMARTY als Framework bezeichnen würde. Es ist in jedem Fall kein vollständiges Programmierframework. Doch zumindest als Templating-Framework erreichte es damals sehr hohe Popularität. Auch SMARTY begann bereits im Jahr 1999.

Es war auch möglich PEAR und SMARTY zu kombinieren. Es war erstmal ein kleiner Fortschritt. Es war für damalige Verhältnisse sehr effizient und fortschrittlich. Vielleicht war es noch nicht spektakulär. Der Gedanke Frameworks zur PHP-Entwicklung zu verwenden hatte aber somit bereits angefangen.

SHARE

Ansprechpartner:

COSTA BANERJEE

Wir freuen uns auf lhre Anfrage und beraten Sie gerne.

+49 4239 9599793
costa.banerjee@netzrezepte.de