Mit gehörigem Ehrgeiz habe ich mich in den letzten Tagen auf eine Expedition in das Javaland begeben. Ach, was heißt Java, es sollte schon Webentwicklung mit JSF, Spring, Hibernate, und Best Practices, und, und... sein. Verheißungsvoll wie das
Springframework (Booohh!):
"As the leading full-stack Java/J2EE application framework, Spring delivers significant benefits for many projects, reducing development effort and costs while improving test coverage and quality."
Oder
Hibernate (Aaahhh!)
"Hibernate is a powerful, high performance object/relational persistence and query service. Hibernate lets you develop persistent classes following object-oriented idiom - including association, inheritance, polymorphism, composition, and collections."
Was war dann noch? Ach ja,
JavaServer Faces Technology (Oooohhh!)
"JavaServer Faces technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by: assembling reusable UI components in a page; connecting these components to an application data source; and wiring client-generated events to server-side event handlers."
Schon ein bisschen viel Technologien auf einmal, aber dafür gibt es
AppFuse: Simplifying Java Web Development (Holla!):
"AppFuse is an application for "kickstarting" webapp development. Download, extract and execute ant new to instantly be up and running with a kick-ass Java webapp running on Tomcat/MySQL. Uses Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, jMock, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (Spring MVC, WebWork, Tapestry and JSF are also options)."
Und im bekam das sogar noch geregelt! Java, Eclipse, MySQL, Ant, Appfuse, Tomcat, stundenlang heruntergeladen, installiert, konfiguriert, dann "ant new", minutenlang werden Hunderte von Dateien erzeugt, die automatisierten Tests laufen dann fast 10 Minuten, bis der Tomcat alles gestartet hat, oijoijoijoi!, aber es geht!!, es geht wahrhaftig!!!, jetzt muss ich mich doch nur noch ein wenig in die erzeugte Applikation reindenken, und dann weiterentwickeln, und gut ist, oder?
Ab da machte sich langsam Ernüchterung breit..., wo ist da jetzt Spring? Wo ist Hibernate? Und wie spielt das zusammen? Wie verteilen sich jetzt die Aufgaben zwischen UserDao.java, UserDaoHibernate.java, User.java, UserManager.java und UserManagerImpl.java? Wo ist das wie verdrahtet?
Und ich merkte, wie ich immer unwilliger und gereizter wurde ob der kryptischen Namen, der komplizierten Sachverhalte, dieses - auf jeden Fall für mich - undurchschaubaren Wirrwarrs und Sammelsuriums an Klassen, Jar-Files und XML-Konfigurationsdateien. Und mich erfasste eine leise Sehnsucht nach simpleren, überschaubareren Lösungen! Ach, stimmt, da war doch was, ausgerechnet im Weblog eines der Väter von JSF, der JavaServerFaces,
David Geary werde ich daran erinnert:
"Why is development with Rails so much faster than with JSF, Tapestry, Struts, or whatever? The single biggest reason is zero turnaround time. You make changes to your application, refresh the browser, and voila, instantaneous feedback."
Ja, Rails war da noch. Ruby on Rails.Und was muss ich dann noch auf der Webseite dieser Entwickler aus Hamburg, die eine "JSF-Spring-Bridge" entwickelt hatten,
lesen:
Wir entwickeln inzwischen mit Vorliebe Web-basierte Applikationen auf Basis von Ruby on Rails. Wegen
- des klaren Designs,
- der eleganten Implementierung innovativer Konzepte und vor allem
- der enormen Produktivität für den Entwickler
halten wir Rails für eine der wesentlichen Innovationen der letzten zehn Jahre im Bereich Webapplikationen.
Da war ich fast schon ein wenig angefressen....