Hi mutex,
ein ausgezeichneter Beitrag
Er spiegelt genau meine Erfahrung wider, die ich in den letzten paar Wochen gemacht habe, in denen ich nun versuche einen Durchblick zu bekommen. Und das ist nicht der erste Versuch, vor einem Jahr habe ich es schonmal versucht, hab aber dann irgendwann die Lust an der Sache verloren. Und wenn man dann sieht, wie schnell man mit z.B. Ruby On Rails, oder ASP.NET seine Webanwendung fertig hat, die man geplant hat ist es einfach nicht ganz praktikabel.
Vor einem Jahr habe ich mal mit dem Buch J2EE von Thomas Stark angefangen. Es erklärt sehr ausführlich einzelne Aspekte von J2EE, etwas zu ausführlich für meinen Geschmack. Ich fand das zwar alles interessant, aber nach ein paar Tagen hatte ich auf J2EE erstmal keine Lust mehr
Ansonsten habe ich vor Kurzem (zweiter Versuch mit JEE) das Buch "JBoss at Work" gelesen von Tom Marrs und Scott Davis (jbossatwork.com). Das Buch fand ich sehr gut. Es ist nicht sonderlich dick (ca. 250 Seiten) und geht die Themen JSP, Servlets, JDBC, Hibernate, EJB, Webservice der Reihe nach durch. Das ganze wird anhand eines durchgehenden Beispiels erläutert. D.h. es fängt an mit einer einfachen statischen HTML Seite, dann JSP, dann kommt die Logik ins Servlet, dann kommen die Daten in die Datenbank (JDBC) usw.
Es wird also jedes mal deutlich, wofür nun die neue Technologie dazu kam. Das ganze wird natürlich auch regelmäßig deployed mit Ant und XDoclet usw. Das wird aber immer recht schnell abgehakt. Das Buch arbeitet aber noch mit EJBs 2.x. Das Kapitel Webservices war leider auch etwas frustrierend. Es ging Seiten lang und hat erklärt, wie man genau was machen muss, wie die Objekte serialisiert werden usw. Alles sehr spannend, keine Frage. Aber da ich eben bißchen mit ASP.NET rumgespielt habe vergleiche ich das natürlich immer sofort. Und ein Webservice in ASP.NET ist eine Sache von < 1 Min. Aber hier muss man eben sagen: Was im Hintergrund passiert ist die eine Sache. Was die IDE mir aber an Tools zur Verfügung stellt eine andere. Ob sich seit dem Buch da etwas geändert hat weiß ich natürlich nicht.
Ansonsten geht das Buch noch auf die Themen Sicherheit, JMS und JavaMail ein. Das hab ich aber übersprungen.
Da JSF nun start in die Richtung von ASP.NET geht und ich davon recht begeistert bin habe ich noch ein paar Bücher hierzu bestellt (ausgeliehen). Will das ja nicht alles kaufen
Also wenn ich damit durch bin kann ich vielleicht etwas mehr zu JSF sagen.
Ein anderes Problem ist ja, dass man nun nicht einfach wie in ASP.NET loslegen kann, weil man in einer GUI nur was zurechtklicken und auf "Play" klicken muss. Die Webtools in Eclipse sind noch nicht sonderlich ausgereift und man muss schon sehr genau wissen, was man da programmiert. In Netbeans geht das derzeit etwas besser von der Hand, aber auch hier nützt das alles nichts, wenn man nicht vorher weiß, was man da macht. ASP.NET kann man mit ein paar Klicks, Learning by doing irgendwie hinbekommen. Bei Ruby On Rails ist es ähnlich, dass man in wenigen Minuten mit einem Howto seine erste Anwendung fertig hat, weil man im Grunde das ganze Gerüst nur 1 zu 1 kopieren muss. Keine Deployment Deskriptoren und weiß der Geier
Aber dafür bietet JEE eine enorme Flexibilität und seitdem ich das Buch gelesen habe (innerhalb von 3 Tagen fast komplett eingesaugt) bin ich davon ziemlich fasziniert.
Wofür nun diese ganzen Frameworks, wie Spring und Struts usw. sind kann ich nicht ganz beurteilen. Struts scheint ja nun nicht mehr ganz so "in" zu sein und Spring steht wohl auch im Gegensatz zu EJB 3. Also nun mal abgesehen davon, dass man in JEE viel mit Ant und Deployments zu kämpfen hat fand ich die Beispiele im Buch nicht kompliziert. Weiß nicht, was mir ein Framework hier an Arbeit abnehmen soll.
Das Problem ist nun, dass man eben nicht einfach mal anfangen kann, wenn man nichtmal weiß, wofür das alles überhaupt ist, was es so gibt. Und ich kenne bisher kein Buch, welches mal kurz erklärt, was das alles soll und wofür das ist. JBoss At work hat ja nur ein paar einzelne Teile angesprochen. D.h. man ist natürlich vielleicht nach einem Buch wie JBoss At Work in der Lage eine Webanwendung zu gestalten. Aber immer, wenn man etwas umsetzt wird man es mit den Mitteln umsetzen, die man eben kennt. Z.B. wäre ich nie auf die Idee gekommen Hibernate einzusetzen, ging ja auch so. Ich kenne zwar ORM vom Prinzip her, habe es aber nie eingesetzt. Da ist es eben wichtig, dass man das mal gesehen hat. Und so ist es eben bei vielen dieser ganzen Technologien: Man bekommt sicher vieles mit ein paar Mitteln umgesetzt, aber vielleicht geht es anders leichter?
Nun, was ich so gehört habe ist es wohl so, dass man ja nicht alles davon wirklich beherrschen kann. Es ist auch immer fraglich, ob sich der Aufwand lohnt, das ist so mein Problem an der Sache.
Daher bleibt aber wohl nichts anderes übrig als mit den paar Mitteln die man hat einfach mal anzufangen. Im Grunde benötigt man ja nicht viel für eine einfache Webanwendung. JSPs reichen ja
Aber setzt man noch Servlets, Hibernate usw. ein wird es vielleicht komfortabler und man merkt, wofür man die Dinger braucht. Und dann kann man sich überlegen, was man nun als nächstes einsetzt. Am Ende wird man nicht sagen können, dass man den ganzen Rattenschwanz an Frameworks JABC bis JXYZ beherrscht. Sondern man kann nur sagen: Ich verwende für JEE Anwendungen JSP + JSF + JDBC + Hibernate + EJB + sonst was.
Und hier sind wir wieder beim Problem von vorhin: Ich weiß nicht, was "sonst was" noch alles sein könnte. Vielleicht gibts das ja wieder was ganz tolles, was man noch einsetzen könnte, man kennt es aber nicht.
Also wer die Wahl hat, hat die Qual
Gruß
Mike