ich stolpere immer wieder im Netz über ellenlange JSF Rants. Es wird über eine hohe Komplexität gejammert, die Lifecycles wären so schwer zu verstehen, es wäre so eingeschränkt, Fehleranfälligkeit, usw., usw… Als “goldener Ritter” wird oft im selben Atemzug GWT genannt.
Mir ist es persönlich lieber eine GUI deklarativ zu erstellen als programmatisch. Mit Primefaces ist die Ajax Integration für meine Verhältnisse super und ich persönlich hätte noch keinen Anwendungsfall gehabt, vor welchem ich kapitulieren musste. Zwei Kritikpunkte die ich nachvollziehen kann sind der hässliche generierte Quellcode und die Navigation, wobei ich letzteres ziemlich gut mit Prettyfaces erschlagen bekomme.
Bin ich einfach masochistisch veranlagt, oder gibt es irgendwo noch andere JSF-Nutzer die nicht dauernd am jammern sind? :stumm: Mit welchen Web-Frameworks arbeitet ihr?
Das ist natuerlich lange her… k.A. wie das jetzt so ist mit JSF 2 + Facelets[/QUOTE]
Und ich glaube genau daher kommt noch die „JSF ist Mist“ Problematik. JSF 1.x macht nämlich wenig Spaß.
Okay, JSF 1.x war vor meiner Zeit, demnach bin ich wohl „privilegiert“, dass ich mit 2.x anfangen durfte. Und der gesamte Frust und die gesamte Ablehnung basieren dann auf dem Stand von vor 5 Jahren. Dann kann ich ja nur hoffen, dass ich in meinem zukünftigen Berufsleben nicht über JSF 1.x Legacy-Code stolpere.
Eine Firma bei der ein Freund von mir angestellt ist hat sich wohl wegen o.g. schlechten Ruf für Wicket entschieden, als das Projekt „Umbau auf Web“ angegangen wurde, womit wir wieder bei programmatischer GUI wären. Für deklarative Herangehensweise hätte ich bisher nur Spring MVC gefunden.
Das Problem ist, dass eine Migration von JSF 1.x auf 2.x je nach verwendeten Frameworks nicht oder nur schwierig möglich ist. Deshalb gibt es noch viele Projekte, die mit JSF 1.x arbeiten.
Wicket ist eine schöne Alternative, wie ich finde. Auch wenn ich mit JSF 2.2 eigentlich kaum noch etwas vermisse (höchstens die Unterstützung bei aktuellen JEE-Servern).
Ich hatte einmal kurze Zeit mit JSF (2.0) zu tun gehabt. Java an sich ist ja ganz toll, aber JSF ist einfach nur ekelhaft. Es ist eine richtig große Blackbox wo man nur so drumherum etwas von versteht, aber so wirklich komplett verstanden habe ich es bis heute nicht.
Es wirkt dermaßen aufgebläht, unübersichtlich und kompliziert…
Es fängt bereits damit an, dass es kaum hilfreiche Tutorials im Netz zu JSF gibt (auf Deutsch schonmal garnicht). Die meisten Tutorials bestehen lediglich aus einem Hello-World Tutorial, was einen aber nicht wirklich voranbringt.
Dann kommt noch hinzu, dass JSF unter Eclipse ganz anders als unter Netbeans ist. Zudem gibt es dann noch verschiedene Anwendungsserver. Meint man also nun das perfekte Tutorial gefunden zu haben, scheitert es daran, dass derjenige statt Eclipse+Tomcat eben Netbeans+Glassfish verwendet.
Sucht man auf Youtube nach Tutorials, findet man (bis auf HEllo-World Tutorials) nur Videos von einem Typen in Englisch mit heftigstem Indischen Akzent. Da versteht man fast nichts.
Ob es dazu brauchbare Bücher gibt weiß ich nicht. Von der Head-First Reihe jedenfalls nichts, und auf ein 700+ Seiten Buch in Schriftgröße 12 mit didaktischem Konzept von 1935 habe ich auch keine Lust gehabt. Und für JSF brauchts glaube ich auch ein 700+ Seiten Buch in Schriftgröße 12, damit man da erstmal halbwegs durchblickt. Allein um alles erstmal einzurichten, damit man überhaupt was starten kann, muss man einiges installieren und einrichten.
Dann doch lieber einfach PHP nehmen, womit man alles durchblickt, es genug verständliche Tutorials gibt und auch einfacher ist.
Was ist eigentlich der Vorteil von JSF bzw. JEE generell? Wird ja viel in der Industrie eingesetzt hört man ja.
Wo ist der Vorteil von JEE gegenüber PHP? Es muss ja einen Grund haben, wieso soviele Firmen auf JEE setzen?!
Zumindest gibts viele JEE stellen. Könnte ja auch sein, dass eigentlich überwiegend PHP genutzt wird, aber sich eben kaum JEE Leute finden lassen, weil da nur wenige Lust drauf haben, was ich mir aber nicht vorstellen kann.
Java find ich ja toll. Da versteht man auch alles und es ist recht klar. Aber bei JEE sehe ich eher eine große Blackbox vor mir…
da habe ich einen falschen Eindruck erweckt :D. Was ich bisher gemacht habe war ein bisschen mit rumgespielt. Aber ernsthaft ein Projekt könnte ich wohl noch nicht mit umsetzen. Wollte/Will es mal erlernen um eben mein Portfolio zu erweitern … leider fehlt mir dazu privat sowohl lust als auch Zeit.
Wo ist der Vorteil von JEE gegenüber PHP? Es muss ja einen Grund haben, wieso soviele Firmen auf JEE setzen?!
Das soll dir besser jemand anderes erklären. Ich kann hier nur hören-sagen weitergeben und meine persönliche Meinung über PHP. Ich mag PHP nicht!
Aber bei JEE sehe ich eher eine große Blackbox vor mir…
Ja ging mir ähnlich und geht mir eigentlich auch immernoch so.
[QUOTE=Jack159]Wo ist der Vorteil von JEE gegenüber PHP? Es muss ja einen Grund haben, wieso soviele Firmen auf JEE setzen?!
Zumindest gibts viele JEE stellen. Könnte ja auch sein, dass eigentlich überwiegend PHP genutzt wird, aber sich eben kaum JEE Leute finden lassen, weil da nur wenige Lust drauf haben, was ich mir aber nicht vorstellen kann.
Java find ich ja toll. Da versteht man auch alles und es ist recht klar. Aber bei JEE sehe ich eher eine große Blackbox vor mir…[/QUOTE]
JEE besteht nicht nur aus JSF.
Allerdings ist JSF eigentlich ziemlich klar spezifiziert. Natürlich bedarf es Einarbeitungszeit, aber die Struktur ist relativ simpel. Die Integration von JSF in JEE ist ein Traum. Die Nutzung von CDI und EJB ist mit JSF 2.2 so wunderbar geworden, da muss man beinahe nicht mehr denken. Es funktioniert einfach.
Der Vorteil von JSF gegenüber PHP ist zum einen die Verwendung von Java, was ein nicht zu verachten ist. Zum anderen ist das Erstellen und Verteilen von eigenen Komponenten einfach gehalten. Weiter kenne ich auch genug Firmen, wo eine Agentur (oder interne Abteilung) einen Html-Klick-Dummy baut, der dann einfach in JSF integrierbar ist - mit PHP ist mir so etwas noch nicht untergekommen.
Nachteile sind klar: Immer Client-Server-Calls. Man benötigt einen Application-Server.
Ein Hello World in PHP ist sehr sehr einfach. LAMP. einen Einzeiler, fertig!
Bei einem Hello World in JEE stehen davor die Installation des Application Servers, das heraussuchen von libs und jars, sowie das schreiben von Configurationsdateien. Darauf folgt dann noch ein Deployment Prozess. Und alles nur für ein einfaches Hello World. Und dass Helloworld sieht dann noch schwieriger aus als in php.
Danach ist es allerdings relativ einfach. Diese Aufwände hat man in der Regel einmalig bei Projektstart. Danach hat alles nach relativ kurzer Zeit seine Strukturen, so daß auch recht unerfahrene Programmierer schnell Fuß fassen können. Zudem hat man eine statisch typisierte Sprache (Compiler zeigt schonmal die gröbsten vertipper), sowie das nahezu gesamte Ökosystem um Java zur Verfügung.
Beispiele für das Ökosystem sind z.B. ORM und Messaging.
Kurz: JEE Projekt aufsetzen schwierig, JEE Projekt erweitern/ändern einfach.
100% … aber wenn man erst einmal durch die ganze Struktur, die ganzen CFGs und das Zusammenspiel durchgestiegen ist, dann geht das Aufsetzen auch schneller
Zu Anfang kanns einen erschlagen gerade was die Auswahl angeht, was man eigentl. nimmt etc… Da fängts ja schon beim Server an und dann muss man noch nen gescheites Tutorial finden, was nicht veraltet oder falsch ist
Und in manchen JEE- Bereichen kommt man sich vor, als ob man der erste Mensch ist der den Fehler hat bzw. der letzte der das noch benutzt
Solang man sich nicht mit anderen Technologien ernsthaft auseinander gesetzt hat, wird man nicht verstehen, was man am eignen Favoriten noch besser machen kann (grundsaetzlich).
Ich muss zugeben, mit JSF kenn ich mich nicht wirklich aus, ich hatte nur mal mit JSP zu tun - und das fand ich damals toll, weil ich nur PHP als Alternative kannte
Hatte dann mal sehr viel mit Ruby on Rails zu tun und war fassungslos, wie einfach und elegant man die gleichen Probleme auch loesen kann. Mir ist heute z.B. voellig schleierhaft, wieso man seine View-Templates in einer so furchtbaren Sprache wie XML schreiben sollte.
Kann dir nur empfehlen, die Komfortzone mal zu verlassen und moeglichst viel anderes Zeug auszuprobieren.
PS: Hab neulich mal ein kleines C Projekt gemacht und weiss nun, dass ich nie wieder ueber den Garbage-Collector meckern werde…
Die Unterschiede sind eigentlich sehr vielfältig:
JEE ist ein Framework, PHP ist eine Sprache. In der PHP-Welt wäre das, was da am ähnlichsten ist das Zend Framework. Transaktionssichere Beans, O/R-Mapping, Inversion Of Control, Messaging, usw. usw…
Der Einstieg ist hier auch nicht wirklich einfach, der Aufwand um hier eine „Hello World“ Anwendung zu schreiben ist ziemlich hoch. Ich habe mich damals übrigens mit dem offiziellen JEE-Tutorial von Sun/Oracle eingearbeitet. Danach 3-4 Monate Learning By Doing bevor ich nicht jede Anwendung wegschmeißen musste. Der ganze Overhead lohnt sich für kleinere Anwendungen auch kaum. Allerdings ist das Entwickeln von Business-Anwendungen so einfach, dass es fast schon langweilig wird
Serverside State stinkt. =D Das ist mein einziger Grund.
Ich schreibe lieber REST-Controller und handle die Client-Seite mit JS. Das ist natürlich nicht jedermanns Sache.
Aber generell habe ich fest gestellt: Sobald Java mit 'nem ordentlichen Servlet-Container läuft, geht man schon sehr viel Performance-Problemen aus dem Weg. Also wird’s wohl oft kein Problem mit dem Serverside State geben. (JSF setzt ja keinen echten JEE-Container wie JBoss oder Websphere voraus, ein Jetty oder Tomcat reicht.)
Stimmt auch. Aber das gilt für die meisten Frameworks bevor man sich eingearbeitet hat. Aber es gibt immer Frameworks in die man schneller oder langsamer reinfindet. JSF gehört bei mir auch zur zweiten Kategorie. Vor allem weil es zu grauslichen Problemen kommen kann wenn verschiedene Komponenten gegenseitige Abhängigkeiten haben aber mit verschiedenen Lebensdauern …
Ich arbeite mich gerade in Vaadin ein, und obwohl es eine Menge Problemchen gibt (insbesondere der Umstellung von 6 auf 7 geschuldet) würde ich GWT nicht mal mehr mit einem spitzen Stock anpiecksen. Vaadin fühlt sich an wie eine Desktop-GUI, also gar nicht so verschieden von Swing, und da war ich lange zuhause. Zu JSF kann ich nichts sagen, habe nie damit gearbeitet, und die Philosophie dahinter klingt für mich auch nicht überzeugend.
Ich bin auch gerade dabei mit Vaadin zu arbeiten, aber ich finde ist schon unterschiedlich zu Swing und SWT/JFace. Allein schon das Layouting und das Databinding, darum bin ich noch nicht so richtig warm mit Vaadin :)…
JSF 2 ist ganz nett, aber man kann vieles falsch machen, deshalb ist es gut wenn ein erfahrener Entwickler dabei ist. Schade das JSF2 noch kein OSGi unterstützt, aber soll ja bald kommen, dann lohnt es sich mal wieder anzuschauen…