Dienstag,
25. September 2007

Die Diskussion bezüglich CSS-Frameworks bleibt nicht stehen. Wenn Sie das Thema interessiert, finden Sie in dem Essay “Was Sie über CSS-Frameworks wissen sollten!” eine ausführliche thematische Fortsetzung der Diskussion

In den letzten Wochen sind im englischen Sprachraum zwei interessante Artikel erschienen, die im Bezug auf die Argumentation pro/conta CSS Frameworks polarisieren. Da wäre “Why I don’t use CSS Frameworks” (Kyle Neath) und “Please do not use CSS framworks” (Jonathan Christopher). Das Smashing Magazine hat diese Diskussion im Rahmen eines Überblicks aktuellen CSS-Frameworks aufgegriffen und prägnant zusammengefasst.

Danach gelten als Vorteile ...

  • Steigerung der Produktivität
  • Vermeiden von alltäglichen Fehlern
  • Einheitliche Code-Basis
  • Verbesserter Workflow bei Team-Arbeit

Dem gegenüber stehen einige Nachteile ...

  • Erlernen der Arbeitsweise des Frameworks kostet Zeit
  • Verstehen der Code-Architektur kostet Zeit
  • Fehler in der Codebasis werden unerkannt mitgeschleift
  • Man vertaut dem Framework, nicht seinen eigenen CSS-Kenntnissen
  • Frameworks erzeugen Overhead im Code
  • CSS Frameworks und semantische Codeauszeichnung stehen im Gegensatz zueinander
  • Man ignoriert die Einzigartigkeit eines Webprojekts

Nun bin ich als Framework-Entwickler natürlich kein Außenstehender, ungeachtet dessen habe ich natürlich zu diesem Thema eine Meinung. Den Vorteilen stimme ich zu (War ja klar, oder?). Zu den genannten Nachteilen möchte ich jedoch etwas anmerken. Nicht, um sie weg zu diskutieren, sondern weil denke, dass die Ursachen dafür woanders zu suchen sind.

Das Kennenlernen ist schwierig

Jeder Mensch hat seine persönliche Handschrift. Ähnliches gilt für die Erstellung HTML-, CSS-Code sowie die Art und Weise, in der der eigene Code dokumentiert und gepflegt wird. Der Einsatz eines CSS-Frameworks erfordert das Arbeiten mit fremdem Code und vorgegebenen Strukturen. Das Verstehen und der Umgang mit einer fremden Codebasis kosten den Nutzer verständlicherweise Zeit. Innerhalb einer Webagentur, sollte dieser Prozess allerdings zum Alltag gehören, denn Zusammenarbeit mehrerer Abteilungen/Firmen und damit auch mehrerer Webdesigner ist ja nichts neues. Der mögliche Vorteil eines Frameworks: Die Einarbeitung in dessen Arbeitsweise ist ein einmaliger Aufwand - anschließend kommt der Vorteil einer einheitlichen Codebasis und einer einheitlichen Sprache bei der Umsetzung von Projekten zum tragen. Speziell bei Teamarbeit oder dem Agentur/Kunden-Verhältnis (Support) kann Arbeit und Pflege damit einfacher/leichter werden.

Es ergeben sich damit keine ungewollten Zwänge. Ansätze mit einer willkürlichen Struktur werden auf Dauer kaum Bestand haben. Logische und praxisorientierte Strukturen in die eigene Arbeit zu übernehmen, fällt hingegen leicht. Den meisten Webseiten liegen solche abstahierbaren Stukturen zu Grunde. Je universeller und logischer diese durch das Framework abgebildet werden, desto einfacher lässt sich damit arbeiten.

Der oft geäußerte Aussage “Das bekommt man (i.d.R gemeint: der Autor selbst) selbst schneller und mit weniger Code hin!” kann ich als Framework-Entwickler pauschal nichts entgegnen. Allerdings es eine rein subjektive Einschätzung der eigenen Fähigkeiten und Ansprüche an den erzeugten Code, sodass es als objektives Kriterium pro oder contra Frameworks in meinen Augen nicht taugt, denn sie basieren nicht auf einem konkreten Anwendungsfall. Frameworks wie YUI Grids, Blueprint oder YAML setzen jeweils unterschiedliche Schwerpunkte. YUI Grids ist klar auf fixe Layouts und die Zusammenarbeit mit der Javascript-Bibliothek von Yahoo ausgelegt. Blueprint verfolgt ein streng visuelles Konzept und kombiniert ein pixelbasiertes Grid-Baukastensystem mit typographischen Gestaltungsvorgaben. YAML hingegen setzt auf flexible Layouts und Gestaltungfreiheit für den Entwickler.  Sie haben demzufolge auch ihre individuelle Stärken und Schwächen.

Die Bedenken, Fehler in der Codebasis unerkannt mitzuschleifen, sind nachvollziehbar. Die Chance auf bugfreien Code stehen jedoch für den Anwender sehr gut, denn Fehler in der Codebasis werden von der Community meist schnell entdeckt und gemeldet. Ich sehe hierin daher keinen Kritikpunkt für Frameworks sondern eine Aufforderung zur besseren Dokumentation. Wie jede Software müssen sich auch CSS-Frameworks ihre Reputation in der Community zunächst verdienen. Und das kann nur über fehlerfreien Code und eine entsprechende Dokumentation erfolgen. Es ist ein Unterschied, ob ich eine Blackbox bediene und dem Ergebnis blindlings vertraue oder ob ich alltäglich wiederkehrende Arbeitsschritte automatisiere und doch genau weiß, was dabei passiert. Wer keine Browsertest mit fremdem Code macht, macht vermutlich auch keine mit dem eigenen Code.

Zum Thema Overhead habe ich mich bereits in der Vergangenheit geäußert und meine Meinung hat sich nicht geändert. Bezüglich YAML kann ich sagen, dass der durch die Framework-Nutzung generierte Overhead (HTML+CSS) verhältnismäßig gering ist und anspruchsvolleren CSS-Layouts in Verbindung mit CMS-Einsatz praktisch nicht Gewicht fällt. Wenn Ladezeiten und Traffic wirklich systemkritisch sind, bestehen sowohl bei CSS-Frameworks als auch bei indivuellem Code ähnliche Optimierungspotentiale, denn auch die Erstellung von Hand führt nicht im automatisch zur optimalen Lösung. Und damit möchte ich diesen Teil abschließen, denn die letzten beiden Punkte kann ich ehrlich gesagt wirklich nicht nachvollziehen.

Es geht noch besser

Sind Frameworks der Heilige Gral der Webentwicklung? Vielleicht werden sie es eines Tages, wer weiß? Derzeit sind sie es jedoch sicherlich noch nicht. Dazu ist zu ergänzen, dass auch noch niemand so richtig weiß wie dieser Gral aussehen könnte. Ungeachtet dessen stellen sie schon heute eine enorme Arbeitserleichterung für Webentwickler dar.

Was ich persönlich als Nachteil vieler aktueller Frameworks empfinde - und was die angesprochenen Kritikpunkte durchaus verständlich macht - ist die mangelhafte Dokumentation vieler aktueller Frameworks. So hat man oftmals den Eindruck, eine Blackbox zu bedienen. Diese Tatsache ist für den produktiven Einsatz nicht vertrauensfördernd und führt zu den geäußerten Bedenken. Hier sind die Framework-Entwickler gefragt, Ihre Lösungen vollständig und für Anwender verständlich zu dokumentieren.

Gerade bei den heutigen Anforderungen in Sachen Usability, Zugänglichkeit und den Anforderungen an modernes Webdesign sollten der inhaltliche Schwerpunkt professioneller Arbeit nicht mehr im mühsamen Erstellen von validem Markup und dem Fixen von Bugs liegen. CSS Frameworks greifen dem Webdesigner in genau diesem Punkt unter die Schultern, damit der Blick wieder frei wird für das Wesentliche der Arbeit.


Du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Dieser Eintrag kann nicht mehr kommentiert werden.