Oh Mann!!! Du hast echt Talent zum Manager.
Vielleicht nimmt Ed Brill dich als co-bloggar zum fröhlichen buziness bloagging auf: „The bold hilarious bald guys“.
ECLIPSE:
Ich habe mit Eclipse 2.0 struts gelernt und zwar ohne jedes plug-in und es ist überhaupt nicht kompliziert und darüber hinaus wesentlich einfacher als der Domino Designer. Viele von euch und ich auch hatten doch Entwickler-Anfänger-Schulungen in Domino Designer. Zahle 1000 Euro in IMG, zahle die Zugfahrt mit Bahn-Card und ich zeige dir an einem Tag, wie man struts mit eclipse ohne plug-ins programmiert.
Irgendwann erklärst du uns noch, es wäre total guru-mässig kompliziert mit Messer und Gabel zu essen.
Plug-Ins sind lediglich ein Hilfsmittel, um monotone Arbeiten zu verrichten. Die eigentliche Arbeit findet
zwischen den Ohren statt. Es gibt auch so was wie plug-inities. Jeder geht durch diese Phase. Da hat man dann 30 plug-ins in seinem Eclipse, weiss nicht wie sie heissen und beim 31. beginnen sie sich gegenseitig zu behindern, obwohl das per Architektur kaum möglich ist.
Ausserdem kannst du dir myEclipse für 31.75 Dollar kaufen und dann hast du eine wohltemperierte plug-in Sammlung mit 1 Jahr support und upgrade. (myEclipse.com)
JFC/SWT
Sorry. Mr. Strategy. Das sind wirklich einfach nur schlechte Beispiele.
1- bestehen die Java Foundation Classes aus 2 völlig unterschiedlichen Libraries, die im Ansatz völlig anders sind und teilweise schwer bis gar nicht zu kombinieren sind: Swing und AWT. AWT benutzt – wie SWT – native Widgets des OS. Swing painted die selber. Swing baut auf jeden Widget hardcoremässiges OO drum.
2- SWT/Jface benutzt native widgets wie AWT, geht aber in vielen noch ein paar Schritte weiter. AWT folgte bei Oos einen kleinsten-gemeinsamen-Nenner Ansatz. Z.B. gibt es keine Trees als widgets (linke Seite im Windowsexplorer), weil es das in manchen unterstützten OSen nicht gibt. SWT painted diese teilweise selber. SWT ist ziemlich low-level und anders als bei Swing gibt es nicht diese hardcore OO drumherum. Jface bietet dafür OO mässige Widgets.
(ich bin kein Experte für so was und müsste das nachlesen. Das stimmt alles nur so ungefähr)
Jedenfalls ist das wirklich ein Beispiel von gesundem Wettbewerb. Der Arschtritt von SWT/Jface hat Swing wirklich schneller gemacht.
JSP/struts/JSF
Sind völlig andere Sachen, die ganz andere Aufgaben erfüllen und miteinander kooperieren. Wäre ungefähr als würde man sagen: Warum kann man in Notes mit Formelsprache Formeln in Felder schreiben UND – SKANDAL! – gleichzeitig gibt es dann noch so was wie ein querysave-event.
Struts ist eine der – wirklich zahlreichen – Implementierungen einer sogenannten Model2 Architektur (oft wird auch Model-View-Controller gesagt, Model2 ist aber der bessere Begriff). D.h. der User sendet seine Requests gegen den Controller. Der Controller gibt Informationen an die Objekte-der-Logik-der-Anwendung (Business-Logik) weiter und leitet auf die view. Die view holt sich Informationen aus den Business-Logik Objekten.
Dabei wird als View-Komponente zu 95% JSP benutzt. JSP ist im kompilierten Zustand einfach nur ein Servlet. Sieht nur vor der Kompilierung für den Entwickler anders aus. Für die Controller werden gerne Servlets benutzt und für die Business Logik POJOs (Plain Old Java Objects, normale Java Klassen) oder EJBs.
Die Notes-Szene hat durch missverständliche Äusserungen von Bob Balaban und den sowieso immer völlig bescheuerten Äusserungen von dem Puakma-Freak
eine irgendwie merkwürdige Einstellung zu JSP, die ein halbwegs gesunder Mensch, der schon mal JSPs in einer Model-View-Controller Architektur – z.B. mit Hilfe des struts frameworks – eingesetzt hat, nicht mehr nachvollziehen kann
ODER: KEIN NORMALER MENSCH BENUTZT SKRIPTLETS!
JSF wiederum ist eine Art Reaktion auf ASP.NET. Muss man in JSPs noch den DHTML code in die JSP reinschreiben, haben diese JSF Komponenten dieses Zeugs irgendwie innendrin dabei. Erfahrung hab ich damit aber nicht. Wenns klappt, spart man sich das JavaScript/HTML/css coding.
Besser wäre zu fragen, warum zum Teufel Tapestry, weil das wirklich eine ähnliche Aufgabe wie struts hat. Das ist eine Frage, die ich gerade anfange zu ergründen. Und ich hab schon ein paar Argumente (Junit Tests einfacher).
Natürlich sind nicht alle Frameworks gut und manchmal benutzt man etwas, von dem man hinterher herausfindet, dass man es eigentlich doof findet (XMLDigester bei mir).
Man kann da aber wirklich auswählen. Und diese Frameworks können auch wirklich helfen bei der Qualität. Das ist schliesslich bei guten Frameworks wohl getesteter, von detailbesessenen Experten entwickelter und ein paar mal refaktorierter GUTER CODE, was man von dem Zeugs, was mich teilweise aus Notes-Anwendungen anspringt, die ich erweitern soll, einfach nicht sagen kann. Man kann das auch von manchen Sachen, die ich so schreibe, nicht unbedingt sagen.
Frameworks sind natürlich auch keine silberne Kugel, mit denen man alle Probleme wegschiessen kann. Derzeit in diesem Theater: Gregg Bollinger vs. JSF.
http://radio.javaranch.com/channel/gthought/So geht’s mir auch oft.
Die wirklich schlimmen Fälle von aus den Ruder gelaufenen Projekten, sind aus meiner Sicht die, wo die Entwickler zu wenig Frameworks benutzt haben. Die hatten einfach diese große, tolle Java-API, oft ein Informatik-Studium und sagten den Kunden: Für die extrem vielschichtigen Herausforderungen hier gibt es keine von-der-Stange-Lösung. Aber wir haben Java. Und solche Leute haben auch immer ein extremes Talent, in kurzer Zeit mit Java etwas zu zaubern, das wirklich toll aussieht. Problem ist, dass sie a) nie fertig werden und b) immer neue Probleme auftauchen. Was denen meiner Meinung nach fehlt, ist praktische Erfahrung mit realen Kundensituationen.
Frameworks, d.h. gute, sind nicht einfach eine Api. Vielmehr enthalten Sie auch viel Wissen über die zugrundeliegende thematische Domäne des Frameworks. Z.B. versteht man durch Hibernate RDBMS besser (und ohne Grundwissen ist man verloren). Durch Spring lernt man den Aufbau eines vernünftigen Business-Layers.
Was ich an der sogenannten Java-Community mag, ist, dass die wirklich eine hohe Bereitschaft habe, auf die harte Tour zu lernen und ihre Meinung an den Realitäten anpassen. Meiner Meinung nach werden die Probleme auch von so Leuten wie Ted Neward, Rod Johnson und Bruce Tate offen angesprochen.
Ich finde nicht, dass es soooo schwierig ist, eine andere Programmiersprache zu lernen. Ausserdem hat das gute Rückwirkungen auf das, was man in der anderen (alten) Umgebung programmiert.
sincerely yours,
Axel