Neulich habe ich einen Artikel über „Ruby on Rails“ gelesen, ich konnte es danach nicht lassen das Internet für noch mehr Information zu konsultieren.
Es war erschreckend für mich zu sehen wie einfach und schnell mit Ruby eine Web-Applikation erstellt werden kann.Ich habe mich an meine Progress 4GL Zeit zurück erinnert, mit diesem Tool konnte ich 1988 ähnlich schnell Applikationen entwickeln.
Seit 1999 ist Java die Sprache die ich hauptsächlich einsetze, leider ist J2EE bisher nicht eine Umgebung die einem zu einem effizienten entwickeln von Web-Applikationen verführt. Zudem habe ich während meiner Tätigkeiten sehr viele Entwickler getroffen, die lieber stundenlang über die Anwendung von J2EE Patterns diskutieren und die Produktivität bei der Entwicklung als Beiwerk betrachten. Oftmals wird mit überdimensionierten J2EE Applikationen mit Kanonen auf Spatzen geschossen und der Kunde muss dies auch noch bezahlen.
Ich habe mich an meine J2EE Web-Applikation Erfahrungen vor zirka 3 Jahren basierend auf dem Oracle RDBMS und der Bea Weblogic erinnert.
In der Präsentationsschicht wurde das Framework Struts eingesetzt. Die Geschäftslogik wurde für einen EJB Container entwickelt. Dabei benutzten wir Session- und Entity-Beans (CMP und BMP).
Natürlich benötigt diese Architektur explizit auch noch einige Patterns, wie beispielsweise Business Delegate, Service Locator, Value Object, Session Façade.
Wurde beispielsweise eine zusätzliche finder-Methode in der Präsentationsschicht benötigt, so wurde die Struts-Action, der Business Delegate, die Session Façade (Session Bean) dessen Interface, das Entity Bean mit dessen Interface und falls BMP statt CMP gab es noch zusätzliche Änderungen. Eine Veränderung von 7 Dateien für die durchgehende Implementierung einer Methode ohne JUnit-Tests war die Regel.
Um ein Attribut von der Tabelle in die Anzeige mussten zirka 5 Schritte durchgeführt werden. Hinzufügen des Attributes in im ejb-jar.xml, 2 Klassen im Business Layer ändern, bei Benutzung von Struts Form Bean die struts-config.xml und das entsprechende JSP anpassen.
Für mich war diese Architektur zu aufwändige, sie entsprach aber der Vorgabe der Firma.
Ich hoffe, dass in naher Zukunft sich in der Java-Welt eine effizientere Entwicklung von Web-Applikationen durchsetzten wird. Es gibt auch andere Entwickler, die dieses Defizit von Java wahrgenommen haben, sonst würde es die beiden Projekte Trails und Grails nicht geben.