Skriptbibliotheken für jeden Einsatz

19.09.2007
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com
Die große Popularität von Skriptsprachen erklärt sich nicht zuletzt durch die vielen dafür verfügbaren Bibliotheken, mit denen sich flexibel schnelle Ergebnisse erzielen lassen.

Die Kombination von Skriptsprachen mit einem leistungsfähigen Framework ist insbesondere dann nicht zu schlagen, wenn man ein überschaubares Programmierproblem schnell lösen möchte. Ob ein einfacher Effekt benötigt wird oder eine große Funktionssammlung für eine komplette Anwendung: Skriptbibliotheken bieten für fast jeden Anwendungsfall eine Lösung.

Fazit

Dieser Artikel hat nur einen winzigen Ausschnitt aus der Welt der Skriptbibliotheken zeigen können. Angesichts des gewaltigen Angebots ist das Problem für den Entwickler zurzeit weniger, eine passende Bibliothek zu finden, als die Spreu vom Weizen zu trennen.

Open-Source-Marktplätze

Mit über 150 000 Projekten von Bittorrent-Client bis zur Java-Datenbank ist Source Forge der größte Anbieter von quelloffener Software. Alternativen zu Source Forge sind vor allem die Free Software Foundation (rund 2800 Projekte) und BerliOS vom Fraunhofer-Institut Berlin (rund 5000 Projekte). Weitere Portale sind die Eclipse Community und die Apache Foundation.

Javascript hat nur wenig mit der Compiler-Sprache Java gemein. Es wird im Gegensatz zu Server-seitigen Technologien wie Java und PHP auf der Client-Seite von Web-Anwendungen oder einfachen Web-Seiten eingesetzt. Javascript ist zwar sehr vielseitig und lässt sich zur Entwicklung ganzer Web-Anwendungen verwenden. Die Bibliotheken konzentrieren sich jedoch hauptsächlich auf die Programmierung benutzerfreundlicher Web-Oberflächen.

Bei der Entwicklung von bedienerfreundlichen Web-Seiten empfiehlt es sich, die Benutzereingaben vorab auf dem Client zu überprüfen. Für diese schnelle Validierung gibt es eine Reihe von fertigen Lösungen, die von einem kleinen Codeausschnitt bis zu einer großen Bibliothek reichen. Kleinere Skripte für diese Validierungen findet man zum Beispiel bei W3-Schools, einer Sammlung von Online-Tutorials (http:/www.w3schools.com), oder bei How-to-Create (http://www.howtocreate.co.uk/jslibs/). Möchte man sich ersparen, Skripte zu einer eigenen Bibliothek zusammenzustückeln, greift man besser auf die fertigen Bibliotheken der Open-Source-Marktplätze.

Ein Beispiel hierfür ist die Javascript-Bibliothek "Form Validation Library" (http://chrysalis.sourceforge.net/javascript). Sie bietet Funktionen für die häufigsten der üblichen Eingabeüberprüfungen. Man kann zum Beispiel feststellen, ob der Anwender ein Feld leer gelassen oder eine ungültige E-Mail-Adresse oder Text in einem numerischen Feld eingegeben hat. Natürlich gibt es eine Reihe von Fällen, in denen eine generische Bibliothek keine vollständig fertige Funktion liefern kann. Für diese Fälle stellt sie einen Rahmen für eine eigene Validierung zur Verfügung.

Quellen für Effekte

Wer Effekte für seine Website abseits der bekannten Ajax-Bibliotheken wie Script.aculo.us sucht, sollte sich moo.fx ansehen (http://moofx.mad4milk.net). Die leichtgewichtige Bibliothek kann zum Beispiel mit der Ajax-Bibliothek Prototype oder mit dem Mootools-Framework eingesetzt werden. Moo.fx hat nur einen Umfang von rund 3 KB, kann aber mit einer Menge von Effekten aufwarten. Eine größere Bibliothek, die sich aber nicht ausschließlich auf Effekte konzentriert, ist X-Library (http://www.cross-browser.com). Sie bietet außerdem Funktionen, die die Bedienung der Website verbessern, so zum Beispiel Drag-and-Drop-Unterstützung und Widgets wie Fortschrittsbalken und Menüs.

Navigation ist eine der wichtigsten Anwendungen für Javascript. Daher befassen sich viele Funktionen diverser Bibliotheken mit der Programmierung von Menüs. Eine der bekanntesten Javascript-Bibliotheken, die es hierzu gibt, ist Heng Yuans bewährtes "JSCookMenu". Die kleine Skriptsammlung lässt sich in vielen Produkten und Techniken (zum Beispiel mit PHP) einsetzen oder ist in einigen Bibliotheken und Content-Management-Systemen bereits integriert (etwa in Apaches JSF-Implementierung myFaces, Joomla). Das JSCookMenu gestattet, Pull-down-Menüs zu programmieren, die sich in mehreren Stilen (Schemata) und Effekten darstellen lassen.

Auftrieb für Javascript

So populär Javascript in der Vergangenheit aufgrund der hier vorgestellten Funktionen auch war erst im Zuge von Ajax hat die Skriptsprache einen enormen Auftrieb erfahren. Ajax verbindet eine Reihe von Technologien so, dass sich Web-Anwendungen und Websites genauso flüssig bedienen lassen wie Rich Clients. Leider ist eine selbst entwickelte Ajax-Integration mit viel Programmierung verbunden. Bibliotheken erlauben es, eine Ajax-Kommunikation auf vergleichsweise einfache Art in eigene Websites zu integrieren.

Eine der populärsten Ajax-Bibliotheken ist Dojo (http://dojotoolkit.org). Das Framework ist eine hervorragende Basis für Rich-Client-Web-Anwendungen, die konventionellen Rich Clients zum Verwechseln ähnlich sehen. Dojo bietet eine vielfältige Sammlung von Widgets, darunter vorgefertigte Dialoge, Bäume, Symbolleisten, Editorkomponenten und Menüs. Integrationen in andere Techniken und Produkte wie Java Server Faces und Eclipse sind ebenfalls verfügbar.

Ajax-Bibliotheken

Die Bibliothek Prototype (http://www.prototypejs.org) bildet die Grundlage für eine Reihe von Ajax-Bibliotheken (zum Beispiel Prototype Window, Rico, Script.aculo.us) und ist auch in Server-seitigen Frameworks bereits integriert (Ajax4jsf). Prototype konzentriert sich auf die für Ajax notwendigen Basiskonzepte wie die Verarbeitung von Daten (Arrays, Strings etc.). Wer eine Erweiterung für die Erzeugung von Dialogen sucht, wird bei Prototype Window fündig. Es liefert vorgefertigte Fenster (Login-Dialog, Mitteilungsfenster) in den verschiedensten Stilen mit Ein- und Ausblendeffekten.

Wer interessante Effekte schätzt, ist mit der derzeit vielleicht coolsten Ajax-Bibliothek namens Script.aculo.us (http://script.aculo.us) bestens bedient. Sie baut wie das konkurrierende Produkt Rico auf der schon erwähnten Bibliothek Prototyp auf. Beide bieten eine Fülle von Effekten. Besonders die von Script.aculo.us lassen vollkommen vergessen, dass darauf aufbauende Web-Seiten ohne Flash auskommen. Positiver Nebeneffekt: Script.aculo.us ist in einer Vielzahl von Bibliotheken und Techniken bereits integriert, wie zum Beispiel in Ruby on Rails, Perl, PHP und Java. Auch Eclipse bietet seit geraumer Zeit eine Werkzeugintegration für die Bibliothek.

Abseits vom Ajax-Rummel gibt es noch viele andere Anwendungen für Javascript. Weitere interessante Bibliotheken, über die man leider selten etwas hört, sind zum Beispiel Log4js und JsUnit. Log4js ist ein Logging-Framework für Javascript (http://log4js.berlios.de), das erlaubt, die Javascript-Verarbeitung zu protokollieren. JsUnit ist eine Portierung des bekannten Java-Testframeworks JUnit auf Javascript. Mit Hilfe dieser Bibliothek kann der Javascript-Programmierer wiederholbare Tests schreiben.

PHP erfreut sich besonders in der Kombination Linux, Apache, MySQL, PHP (LAMP) großer Beliebtheit. Entsprechend breit ist auch hier das Angebot von Lösungen, die von Codefragmenten bis zu größeren Bibliotheken reichen. Wer kleinere Lösungen sucht, findet in einschlägigen PHP-Sites Hilfe (http://www.codewalkers.com). Viele größere Bibliotheken sind bereits im PHP-Standard (http://en.wikipedia.org/wiki/List_of_PHP_libraries) integriert. Wer darüber hinaus noch Bedarf an speziellen Lösungen hat, könnte bei Source Forge fündig werden.

Pear-Repository

Allen voran ist sicher Pear (PHP Extension and Application Repository) zu nennen (http://pear.php.net). Pear ist nicht nur eine quelloffene Bibliothek, sondern bietet neben Entwicklern eine Infrastruktur für den Vertrieb von Quellcode. Das Ziel der Pear-Entwicklergemeinde ist es, eine Sammlung ausgereifter, wiederverwendbarer Komponenten zu schaffen. Um höchstmögliche Konsistenz zu sichern, gibt es Codierungsrichtlinien, die dafür sorgen sollen, dass der Quelltext einheitlich aufgebaut ist. Das Framework ist in rund 450 Packages gegliedert (http://pear.php.net/packages.php), die Lösungen von Authentifizierung über Micro-Payment bis zu Web-Services enthalten.

Natürlich lassen sich in PHP-Applikationen die genannten Javascript-Bibliotheken verwenden. Aber wer zum Beispiel Ajax in seine PHP-Seiten integrieren möchte, kann auch zu bereits konfektionierten Lösungen greifen. Als Beispiel sei AjaxAC genannt (http://ajax.zervaas.com.au oder http://sourceforge.net/projects/ajaxac). AjaxAC ist ein Framework ohne Schnickschnack, das sich vor allem darauf konzentriert, dass Benutzereingaben ad hoc ohne nochmaligen Aufbau der Web-Seite verarbeitet werden können.

Weitere PHP-Lösungen

Eine weitere, noch sehr junge Ajax-PHP-Bibliothek ist xaJax (http://www.xajaxproject.org oder http://sourceforge.net/projects/xajax). Wie AjaxAC erleichtert xaJax die schnelle Verarbeitung von Benutzereingaben, ohne dass man sich in der Tiefe mit Ajax-Programmierung auseinandersetzen muss. Abseits der Ajax- und PHP-Standardbibliotheken finden sich weitere interessante PHP-Lösungen, zum Beispiel das quelloffene Framework Swat (http://swat.silverorange.com/swat). Swat ist primär eine Widget-Bibliothek, die Komponenten für nahezu jeden Anwendungsbereich enthält. (ue)