Java
Java-Anwendungen sind geradezu beliebig erweiterbar, was sich zunächst einmal wie ein großes Plus anhört - aber weniger wäre manchmal mehr. Einsteiger drohen in der Flut der Java-Frameworks zu versinken. Für den Profi bietet Java für jede Aufgabe eine passende, gute Lösung. Die Dokumentation der Bibliotheken ist meistens exzellent, die Anzahl der professionellen Buchveröffentlichungen enorm hoch.
Java gehört zu den am besten lesbaren Programmiersprachen. Durch die objektorientierte Programmierung mit der sehr guten Modularisierung ist es leicht, wartungsfreundliche Web-Anwendungen zu entwickeln. Ob das in der Praxis auch gelingt, hängt wie bei den anderen hier vorgestellten Techniken stark von der Ausbildung der Entwickler im guten Design ab. Die leichte Erweiterbarkeit von Java-Anwendungen führt bei unreflektiertem Einsatz schnell zu extrem komplexen Programmen mit unangemessen hohen Wartungsaufwänden.
Java wird immer mit Robustheit gleichgesetzt, unter anderem, weil es eine Compiler-Sprache ist, wegen der bekannten Typsicherheit, des Exception-Handling-Konzepts und der ausgereiften Laufzeitumgebungen. Trotzdem bleibt festzuhalten, dass die genannten Konzepte für Java-Web-Oberflächen nur bedingt greifen. Präsentation beziehungsweise Steuerung ist bei Java-Web-Anwendungen unter Umständen weit weniger robust als der klassische Java-Code. Je nach Version der verwendeten Web-Frameworks und dem verwendeten Technik-Mix (Javascript) kann die Steuerung und Präsentation einer Java-Anwendung durchaus Probleme bereiten. Der Testaufwand ist nicht zu unterschätzen.
Gutes Design, gute Performance
Java-Code haftet auch der Ruf an, langsam zu sein. Das liegt an vielen Dingen, manche davon sind Missverständnisse, andere wiederum wahr, so etwa die schwache Performance von EJB 1.0. Tatsache ist, dass Java-Programme bei schlechtem Design sehr langsam sein können. Bei gutem Design sind sie hingegen heute weit schneller als alle anderen hier genannten Techniken und liegen fast im Bereich von nativen C-Programmen.
Die Java-Laufzeitumgebungen von einfachen Servern wie Tomcat und Jetty bis hin zu Enterprise-Application-Servern wie IBM WebSphere und Oracle WebLogic garantieren bei richtigem Design eine erstklassige Performance, sehr gute Überwachbarkeit sowie eine Skalierung, die für die größten Web-Anwendungen ausreicht. Selten findet man jedoch Experten, welche die Vielfalt des Marktes beherrschen, das Tuning von Anwendungen verstehen und darüber hinaus wissen, wann man welche Umgebung unter bestimmten Voraussetzungen einsetzt. So können zum Beispiel die Kosten für das Hosting und die Lizenzen einer Java-Web-Anwendung ähnlich gering ausfallen wie beim Einsatz von PHP oder sehr teuer sein.
Hervorragende Tools-Landschaft
Eclipse und Netbeans sind in Java implementierte Entwicklungswerkzeuge, die nicht nur beweisen, dass man in Java hervorragende Programme entwickeln kann. Die IDEs gehören zudem auch zu den bes-ten überhaupt erhältlichen Tools. Gerade diese ausgereiften quelloffenen Entwicklungsumgebungen und die Möglichkeiten der Fehlersuche sowie der nahtlosen Einbindung von Fremdwerkzeugen wie Build-, Test- und UML-Tools ist eine der großen Stärken von Java.
Unterm Strich ist festzuhalten, dass man relativ viel Know-how benötigt, um hochklassige Java-Web-Anwendungen zu schreiben. Ist dieses Wissen vorhanden, muss sich die Leistung einer solchen Anwendung hinter keiner verstecken, die mit einer anderen Technik entwickelt wurde.
Glossar
-
Monitoring: Um Web-Anwendungen während der Laufzeit zu überwachen, gibt es unterschiedliche Tools und Verfahren. Java bietet mit den Java Management Extensions (JMX) eines der führenden Konzepte der Branche.
-
Robustheit: Eine Web-Anwendung muss eine Vielzahl von Anfragen gleichzeitig beantworten. Bei dieser Aufgabe kann man nicht tolerieren, dass ein Programm des Öfteren hängen bleibt.
-
Skalierbarkeit: Kann ein Programm, das für 1000 Benutzer ausgelegt ist, auch 10.000 mit überschaubaren Änderungen verkraften? Wenn dem so ist, ist das Programm skalierbar, lässt sich also an einen wachsenden Ressourcenbedarf anpassen, ohne dass die Performance leidet.
-
Widgets: Widgets sind die Bausteine einer grafischen Oberfläche, mit denen der Benutzer das Programm steuern kann, so zum Beispiel über Schaltflächen. Sie werden auch häufig Controls, Beans oder Javabeans genannt.
- 1. Adobe Spry
Spry ist ein leistungsfähiges Ajax-Framework, das die Entwicklung moderner Web 2.0-Anwendungen beschleunigt und vereinfacht. Selbst Designer mit geringen Javascript-Kenntnissen können damit dynamische und interaktive Seiten erstellen. - 2. Dojo Toolkit
Mit Dojo lassen sich Desktop-typische Funktionen wie Drag & Drop und Kontextmenüs leicht in Web-Anwendungen implementieren. Das Framework überzeugt auch durch seine hohe Performance und Cross-Browser-Kompatibilität. - 3. JQquery UI
JQuery UI liefert ein flexibles und ausgereiftes Framework, das sich in der Praxis bewährt hat. Durch Konzepte wie Modularisierung und Wiederverwendbarkeit macht es die Entwicklung komplexer Web-Frontends deutlich effizienter. - 4. YUI Library
YUI dient als solides Fundament für anspruchsvolle Web 2.0-Clients. Bei der Frage nach dem richtigen Javascript-Framework für eigene Projekte sollte es unbedingt in Betracht gezogen werden. - 5. Glow
Neben den Standardfunktionen, die bei keinem Javascript-Framework fehlen dürften, bietet Glow tolle UI-Widgets, eine exzellente Dokumentation, die den Einstieg erleichtert, sowie professionelle Performance. - 6. Prototype
Bei komplexeren Web-Anwendungen ermöglicht Prototype Entwicklern, die bewährten Konzepte der Objekt-Orientierung auch auf der Client-Seite anzuwenden. Dass namhafte Unternehmen wie Apple und Twitter das Framework einsetzen, spricht für die hohe Robustheit und Leistungsfähigkeit der Lösung. - 7. Scriptaculous
Scriptaculous überzeugt durch ein umfangreiches Feature-Set, die einfache Handhabung, sowie eine ausgezeichnete Online-Dokumentation mit vielen Code-Beispielen, die den Einstieg erleichtern. - 8. MooTools
MooTools gehört zu den wichtigsten Frameworks für fortgeschrittene JavaScript-Entwickler. Dass es vom Unternehmen wie Chrysler, Ferrari, MTV Deutschland oder die Commerzbank eingesetzt wird, zeigt, dass es sich hier nicht um irgendwelches Framework handelt, sondern um eine ausgereifte und professionelle Lösung. - 9. JavaScript MVC
JavaScriptMVC bringt Software-Engineering-Konzepte und -Tools der Enterprise-Klasse in die Welt der JavaScript-Programmierung. Das Framework eignet sich in erster Linie für mittelgroße und große Web-Projekte, bei denen Modularität und Wiederverwendbarkeit groß geschrieben werden. - 10. Cufon
Typographie stellt ein zentrales Gestaltungselement im Web-Design dar. Dank Cufón müssen Designer keine Kompromisse mehr eingehen und können jede noch so exotische Font in ihren Web-Projekten verwenden, ohne dabei auf Flash oder externe Bildressourcen zurückgreifen zu müssen.