Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[java] Java 5 EE - Stemming doorgekomen!

Pagina: 1
Acties:
  • 232 views sinds 30-01-2008
  • Reageer

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Na letterlijk jaren en jaren gewacht te hebben is het nu dan bijna zo ver. Vandaag is 1 van de belangrijkste horden genomen: de final aproval ballot voor de Java EE 5 spec is er eindelijk doorheen. Unaniem stemde iedereen voor! :D

Java 5 EE is een kleine revolutie binnen de Java wereld. Niet langer zal er gerommeld hoeven te worden met scriptlets of JSTL/EL op JSP pages met daartussen HTML. Vanaf Java EE 5 zal java over een echt web componenten model beschikken; echte herbruikbare componenten inclusief event handling zoals met 'echte' desktop GUI componenten. Ook zal het handmatig queries schrijven tot het verleden behoren. Met Java EE voeg je een paar annotations aan je classen toe en Java genereerd zelf de benodigde SQL om objecten (inclusief complex relaties!) in en uit een DBMS te halen.

Velen zullen al wat geproeft hebben van Java EE 5 dmv previews van JSF of de beta versies van EJB3/Java persistence API. Natuurlijk zaten hier nog een aantal bugs / onvolkomenheden in, maar daarvoor was het ook resp preview en beta.

Nu de spec echter goedgekeurd is, zal naar verwachting al over een maand de final spec gereleased worden en dan kunnen de implementaties niet lang op zich laten wachten. EJB3 zal bijna ogenblikkelijk beschikbaar zijn, omdat Hibernate deze al tijden op de voet volgt in de vorm van alpha en beta code. Wanneer er een robuuste JSF implementatie komt is nog wel even afwachten. Glassfish zal er bijna instant mee komen, maar met een RI status is dit natuurlijk geen kandidaat om in productie te gaan gebruiken. Naar verwachting zal MyFaces er mischien al binnen een jaar mee komen, en met Tomcat 6 waarvan pas de eerste SVN entries zijn gemaakt zal het servlet container gedeelte ook niet lang meer op zich laten wachten.

Voor de officiele resultaten, zie hier:

http://jcp.org//en/jsr/results?id=3770

Zijn er nog meer mensen hier die met spanning op de uitslag van de stemming zaten te wachten en die de toekomst van Java EE 5 groot inzien?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


Verwijderd

Absoluut niet om te trollen, maar als ze hier nou 3 jaar eerder mee waren gekomen, dan was ik niet overgestapt naar .NET en gewoon Java fan gebleven. Nu hebben ze eindelijk na jaren de knoop doorgehakt dat het moet gaan gebeuren, maar ik zie de implementatie fase niet zo rooskleurig in. Ondertussen hebben ze bij MS webparts uitgebracht en heb ik al een aantal mooie dingen in Vista / IE7 / .NET gezien die de hegemonie van webapplicaties wel eens zouden kunnen doorbreken, dingen als Avalon, Sparkle en de naadloze deployment van standalone apps over het web in de IE7 browser.

Begrijp me niet verkeerd, Java was de eerste echte taal die ik leerde en ik ben echt geen .NET fan van het eerste uur (ik heb Java eerder jarenlang verdedigd toen m'n collega's al wilden overstappen). Maar door de traagheid van Sun (bijvoorbeeld doordat ze ondanks SWT met Swing bleven aanmodderen) moesten we op een gegeven moment wel overstappen.

Jammer.

  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:29

momania

iPhone 30! Bam!

Ik kan het niet echt spannend vinden. Het is toch al een setje bij elkaar geraapte dingen die al bestaan en dat wordt dan tot Java EE 5 gedoopt.

Ik zit eerder te wachten op java 6. Dan krijgen we dikke performance inprovements. Daar heb je tenminste wat aan. Ze moeten bij Sun zich gewoon lekker bezig blijven houden met puur de runtime.

Neem je whisky mee, is het te weinig... *zucht*


  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Verwijderd schreef op dinsdag 02 mei 2006 @ 21:47:
Ondertussen hebben ze bij MS webparts uitgebracht en heb ik al een aantal mooie dingen in Vista / IE7 / .NET gezien
We moeten natuurlijk inderdaad wel realistisch blijven en erkennen dat vooral in de GUI layer MS al wat langer bezig is met web componenten (controls) en er daarom ook al meer daar omheen is. Ik noem maar even zoiets als Master pages, terwijl Java inderdaad net komt met de gewone basis componenten.

Aan de andere kant kun je stellen dat web componenten an-sich een dermate grote stap is, en doordat Sun nu als 2de grote speler hier ook mee komt het dus wel degelijk een bewijs is dat het concept vruchtbaar is. Vergeet niet dat er nog hele volksstammen van mensen zijn die vinden dat web programming nog steeds moet bestaan uit scripts gemixed met HTML. Vooral in de PHP wereld is dat geloof er sterk.

Antieke ASP style (dus niet de .NET versie) wordt eigenlijk niet meer gebruikt. In de MS wereld is bijna iedereen wel 'over' naar het componenten model. In de Java wereld is men nog verdeeld. Velen passen een beetje een mix toe van semi-components (custom tags) en lichte logic (JSTL/EL), maar ook nog velen doen gewoon PHP style JSP's met scriptlets erin en een minderheid is verdeeld over de 3rd party componenten frameworks die al bestaan. Nu er 1 standaard componenten model is (waar andere projecten weer op kunnen bouwen ipv er mee te concurreren), valt te verwachten dat net zoals bij MS binnen afzienbare tijd ook iedereen over is.

Aangezien de Java wereld zeer groot is, betekend dit dat een zeer grote meerderheid van de web programmeurs component based zal werken. De PHP filosofie, waar we allemaal onder leiden als we op een dergelijk project gezet worden, zal het dan hopelijk ook niet lang meer houden.
naadloze deployment van standalone apps over het web in de IE7 browser.
Java webstart?
Maar door de traagheid van Sun (bijvoorbeeld doordat ze ondanks SWT met Swing bleven aanmodderen) moesten we op een gegeven moment wel overstappen.
Nu gaat dit natuurlijk helemaal niet over Java EE, maar SWT is ook lang niet perfect. Het idee is dat het een 'native' widget set moet voorstellen, maar dat men er nu toch 'rijkere' widgets in gaat stoppen dan een platform aanbiedt. Dat zit je toch eigenlijk meer richting Swing. Je zou kunnen stellen dat SWT een goede vervanging is voor AWT, en dat Swing zou kunnen bouwen OP SWT ipv er mee te concureren.
Ik zit eerder te wachten op java 6. Dan krijgen we dikke performance inprovements. Daar heb je tenminste wat aan.
Helaas zit de allerlekerste hiervan (escape analysis t.b.v. auto stack based allocation) er *weer* niet in. Hier was al sprake van in 1998 ofzo, maar het wordt jaar op jaar naar de volgende versie geduwt. -dat- is wel iets wat jammers is.
Ze moeten bij Sun zich gewoon lekker bezig blijven houden met puur de runtime.
En wie moet dan de specs opstellen, of geloof jij helemaal niet in specs? Let wel dat Sun Java EE niet *maakt*. Anderen maken de implementatie. Sun bouwt wel een RI, maar zelfs daar gebruiken ze veel code donaties van anderen. De echte implementaties komen van Hibernate, Oracle, Apache, en VELEN anderen.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:29

momania

iPhone 30! Bam!

flowerp schreef op dinsdag 02 mei 2006 @ 22:31:
[...]

Helaas zit de allerlekerste hiervan (escape analysis t.b.v. auto stack based allocation) er *weer* niet in. Hier was al sprake van in 1998 ofzo, maar het wordt jaar op jaar naar de volgende versie geduwt. -dat- is wel iets wat jammers is.
Volgens mij wil IBM dit wel in z'n java 6 runtime gaan toevoegen. Voor websphere omgevingen wel interressant dus. :)
En wie moet dan de specs opstellen, of geloof jij helemaal niet in specs? Let wel dat Sun Java EE niet *maakt*. Anderen maken de implementatie. Sun bouwt wel een RI, maar zelfs daar gebruiken ze veel code donaties van anderen. De echte implementaties komen van Hibernate, Oracle, Apache, en VELEN anderen.
true, maar er wordt soms net gedaan alsof het allemaal nieuw en geweldig is wat ze verzinnen. ;)

Neem je whisky mee, is het te weinig... *zucht*


  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
momania schreef op dinsdag 02 mei 2006 @ 22:35:
[...]
Volgens mij wil IBM dit wel in z'n java 6 runtime gaan toevoegen. Voor websphere omgevingen wel interressant dus. :)
Klopt, maar vergeet niet dat IBM Java 6 waarschijnlijk nog na Sun Java 7 (Dolphin) komt. Kijk ook naar het heden, IBM Java 5 zit nog steeds in beta terwijl Sun Java 6 al over een paar maanden uitkomt.
true, maar er wordt soms net gedaan alsof het allemaal nieuw en geweldig is wat ze verzinnen. ;)
Valt wel mee hoor ;) Mischien dat het af en toe zo overkomt op mensen die niet zo zeer in het wereldje zitten, maar Sun heeft zeker deze keer veel gebouwd op bestaande best practices. EJB3 is natuurlijk direct geinspireerd door Hibernate (en omdat Hibernate dan weer EJB3 implementeerd is het circeltje rond), terwijl JSF direct voorvloeit uit Struts (de grote man achter Struts zat zelfs in JSF spec team). Voorderest zijn er duidelijk invloeden van Spring met oa de @resource annotation.

Ik zou de relevante quotes moeten opzoeken, maar ik weet vrij zeker dat Sun iets heeft gezegd van dat ze juist niet alles 'zelf verzinnen' voor deze Java EE versie, maar dat ze in overleg met de industrie (jcp) de best practices en common use op (java) web development gebied bij elkaar brachten en standaardiseerden.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


Verwijderd

De PHP filosofie
Ik neem aan dat je de algemenere 'klooi maar raak' filosofie bedoelt? Dit kun je eigenlijk wel op elk platform, de beschikbaarheid van web componenten (en ja, die zijn er zelfs voor PHP) maakt hierbij naar mijn ervaring weinig uit. Dus vanuit dat oogpunt weet ik niet of het componentmodel van J2EE 5 nou echt de grote stap is.
Java webstart?
Mooier ;) In principe krijg je een browservullende applicatie (eigenlijk een soort applet zeg maar), alleen kan die zich bedienen van veel uitgebreidere faciliteiten en profiteert het natuurlijk van een betere integratie met IE, alsmede de standaard beschikbaarheid van .NET op nieuwe versies van XP en Vista.
Nu gaat dit natuurlijk helemaal niet over Java EE, maar SWT is ook lang niet perfect. Het idee is dat het een 'native' widget set moet voorstellen, maar dat men er nu toch 'rijkere' widgets in gaat stoppen dan een platform aanbiedt. Dat zit je toch eigenlijk meer richting Swing. Je zou kunnen stellen dat SWT een goede vervanging is voor AWT, en dat Swing zou kunnen bouwen OP SWT ipv er mee te concureren.
Toegegeven, dit gaat inderdaad niet over J2EE, maar het is wel een mooi voorbeeld van hoe traag Java zich ontwikkeld. Tot versie 1.4 was Swing nou ook niet echt om over naar huis te schrijven, vooral als het aankwam op de looks & feels van Windows themes (sorry, maar daar gaat het toch om voor desktop apps). In principe is hier ook jaren mee aangerommeld en toen bouwde IBM (toch?) op een paar maanden tijd SWT, dat grafisch en qua performance torenhoog boven Swing uit stak (en nog steeds steekt?).

De proposal om SWT de standaard widget toolkit te maken loopt volgens mij nog steeds als JCP (in ieder geval heb ik wel een motie tot vervanging van AWT gezien), met de komst van Vista zal het wel weer hopeloos zijn met de Swing L&F en over eventuele deployment issues heb ik het nog niet eens eens gehad. Wij zijn naar .NET zijn overgestapt omdat het leek dat je met Java altijd een beetje achter de feiten aan holt en zo te zien is dat helaas nog steeds niet verandert.

Maar goed, jullie zitten ongetwijfeld niet te wachten op mijn teleurstellingen over Java. Mooi te weten dat er in ieder geval wel nog steeds aan de weg wordt getimmerd :)

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik vind achter de feiten aanlopen vrij cru gezegd. Het is helemaal waar dat Sun met JSF de opgelopen achterstand op GUI gebied wil inlopen, maar het is niet zo dat Sun op elk gebied achter loopt op MS.

Juist omdat Sun zich alleen met specificaties bezighoudt en het implementeren aan de open source community overlaat, gaan sommige zaken zeer snel. Neem Hibernate, neem Spring, neem Tapestry, neem 20 applicatieservers om uit te kiezen, neem de grote vrijheid aan (waavan sommige zeer goede) IDE's.

Bijna alle goed werkende frameworks worden door de MS club nageaapt, zoals Hibernate en Spring. MS heeft dan weer het voordeel dat er een zeer grote en zeer georganiseerde organisatie achter staat die de ontwikkeling sneller afmaakt zodat er eerder een final versie is.

Maar... zeer veel innovatie komt uit het Java kamp, dus om te zeggen dat Java achter de feiten aan loopt.

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

Ik wil ook absoluut niet beweren dat er geen innovaties uit het Java kamp komen, maar helaas mist Sun/Java de slagkracht om er echt een concurrerend voordeel uit te halen. Als MS besluit om een uitgekristaliseerd framework na te apen, dan zijn veel van de kinderziektes er al uit, dus kunnen ze meer tijd besteden aan een flashy eerste final en ze hebben de kracht om er en passant even een standaard van te maken.
Neem Hibernate, neem Spring, neem Tapestry, neem 20 applicatieservers om uit te kiezen, neem de grote vrijheid aan (waavan sommige zeer goede) IDE's.
Of dit een voordeel is, dat is een kwestie van smaak IMHO. Voor ons was dit destijds een van de voornaamste redenen om over te stappen. Met MS producten heb je inderdaad maar 1 of 2 keuzes, maar dan weet je wel zeker dat je beschikbare opties voor de keuze helemaal voldoen en dat ze door de maker/eigenaar van het platform ondersteund worden.

Bovendien besteed ik m'n tijd liever aan programmeren (en discussieren op GoT ;)) dan aan het uitpluizen van welke van die 20 applicatieservers, 3 GUIs en tig webframeworks nou echt de beste keuze zou zijn.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Verwijderd schreef op woensdag 03 mei 2006 @ 08:26:
Ik wil ook absoluut niet beweren dat er geen innovaties uit het Java kamp komen, maar helaas mist Sun/Java de slagkracht om er echt een concurrerend voordeel uit te halen. Als MS besluit om een uitgekristaliseerd framework na te apen, dan zijn veel van de kinderziektes er al uit, dus kunnen ze meer tijd besteden aan een flashy eerste final en ze hebben de kracht om er en passant even een standaard van te maken.
[...]
Dat is ook knap van MS, petje af daarvoor. :) Sun zou dat idd ook meer moeten doen om wat concurrerender te worden. Aan de andere kant is het maar goed dat J2EE op zo'n manier werkt, want het heeft veel innovatie tot gevolg. En werkgelegenheid voor ons. :)
Verwijderd schreef op woensdag 03 mei 2006 @ 08:26:
[...]
Of dit een voordeel is, dat is een kwestie van smaak IMHO. Voor ons was dit destijds een van de voornaamste redenen om over te stappen. Met MS producten heb je inderdaad maar 1 of 2 keuzes, maar dan weet je wel zeker dat je beschikbare opties voor de keuze helemaal voldoen en dat ze door de maker/eigenaar van het platform ondersteund worden.

Bovendien besteed ik m'n tijd liever aan programmeren (en discussieren op GoT ;)) dan aan het uitpluizen van welke van die 20 applicatieservers, 3 GUIs en tig webframeworks nou echt de beste keuze zou zijn.
Daar zijn de specificaties van Sun voor. Om al die ontwikkelingen een beetje in goede banen te leiden en consistentie te waarborgen. Uiteindelijk zijn de meeste servers toch ongeveer gelijk, buiten de extra's die ze leveren. IBM is een verhaal apart, met hun WebSphere serie die niet eens een normale JVM gebruikt. :P

Ik denk serieus dat MS en Sun elkaar in de praktijk niet veel ontlopen. Bij MS kun je als 'beginner' sneller aan de slag omdat je niets hoeft te kiezen of te onderzoeken, want er is maar één keuze. Bij JEE ga je aan de slag met een stel frameworks (bijvoorbeeld Struts en Hibernate) en daar wordt je dan vanzelf net zo bedreven in. In de loop der tijd leer je nieuwe concepten bij. Bij .NET geldt dat evenveel als bij JEE, want je kent alle functionaliteiten van .NET ook niet meteen.

Overstappen is ook niet bijzonder moeilijk als je eenmaal een framework kent.
Struts -> JSF of JSF -> Tapestry is bijvoorbeeld redelijk te doen. Of vise versa

Fat Pizza's pizza, they are big and they are cheezy


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

flowerp schreef op dinsdag 02 mei 2006 @ 22:31:
Helaas zit de allerlekerste hiervan (escape analysis t.b.v. auto stack based allocation) er *weer* niet in. Hier was al sprake van in 1998 ofzo, maar het wordt jaar op jaar naar de volgende versie geduwt. -dat- is wel iets wat jammers is.
Wat houdt dit precies in en wat vind je er zo lekker aan?

Verwijderd

Verwijderd schreef op woensdag 03 mei 2006 @ 08:26:
[...]


Of dit een voordeel is, dat is een kwestie van smaak IMHO. Voor ons was dit destijds een van de voornaamste redenen om over te stappen. Met MS producten heb je inderdaad maar 1 of 2 keuzes, maar dan weet je wel zeker dat je beschikbare opties voor de keuze helemaal voldoen en dat ze door de maker/eigenaar van het platform ondersteund worden.

Bovendien besteed ik m'n tijd liever aan programmeren (en discussieren op GoT ;)) dan aan het uitpluizen van welke van die 20 applicatieservers, 3 GUIs en tig webframeworks nou echt de beste keuze zou zijn.
Achja, voor die applicatieservers geef ik je zeker gelijk.

Maar (en dit is meer een vraag dan een opmerking) in JAVA hebben we EJB (ok, er wordt veel op afgegeven, maar het is écht niet zo onhandelbaar) en Hibernate. Leuke technieken om een database aan te spreken.
Basisframeworks die je het leven makkelijk maken bestaan (bestonden) er toch niet voor .NET? Mis je die niet?

Ik weet bijvoorbeeld dat ik in JAVA een free XSLT parser heb, in .NET denk ik eerder dat ik een component zou moeten kopen.
Een XSLT parser is nu wel een slecht voorbeeld maar neem dan een goede free O/R mapper. Ik dacht dat er voor .NET2 plannen waren voor een O/R mapper (objectspaces?) in .NET zelf (zoals EJB in J2EE, standaard dus) maar dat die ook uitgesteld zijn net als de halve feature set van die nieuwe Windows.

Ik denk gewoon dat .NET heel wat frameworks mist die het mij als developer makkelijk zouden kunnen maken.
Dingen die JAVA in de loop der jaren opgebouwd heeft en gestandaardiseerd maar in .NET nog enkele jaren zullen duren.

(en ik weet eigenlijk niet in hoeverre de oude VB developers de gewoonte hebben dergelijke projecten te zoeken? Hadden die niet zowiezo de gewoonte alles zelf te doen of een component te kopen?)

Verwijderd

JKVA schreef op woensdag 03 mei 2006 @ 08:38:
Bij MS kun je als 'beginner' sneller aan de slag omdat je niets hoeft te kiezen of te onderzoeken, want er is maar één keuze. Bij JEE ga je aan de slag met een stel frameworks
En JUIST daarom is deze Java release 1 van de belangrijkste ooit. Het maken van views is met JSF makkelijker en beter onderhoudbaar dan in JSP's handmatig HTML opbouwen. Echter, er bleef altijd het hardnekkige geloof dat je eerst met 'basis' Java moest beginnen, dwz wat rommelen met JSP's. Pas als je een geavanceerde gebruiker was mocht je met dingen als een MVC framework beginnen.

Voor diegene die het niet geloven dat mensen dat echt dachten; lees got er maar eens op na. In bijna alle "J2EE: hoe te beginnen" topics krijgen mensen dit advies. Gevolg was dat de PHP-way als iets 'normaals' werd gezien en MVC als iets 'raars', iets aparts voor de echte diehards en freaks.

Omdat JSF nu -de- default view technologie is geworden voor Java is dat met EE 5 compleet anders. Components zijn nu 'normaal', en alleen als je een oud fosiel bent die niet met z'n tijd mee kon komen zul je nog wat in JSP met directe HTML en Java code gaan kloten. Voor de meeste is dit niet aantrekkelijk; niemand wil een fosiel zijn terwijl iedereen zo liefst mogelijk normaal wil zijn. Vergelijk dit met assembly, C en C++. Toen C opkwam was dit ook raar. Je was pas een normale programmeur als je in assembly dingen deed. Zelfde met C++. Objecten waren raar en academisch. Daar moest je pas mee beginnen als je het basis programmeren (low level C dus) onder de knie had. Even later was juist OO de norm en alleen als je een echte die hard freak was ging je nog low-level C coden.

Dus, ook al bestonden componenten in de web layer al langer in Java, pas nu zal het voor de massa echt aantrekkelijk worden. Ook hoef je nu niet meer op zoek te gaan. JSF is gewoon de default keuze. Wil je meer of iets speciaals, dan kun je nog gaan zoeken. Vergelijk dit ook met JSP. Er zijn voor Java andere templating technieken zoals Velocity. Maar 99% van de Java programmeurs kiest voor JSP, gewoon omdat dat de default is. Pas als je heel goed weet wat de beperkingen van JSP zijn en je last begint te krijgen van de nadelen, ga je eens kijken wat er nog meer te koop is.
Overstappen is ook niet bijzonder moeilijk als je eenmaal een framework kent.
Struts -> JSF of JSF -> Tapestry is bijvoorbeeld redelijk te doen. Of vise versa
Vergeet ook niet de overstap ASP.NET/Controls <-> JSF. Deze twee technieken hebben meer overeenkomsten dan verschillen. Persoonlijk vind ik ze enorm op elkaar lijken.

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 28-11 14:44
JSF mag misschien de nieuwe "default" zijn, maar ik ben toch zeker voordat iedereen effectief op de JSF trein spring, er nog een lang weg te gaan is.
Zoals vele andere bedrijven hebben wij onze eigen componenten geschreven in de vorm van jsp tags, dit gaat van simpele tot bedrijfs specifieke tags. Op deze manier is de snelheid waarmee applicaties opgeleverd worden enorm groot geworden.
Omdat JEE 5 uit is en daarin JSF de default is wil dat niet zeggen dat we opeens op JSF gaan springen. Ik denk dat we zoals veel bedrijven nog wat de kat uit de boom gaan kijken en afwachten hoe het allemaal verloopt. Voorlopig blijven bij het goeie oude struts icm jsp.

Geef nu toe, als je nu met jsf wil beginnen weet je niet waar te starten, verschillende projecten hebben wel kant en klare components die ze aanbieden, maar ik vind dat er toch moeilijk een standaard in te zien te kiezen is. Neem daar nog eens bij de stap die we terug zouden nemen bij het ontwikkelen van applicaties met JSF componenten ipv onze goede op punt gestelde JSP tags... we hebben nu eenmaal niet de nodige middelen om 1 team full time volledig onze eigen jsp componenten om te zetten naar jsf componenten... ik denk dat het nog wat wachten wordt en zien hoe alles verloopt.

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Verwijderd

Cuball schreef op donderdag 04 mei 2006 @ 08:41:
JSF mag misschien de nieuwe "default" zijn, maar ik ben toch zeker voordat iedereen effectief op de JSF trein spring, er nog een lang weg te gaan is.
Zoals vele andere bedrijven hebben wij onze eigen componenten geschreven in de vorm van jsp tags, dit gaat van simpele tot bedrijfs specifieke tags.
Dat is natuurlijk logisch, maar dat geldt voor alles en iedereen. Wij hebben bijvoorbeeld nog een belangrijke management applicatie draaien die op Win32/MFC met C++ is geprogrammeerd. Nou is .NET al weer tijden uit en echt veel beter dan MFC. Toch is het gewoon niet haalbaar om dit naar .NET te gaan omschrijven.

Eigen libraries zijn natuurlijk moeilijk. Voor Java hebben wij ook een zooi tags ontwikkeld van enkele hele simpele tot een hoog complexe serie tags voor de invoer van data in bepaalde standaard formulieren die wij hebben. Hier zitten veel dingen in als data renderers, converters, relaties tussen velden etc. Veel van deze in-house ontwikkelde dingen zitten al standaard in JSF, plus dat je er het universele state-saving en universele event model bij krijgt. State-saving doen wij nu zelf dmv een state-manager en events hebben we eigenlijk ook al, alsmede zelfs een heuse life-cycle. Echter, deze dingen zijn wel specificiek voor onze tags. Ons custom event modelletje werkt natuurlijk niet zomaar met elke willekeurige third party tag.

Eigenlijk zouden we deze tags wel om willen bouwen, maar ik weet al dat het eigenlijk niet te doen is. Voorlopig hebben we wel een zeer simpel wrapper component gebouwd, dat eigenlijk niets anders doet dan in de JSF life cycle fases de oude code aan te roepen en de JSF response writer door te geven aan ons eigen render systeem.

Omdat onze tags al behoorlijk modulair waren, hoefde er eigenlijk aan de originele code nix aangepast te worden. We kunnen dus nu al onze tags mixen met JSF tags en dit gaat tot dusver 100% goed. Natuurlijk kunnen dingen als de JSF converters en renderers niet door onze tags gebruikt worden, maar als geheel afzonderlijk 'ding' werkt het dus wel, en via beans en EL kan er ook gewoon communicatie plaatsvinden tussen JSF widgets en onze tags. Dat hele wrapper component bouwen heeft me niet meer dan een half middagje gekost voor de hoofd tag, en nog wat losse uurtjes voor in essentie de zelfde soort wrapper bouwen voor een aantal support tags.

Ideaal is het niet, maar voorlopig kunnen we wel JSF pagina's bouwen EN onze eigen custom tags gebruiken.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik zit eerlijk gezegd ook niet echt te juichen. Sun heeft er een handje van om hele logge specificaties te maken die in de praktijk gewoon naad werken. Een paar basis dingen die werken dan op papier aardig, maar in de praktijk loop je steeds tegen beperkingen aan.

Ik ben zelf een grote liefhebber van Spring: het vergt iets meer inzicht, maar je kunt er wel hele schone en strakke dingen mee maken. Verder zijn een enorme lading specificaties imho ook alleen maar nodig om de kromme gedachtes binnen de Sun specs op te lossen. Ik ben op dit moment bv bezig met het bestuderen van de nieuwe concurrency specificatie om de concurrency library in Java 5 ook binnen J2EE omgevingen in te zetten: onzin. Ik kan het al lang met Spring en ik heb daar alle vrijheid die ik daar nodig ben: mits je weet waar je mee bezig bent. In Spring heb ik alle vrijheid die ik eis en tools die me die vrijheid ontnemen of alleen via gekke omwegen me die vrijheid geven, vind ik naad.

Dus het definitief worden van deze specificatie maakt me niet koud of warm.

[edit]
Het enige wat ik nog interessant vond aan de spec is dat je een thread een maximum periode kunt laten draaien. Ik vraag me alleen af hoe zit dit gerealiseerd hebben: threads zo maar onderbreken kan een systeem in een inconsistente toestand achterlaten. Dus mijn gok is dat veel concurrency constructies ook niet mag gebruiken en dat ontneemt mij dus weer mogelijkheden.

[edit2]
Verder heeft JSF uiteraard wel goeie features, maar je moet niet vergeten dat er ook veel andere pagebased/component based frameworks zijn: Tapestry, Wicket, Click en nog wel een paar. Ik zou wel eens mensen willen horen die bv met JSF en met Wicket of Tapestry hebben gewerkt en wat ze het meest prettige vinden werken.

[ Voor 28% gewijzigd door Alarmnummer op 05-05-2006 10:20 ]


Verwijderd

Alarmnummer schreef op vrijdag 05 mei 2006 @ 09:27:
Ik zit eerlijk gezegd ook niet echt te juichen. Sun heeft er een handje van om hele logge specificaties te maken die in de praktijk gewoon naad werken.
In het geval van deze JSR is het zeker niet alleen Sun. Ook organisaties als bijvoorbeeld Apache of Google hebben aardig wat in de melk te brokkelen. Je zou kunnen zeggen dat democratie niet werkt in het geval van Java EE en dat er een monopolist achter moet zitten om een product te maken en die als de facto standaard neer te zetten. In het geval van Java EE 5 zijn er heel veel partijen die er belang bij hebben, en die willen allemaal dat hun wensen in de spec komen. Het zelfde geldt voor open source projecten die te veel contributies van verschillende developpers toe staan. Die worden ook bloated en log.

Aan de andere kant kun je je afvragen of democratie en openheid je die prijs waard is. Voor somiggen is dat zo en voor somiggen niet. Er zijn mensen die bloat gewoon kunnen negeren. Of iets nu 10 of 200Mb op mijn server inneemt kan mij persoonlijk weinig schelen als ik er een gigabit verbinding naar toe heb en er 16GB geheugen + 500GB disks inzitten. Dat er 2048 packges in een product zitten terwijl ik maar van 4 classes consume, tsja... zolang die 4 classes doen wat ik wil zal ik er niet van wakker liggen.

Je kunt het een beetje vergelijken met wonen in de stad. Er zijn mensen die gek worden van alle drukte om zich heen, maar er zijn ook mensen die in alle drukte gewoon rustig op een bankje gaan zitten, zich helemaal in een boek verliezen en de drukte niet eens zien of horen.

Natuurlijk wil je soms wel eens de wens hebben om dingen ANDERS te willen. Als expert kun je dit eisen. Voor veel beginners/gemiddelden is te veel vrijheid niet goed. Die misbruiken het en gaan rare dingen doen. Neem nu een plain JSP pagina. The sky is werkelijk the limit. Je kunt er op doen wat je wilt; SQL query'tje draaien midden op de pagina? Het kan! Vervolgens er met een loop over iterreren en allemaal business logic uitvoeren? Niemand houd je tegen. Beginners misbruiken deze vrijheid dan ook vaak gruwelijk. Als eindverandwoordelijke voor code mag jij dan later de brokken opruimen. Vandaar dat ik de beginnende mensen dus ook liever met een techniek laat werken die ze lekker dwingt volgens vaste paden te wandelen.

Na verloop van tijd zul je dan zien dat die dwang je opeens meer vrijheid geeft, want je kunt alles wat je hebt gemaakt veel makkelijker aan elkaar clicken en mixen; alles werkt volgens standaard patronen. Miljoenen mensen schrijven elke keer weer dezelfde regels aan code op een JSP/PHP pagina. Dingen als:

Java:
1
2
3
4
5
6
7
8
9
10
11
<% String param = request.getParameter( "cust_id" );
int intParam = -1;
if ( param != null && param.lenght() > 0 ) {
  try {
     intParam = Integer.parseInt(param);
  }
  catch (NumberformatException) { /* do stuff */ }
}
  obj.doBussiness(intParam);
  // etc
%>


Dergelijke code sequences (in deze vorm of een gelijkwaardige) geven uitdrukking aan de ultieme vrijheid. Maar je -moet- het wel telkens overnieuw schrijven. De vrijheid wordt dus een dwang. In JSF daarentegen defineer je 1 maal een zogenaamde converter. Die hang je aan een field. En klaar. Je kunt dat ding 1000.000 keer her-gebruiken, extenden, aanpassen etc. (en de meest voor de hand liggende zitten al standaard in JSF)
[edit2]
Verder heeft JSF uiteraard wel goeie features, maar je moet niet vergeten dat er ook veel andere pagebased/component based frameworks zijn: Tapestry, Wicket, Click en nog wel een paar. Ik zou wel eens mensen willen horen die bv met JSF en met Wicket of Tapestry hebben gewerkt en wat ze het meest prettige vinden werken.
Nou heb ik weinig ervaring met Wicket of Tapestry, maar wat me opviel is dat het er in de eerste instantie redelijk gelijkwaardig uitziet. Je hebt weer componenten, je hebt weer MVC etc. In Tapestry lijkt het allemaal net gewoon HTML, wat weer scheelt voor sommige.

Echter waar JSF zeker enorm krachtig is, is in de uitbreidbaarheid. Property-resolvers, variable-resolvers, view-handlers, state-managers, phase-listeners... voor bijna ALLES wat JSF doet kun je je eigen implementatie via een soort plug-in mechanisme aan toevoegen. De handlers zijn werkelijk enorm krachtig. Je kunt ermee het standaard gedrag van JSF beinvloeden of totaal veranderen. Beinvloeden gaat via een decorater pattern. Voeg een handler toe in een XML config file en jouw handler krijg automatisch een reference naar de vorige handler. Zo kun je 1 bepaald aspect beinvloeden en de rest door laten gaan naar de standaard handler.

Een leuk voorbeeld is deze post, laatste bericht: http://saloon.javaranch.c...b=get_topic&f=82&t=001178

Een beetje nare eigenschap /BUG in JSF, en met een paar regels code vertel je JSF opeens dat ie op een hele andere manier (jouw manier dus) de view tree moet gaan restoren; simpelweg omdat je in staat wordt gesteld het essentiele stukje code dat dit normaal doet te decoraten.

Een andere punt waar je een enorm grote flexibiliteit krijgt is in het fases/life-cycle model. In eerste instantie denk je: "waarom zo'n life-cycle". Maar dan zie je opeens dat je op relatief simpele wijze erg leuke dingen kunt doen. Dmv een life-cycle phase-listener kun een custom component maken die als enigste component op een pagina op iets reageert. Je laat bv een component aan de hand van een token iets naar de response schrijven in de process decode phase. Als je dit conditioneel doet zal nog geen enkel andere component iets naar de response geschreven hebben (dat doe je normaal pas enkele phases later). Vervolgens kun je met een enkel commando de overige phases van de life-cycle laten skippen. Je kunt op deze manier heel simpel een component maken die (HTML) code rendert met URL references erin en die geheel autonoom laten afhandelen. Denk bv aan componenten die img tags neerzetten of die javascriptjes renderen die AJAX requesten doen. In de meeste andere aanpakken die ik zag moest je voor componenten die dergelijke dingen deden aparte servlets declareren in web.xml.

Nog een ander groot punt van flexibiliteit is dat zowel aan de voorkant als aan de achterkant JSF componenten in principe technology onafhankelijk zijn. Met aan de achterkant bedoel ik de techniek waarmee je de componenten bundeld tot een GUI layout. De standaard techniek daarvoor is via taglibs in een JSP pagina. Maar JSF zelf staat compleet los van JSP. Je kunt gewoon je eigen templating techniek gebruiken of zelfs een layout van de componenten in pure java (als desktop gui's dus) samenstellen. Een bekend project wat precies dit doet is facelets. Facelets is geen concurrent van 'standaard' JSF, maar gewoon een alternatieve manier om een layout te maken helemaal volgens de bedoeling van de spec. Met de voorkant bedoel ik dat in principe hetgeen JSF componenten genereren techniek onafhankelijk is. Zowel renderers als renderkits zijn pluggable. In de praktijk werkt dit overigens niet altijd zo makkelijk als het klinkt, omdat niet perse componenten uit verschillende libraries dezelfde alternatieve renderkit hoeven te ondersteunen. Daarbij is de gedachte van even een renderkit wisselen om voor 1 pagina een alternatieve rendering te maken ook grotendeels een illusie. Als je bijvoorbeeld wilt switchen tussen HTML en CHTML, dan wil je waarschijnlijk voor CHTML ook een alternatieve layout (je wilt sommige componenten gewoon helemaal weg hebben), zodat je alsnog 2 pagina's schrijft en onderhoud. Perfect is dit laatste dus niet, maar de aanzet is er zeker.
Vervolgens is ook nog de gehele EL implementatie pluggable. Je kunt hier dus 'gewoon' een eigen taaltje voor schrijven als je wilt of de standaard EL decoraten.

Natuurlijk zijn er nog wel wat punten van kritiek, maar hey, was Spring ---perfect--- in de allereerste versie die als release werd gekenmerkt?

Al met al ben ik redelijk onder de indruk van JSF en ik kijk dan ook zeer zeker uit naar de eerste implementatie van de final.

[ Voor 100% gewijzigd door Verwijderd op 05-05-2006 22:26 ]


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Wat me vooral aanstaat aan JSF 1.2 is de Unified Expression Language. Nu loop je regelmatig tegen kleine irritante dingen aan zoals een foreach in JSP en daarin JSF componenten die je zelf ID's moet geven en zo. En nog meer van die rottige dingen. Met de nieuwe expression language zou dat opgelost moeten zijn.

Ook kijk ik uit naar betere foutafhandeling, want alleen onduidelijke stacktraces in je console werkt niet prettig. Als ik dat bijvoorbeeld vergelijk met de Tapestry integratie in bijv. MyEclipse.........

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

JKVA schreef op zaterdag 06 mei 2006 @ 17:03:
Wat me vooral aanstaat aan JSF 1.2 is de Unified Expression Language. Nu loop je regelmatig tegen kleine irritante dingen aan zoals een foreach in JSP en daarin JSF componenten die je zelf ID's moet geven en zo. En nog meer van die rottige dingen. Met de nieuwe expression language zou dat opgelost moeten zijn.
Volgens mij staat dat probleem opzich redelijk los van de EL, maar het is inderdaad 1 van de dingen die opgelost is. Dit probleem (evenals de unified EL en content interweaving probleem) komt van het feit dat de huidige JSF release een preview is. Het was voornamelijk bedoeld als standalone demo van de techniek en niet om echt te gaan integreren met allemaal andere dingen.

Nu JSF standaard is, moet de integratie met de rest van Java EE natuurlijk helemaal goed zijn, vandaar dat daar extra aan gewerkt is. Wel vind ik de versie nummers HEEL erg ongelukkig gekozen, maar dan zijn zowieso alle versie nummers van de losse onderdelen van Java EE. Aan de versie nummers van web.xml, JSP en Servlet is ook geen touw vast te knopen. Je zou eigenlijk iets van het major Java EE nummer terug willen zien in de JSP, JSF, Servlet en EJB specs.

JSF 1.2 zou in een wat meer logischere nummering of 1.0 moeten zijn, of 5.0. Het huidige JSF 1.1 had dan beter 0.x kunnen zijn, of iets met beta erachter. Maar goed...

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
JKVA schreef op zaterdag 06 mei 2006 @ 17:03:
Ook kijk ik uit naar betere foutafhandeling, want alleen onduidelijke stacktraces in je console werkt niet prettig. Als ik dat bijvoorbeeld vergelijk met de Tapestry integratie in bijv. MyEclipse.........
Wat heeft Tapestry support in MyEclipse met de fourafhandeling in JSF te maken? Of bedoeld je soms dat er meer design-time error checking moet komen? Ik ben het dan wel met je eens. Een groot nadeel van dat java een stuk makkelijk moest worden is dat er veel "dynamiek" is toegevoegd, oftewel veel weak-typing & late-binding. De hele EL bijvoorbeeld wordt pas runtime geinterpreteerd en dus kom je ook pas runtime achter fouten.

Een eerste stap van MyEclipse en consorten zou tenminste het aangeven van syntax errors in de EL expressie kunnen zijn en warnings voor als managed beans niet in faces-config of andere config files declared is. Dat zou al een hele hoop ellende schelen!

Wat betreft de stack-traces is het meer een fundamenteel probleem. De laagjes stapelen zich lekker tegenwoordig maar via het checked exception principe mag een bepaalde laag alleen z'n eigen exceptions doorgeven. Wat je krijgt is dat er exceptions gewrapped worden, en niet 1 keer maar soms wel 7 keer of meer. Vervolgens print de bovenste exception handler (bv tomcat) ook alleen nog maar de laatste twee uit, terwijl je juist de eerste wilt hebben.

Een hele simpele oplossing voor dat laatste probleem is om in je exception handler gewoon in een loopje de rootExceptions, causes of underlyingexceptions etc op te vragen. Je krijgt dan wel wat langere traces, maar er staat tenminste de exception bij waar het mee begon (als je dat echt wilt kun je ook alleen die allereerste exception printen.)

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

flowerp schreef op dinsdag 09 mei 2006 @ 20:57:
[...]
Wat heeft Tapestry support in MyEclipse met de fourafhandeling in JSF te maken? Of bedoeld je soms dat er meer design-time error checking moet komen? Ik ben het dan wel met je eens. Een groot nadeel van dat java een stuk makkelijk moest worden is dat er veel "dynamiek" is toegevoegd, oftewel veel weak-typing & late-binding. De hele EL bijvoorbeeld wordt pas runtime geinterpreteerd en dus kom je ook pas runtime achter fouten.
Dat is precies wat ik bedoel ja. :)

Fat Pizza's pizza, they are big and they are cheezy


  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Dat is voor mij ook op dit moment het grootste nadeel van Java EE 5, ondanks dat ik het systeem opzich wel erg waardeer. Met plain Java bouwde je toch altijd op de compiler, en zelfs met EL in plain JSP kon je nog altijd snel even spieken of de bean wel bestond op je page.

Je hebt dit probleem van IDE support ook gedeeltelijk met de nieuwe Java Persistence Api en alle annotations. Annotations opzich worden wel type-checked, maar kwa betekenis en gebruikt zou de IDE wel wat support kunnen bieden voor de standaard dingen.

Als het goed is zou MyEclipse over 2 weken met een eerste beta (milestone in eclipse termen) van een grondig verbouwde nieuwe versie komen. Hoewel ze dat al 2 maanden zeggen, ben ik toch wel benieuwd of ze met namen het JSF EL support gedeelte nu wat beter oppakken.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Van de voorlopige Java EE 5 spec krijg ik een heerlijk warm buikgevoel. Ik kan niet wachten tot de eerste versie van de implementatie uitkomt. JSF1.2, UEL, mooier kan het haast niet.

Ik ben het volledig met DE_man eens, JSF zit erg goed in elkaar en werkt gewoon erg goed.

Ik denk echter wel dat klanten een stuk pessimistischer zullen zijn wat betreft JEE5 en innovatie überhaupt. Wanneer de klant eenmaal iets gewent is wil deze vaak niet overstappen om de simpele reden, dit werkt toch ook prima. Vanochtend nog kwam er een opdracht binnen waarin stond dat de applicatie op TomCat 3.2 diende te draaien. Zo zie je maar weer.

It's scientifically known, that base improves the tase of cheezes!


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op vrijdag 05 mei 2006 @ 22:26:
[...]
In het geval van deze JSR is het zeker niet alleen Sun.
Het is zover ik weet nooit Sun alleen. Er zitten altijd grote partijen bij zoals Bea, Borland, IBM etc.
Ook organisaties als bijvoorbeeld Apache of Google hebben aardig wat in de melk te brokkelen. Je zou kunnen zeggen dat democratie niet werkt in het geval van Java EE en dat er een monopolist achter moet zitten om een product te maken en die als de facto standaard neer te zetten.
Ze zetten wel een standaard neer, maar ik heb alleen vragen over de kwaliteit van die standaard. Niet alle keuzes zijn volgens mij het beste voor developers. Sommige keuzes worden volgens mij eerder gemaakt om grote tool leveranciers tevreden te houden.
In het geval van Java EE 5 zijn er heel veel partijen die er belang bij hebben, en die willen allemaal dat hun wensen in de spec komen. Het zelfde geldt voor open source projecten die te veel contributies van verschillende developpers toe staan. Die worden ook bloated en log.
Yep. En bij Bloated moet je een prijs betalen voor iets dat je niet gebruikt. En als ik nou het gevoel had dat ik later nog iets met die ongebruikte functionaliteit ging doen, dan had ik het er nog wel voor over.
Aan de andere kant kun je je afvragen of democratie en openheid je die prijs waard is. Voor somiggen is dat zo en voor somiggen niet. Er zijn mensen die bloat gewoon kunnen negeren. Of iets nu 10 of 200Mb op mijn server inneemt kan mij persoonlijk weinig schelen als ik er een gigabit verbinding naar toe heb en er 16GB geheugen + 500GB disks inzitten. Dat er 2048 packges in een product zitten terwijl ik maar van 4 classes consume, tsja... zolang die 4 classes doen wat ik wil zal ik er niet van wakker liggen.
Je begrijpt me verkeerd. Bloated zit hem niet zozeer in de omvang van de files maar in de complexiteit.
Natuurlijk zijn er nog wel wat punten van kritiek, maar hey, was Spring ---perfect--- in de allereerste versie die als release werd gekenmerkt?
Spring was niet perfect, maar concepten erachter waren goed. Verder is Spring erg 'licht'. Je hoeft niet de prijs voor iets te betalen als je het niet gebruikt en als je complexiteit nodig bent kan je het net zo complex maken als je wilt. Het is volledig toegankelijk en volledig aanpasbaar. Als ik bv niet van de transactie functionaliteit van Spring gebruik wil maken, kan ik zo mijn eigen functionaliteit erin zetten. Spring geeft ruimte en basis tools om snel aan de slag te kunnen, maar als jij iets anders wilt kan dit zonder probleem. Daarom ben ik zo gek op Spring: heeft geeft mij ruimte, geeft me geen beperkingen en geeft me ook tools waarmee ik snel uit de voeten kan.

[ Voor 3% gewijzigd door Alarmnummer op 10-05-2006 11:57 ]


Verwijderd

Alarmnummer schreef op woensdag 10 mei 2006 @ 11:53:
[...]
Het is zover ik weet nooit Sun alleen. Er zitten altijd grote partijen bij zoals Bea, Borland, IBM etc.
Dus dan is het eigenlijk ook niet alleen de 'schuld' van Sun.
Yep. En bij Bloated moet je een prijs betalen voor iets dat je niet gebruikt.
Hangt er helemaal van af of er redelijke defaults zijn. Zoals het dikwijls geciteerde statement gaat: "Make the common case easy and the uncommon case possible".

Om een overgesimplificeerd voorbeeld te geven: Stel ik heb een goede oude class met 2 ctors: eentje default die het object in een state opbouwt die voor 80% van de gebruikers acceptabel is, en eentje met 10 parameters waarbij ik hele constructie process kan tunen zoals ik wil. Zolang die default ctor er is, -hoef- ik niet te kijken naar die andere. Ik zeg gewoon new SuperObject(); en klaar is Henk. Dat er -ook- nog een super duper andere ctor is, en dat de class stiekum op de achtergrond >2500 regels is, daar heb ik opzich geen last van.

Wanneer defaults missen, dan wordt het idd een kwalijke zaak.

Een goed voorbeeld is mischien de IO library van Java. Heel erg mooi hoe je input streams kunt chainen en (char) decoders compleet generic kunt toevoegen. Echter als je gewoon een filetje in een string wilt hebben, dan MOET je tenminste een paar keer chainen, wat loopen en een decoder gebruiken. Niet moeilijk, wel lastig. een static String fileToString( String fileName ) in File zou de common case bedienen dat tig % van de mensen gewoon een klein ASCII filetje naar een string wil hebben.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op woensdag 10 mei 2006 @ 21:25:
[...]
Dus dan is het eigenlijk ook niet alleen de 'schuld' van Sun.
Ik ben niet op zoek naar schuldigen. Ik ben alleen op zoek naar technieken die ik eenvoudig in kan zetten, die niet gigantisch veel invloed op het design hebben (als het kan en nodig is.. en meestal is het wel zo prettig) en waarover ik eenvoudig uitspraken kan doen.
Hangt er helemaal van af of er redelijke defaults zijn. Zoals het dikwijls geciteerde statement gaat: "Make the common case easy and the uncommon case possible".
Complexiteit zit hem niet alleen in configuratie. Je moet ook weten hoe systemen aan elkaar gekoppeld zijn en hoe meer het een monolyth gaat worden, hoe lastiger het is om erover te redeneren. De tools die ik op dit moment gebruik integreren goed met elkaar (vooral doordat Spring veel lijm code levert) maar ik kan het heel eenvoudig vervangen door iets anders.

  • TukkerTweaker
  • Registratie: November 2001
  • Laatst online: 26-11 15:31
Alarmnummer schreef op vrijdag 05 mei 2006 @ 09:27:
[edit2]
Verder heeft JSF uiteraard wel goeie features, maar je moet niet vergeten dat er ook veel andere pagebased/component based frameworks zijn: Tapestry, Wicket, Click en nog wel een paar. Ik zou wel eens mensen willen horen die bv met JSF en met Wicket of Tapestry hebben gewerkt en wat ze het meest prettige vinden werken.
Ben een wicket gebruiker, welke voordelen zou de overstap naar JSF mij opleveren buiten dat het de officiële SUN spec is. ? Ik heb me nog niet echt verdiept in JSF maar het komt mij in eerste instantie vrij complex over, veel xml configuratie, functies die je voor een lichte webapp niet gebuikt, etc. In wicket heb je vrij snel iets leuks neergezet, maar de library heeft ook nadelen; gebrek aan goede documentatie, snelle veranderingen in releases waardoor je je applicatie weer kunt aanpassen en zo zijn er nog wel wat dingen.

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

Wicket ken ik niet, wel kan ik je vertellen dat JSF niet bedoeld is om eenvoudig te zijn. JSF is een component georiënteerd web framework, welke te vergelijken valt met de ontwikkelmethodiek zoals deze voorkomt in bijvoorbeeld de Delphi, Swing en Visual Basic wereld. Deze benadering maakt het gemakkelijker om rich websites te ontwikkelen. Bovendien wordt de ontwikkeltijd van complexe webapplicaties hierdoor sterk gereduceerd.
JSF bevat een gedeeltelijke implementatie van het MVC patroon. Dit heeft, net als bij STRUTS, als voordeel dat de ontwikkelaar zich bezig kan houden met het implementeren van de applicatielogica en geen moeite hoeft te doen om het patroon te implementeren. Hierdoor blijft de code eenduidiger en schoner, maar bovenal kan hierdoor sneller ontwikkeld worden.

[ Voor 34% gewijzigd door dip op 11-05-2006 12:30 ]

It's scientifically known, that base improves the tase of cheezes!


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

dip schreef op donderdag 11 mei 2006 @ 12:28:
Wicket ken ik niet, wel kan ik je vertellen dat JSF niet bedoeld is om eenvoudig te zijn. JSF is een component georiënteerd web framework, welke te vergelijken valt met de ontwikkelmethodiek zoals deze voorkomt in bijvoorbeeld de Delphi, Swing en Visual Basic wereld.
Dat geld nog meer voor Wicket. Een van de ontwerpers van Swing is de oorspronkelijke maker van Wicket.
Deze benadering maakt het gemakkelijker om rich websites te ontwikkelen. Bovendien wordt de ontwikkeltijd van complexe webapplicaties hierdoor sterk gereduceerd.
En bij Wicket is dit nog meer het geval omdat er gewoon minder crap bij zit. Minder configuratie files, minder geouwehoer met XML.
JSF bevat een gedeeltelijke implementatie van het MVC patroon. Dit heeft, net als bij STRUTS, als voordeel dat de ontwikkelaar zich bezig kan houden met het implementeren van de applicatielogica en geen moeite hoeft te doen om het patroon te implementeren.
Struts is imho een k*t webfamework. Het werkt slecht ontwerpen in de hand en verder zie je maar al te vaak dat alle applicatielogica in de struts componenten zelf zit ipv dat de model layer (de business layer) volledig gescheiden van de presentation layer. Bij Struts is de model layer vaak geintegreerd met de presentation layer.
Hierdoor blijft de code eenduidiger en schoner, maar bovenal kan hierdoor sneller ontwikkeld worden.
Er is een reden dat Struts eruit gaat en dat is niet omdat die andere frameworks nou zo geweldig zijn (eerder omdat Struts zo slecht is).

[ Voor 6% gewijzigd door Alarmnummer op 11-05-2006 13:02 ]


  • TukkerTweaker
  • Registratie: November 2001
  • Laatst online: 26-11 15:31
Alarmnummer schreef op donderdag 11 mei 2006 @ 13:00:
En bij Wicket is dit nog meer het geval omdat er gewoon minder crap bij zit. Minder configuratie files, minder geouwehoer met XML.
Kan ik hieruit opmaken dat een mogelijke overstap niet direct voordeel oplevert?
Wat gebruiken jullie momenteel voor de presentation layer?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

TukkerTweaker schreef op donderdag 11 mei 2006 @ 13:21:
[...]
Kan ik hieruit opmaken dat een mogelijke overstap niet direct voordeel oplevert?
Wat gebruiken jullie momenteel voor de presentation layer?
Spring-MVC (meeste kennis zit hier: Alef Arendsen zit bij ons op kantoor en is een van de makers er van). Verder zijn we wel rond aan het kijken naar andere webframeworks, maar aangezien we applicaties maken die een hoge load aan moeten kunnen (veel bekende sites zoals ilse) kunnen we niet met een framework in zee gaan dat erg afhankelijk is van sessies. Aangezien sessies een applicatie veel minder goed schaalbaar maken. Maar we zijn aan het rondkijken (sommige mensen zijn aan het experimenteren met andere frameworks zoals Wicket/JSF/Tapestry).

[edit]
Boeken die mensen bij ons op kantoor (interface21) hebben geschreven zijn:
Expert Spring MVC and Web Flow (Expert)
Professional Java Development with the Spring Framework

Dus er is hier veel kennis over deze frameworks.

[ Voor 24% gewijzigd door Alarmnummer op 11-05-2006 13:34 ]


  • TukkerTweaker
  • Registratie: November 2001
  • Laatst online: 26-11 15:31
Alarmnummer schreef op donderdag 11 mei 2006 @ 13:29:
[...]

Spring-MVC (meeste kennis zit hier: Alef Arendsen zit bij ons op kantoor en is een van de makers er van). Verder zijn we wel rond aan het kijken naar andere webframeworks, maar aangezien we applicaties maken die een hoge load aan moeten kunnen (veel bekende sites zoals ilse) kunnen we niet met een framework in zee gaan dat erg afhankelijk is van sessies. Aangezien sessies een applicatie veel minder goed schaalbaar maken. Maar we zijn aan het rondkijken (sommige mensen zijn aan het experimenteren met andere frameworks zoals Wicket/JSF/Tapestry).
Gebruik ook Spring MVC voor enkele projecten maar ben naar Wicket gelokt o.a. door de mooie AJAX integratie in de nieuwste release. Dat werkt bovenverwachting goed.
Heb deze op de plankt liggen. Geef mijn complimenten maar door, goede pragmatische aanpak, hou ik wel van.

  • CubicQ
  • Registratie: September 1999
  • Laatst online: 17:29
Alarmnummer schreef op donderdag 11 mei 2006 @ 13:29:
[...] maar aangezien we applicaties maken die een hoge load aan moeten kunnen (veel bekende sites zoals ilse) kunnen we niet met een framework in zee gaan dat erg afhankelijk is van sessies. Aangezien sessies een applicatie veel minder goed schaalbaar maken.
De meeste (ok, ik wou zeggen: alle, maar dat zal vast niet zo zijn) loadbalancers kunnen gewoon stateful loadbalancen, dus ik snap het probleem niet zo eigenlijk.

Verwijderd

Alarmnummer schreef op donderdag 11 mei 2006 @ 13:29:
[...]
Spring-MVC (meeste kennis zit hier: Alef Arendsen zit bij ons op kantoor en is een van de makers er van). Verder zijn we wel rond aan het kijken naar andere webframeworks, maar aangezien we applicaties maken die een hoge load aan moeten kunnen (veel bekende sites zoals ilse) kunnen we niet met een framework in zee gaan dat erg afhankelijk is van sessies.
Je kunt in JSF geheel sessie onafhankelijk werken als je dit wilt. Ten eerste kun je kiezen of je de view state op de server of in de client wilt opslaan. Doe je het server-side dan wordt het in de sessie opgeslagen en via een enkele meegezonden ID weer restored. Doe je het echter client-side dan wordt de hele tree base64 encoded & encrypted in de page opgeslagen. (let op! encryptie zit niet de preview)

Het zelfde geldt voor je managed beans. Je kunt per bean aangeven of de scope application, session, page of request moet zijn (de standaard Java EE scopes dus).

Toch zijn er nog wel wat pitfalls.

Voor iets wat essentieel voornamelijk een componenten framework is, komt de Reference Implementation met een hele zielige en kleine set toy components, die er ook nog eens schraal uitzien en bedroefend weinig features hebben. Feitelijk zijn het gewoon wat simpele wrappers voor wat basis HTML constructies en that's it. Helaas zijn de componenten uiteindelijk wel het eerste wat je direct ziet van JSF, en veel mensen schilderen JSF waarschijnlijk af aan de hand van de voorbeeld componenten.

Behalve dat ze er schraal uitzien zitten er ook aardig wat pitfalls in deze componenten. Zo heb je een datatable. Als je een click op een rij maakt dan wordt alleen het NUMMER van de rij in essentie teruggegeven. Is je data server side veranderd (bv omdat je in een andere tab de lijst sorteerde als ie uit de sessie kwam, of als de data veranderd is als je de lijst real-time opbouwt), dan gaat jouw code lekker op verkeerde data werken. Dom dom dom. |:(

Kwa bean scope is session meestal te ruim (+ problemen met meerdere windows) en is page/request scope te beperkt (bv ingevoerde data ben je kwijt als je naar een page linked die deze data alleen laat zien en je daarna vanaf die page weer terug gaat).

Gelukkig heb je third-party component libs die al deze problemen grotendeels oplossen. Als je bijvoorbeeld naar MyFaces kijkt dan biedt die met Thomahawk bijvoorbeeld een datatable waarbij je gewoon een snapshot van de list in je page kunt serializen en/of een method binding kunt maken naar een bean die een key levert voor de click op een rij (zodat je de rij altijd server side uniek kunt bepalen).

Kwa scoping biedt MyFaces ook een super handig component wat practisch een scope toevoegd aan JSF: de Page flow scope. Je kunt hiermee enkele attributen of een complete bean storen in de page. Als er vanaf die page een actie wordt ondernomen wordt de bean ge-restored van de data die in de page was opgeslagen.

Het zou nog net even mooier zijn als de pageflow scope gewoon direct bij de managed bean declaratie gezet kon worden, maar dit lost het scoping probleem al voor 99% op. (zie savestate tag in thomahawk).

Voorderest is er nog de zeer strakke component set van Oracle (ADF) die zelfs donated is aan Apache. Dit geeft voor mij meteen 1 van de voordelen van JSF aan: alles en iedereen is aan het bouwen en extenden op JSF. Bij andere projecten zie je dit toch minder gebeuren. Het feit dat JSF zich zo makkelijk laat extenden en het feit dat het een standaard is heeft hier zeer zeker mee te maken.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

CubicQ schreef op donderdag 11 mei 2006 @ 20:51:
[...]
De meeste (ok, ik wou zeggen: alle, maar dat zal vast niet zo zijn) loadbalancers kunnen gewoon stateful loadbalancen, dus ik snap het probleem niet zo eigenlijk.
En wat gebeurt er als er een machine uitvalt (en de sessies dus ook): gebruikers zullen hun werk kwijt zijn en dat is niet altijd acceptabel. Daarom moeten sessies gerepliceerd worden over alle machines in een cluster en dat levert performance problemen op. Uiteraard zou dit eventueel iets verlicht kunnen worden door een dedicated netwerk aan te leggen voor replicatie, maar helaas is dat niet vaak het geval.

Volledige stateless servers zijn gewoon veel eenvoudiger om door te schalen dan statefull servers.

[ Voor 17% gewijzigd door Alarmnummer op 12-05-2006 09:02 ]


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Alarmnummer schreef op vrijdag 12 mei 2006 @ 08:59:
[...]

En wat gebeurt er als er een machine uitvalt (en de sessies dus ook). Daarom moeten sessies gerepliceerd worden over alle machines in een cluster en dat levert performance problemen op. Uiteraard zou dit eventueel iets verlicht kunnen worden door een dedicated netwerk aan te leggen voor replicatie, maar helaas is dat niet vaak het geval.

Volledige stateless servers zijn gewoon veel eenvoudiger om door te schalen dan statefull servers.
Is dat niet gewoon de prijs die je betaalt voor de goede dingen die JSF biedt? Ik beweer niet dat JSF voor alles geschikt is, maar het heeft zeker zijn kwaliteiten.

Volgens mij beweert Sun dat ook niet trouwens.

Fat Pizza's pizza, they are big and they are cheezy


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

JKVA schreef op vrijdag 12 mei 2006 @ 09:03:
[...]
Is dat niet gewoon de prijs die je betaalt voor de goede dingen die JSF biedt?
Tja. Leg dat maar aan de klant uit.

Verder vind ik het bouwen van webpagina`s en de hele weblayer niet bijster leuk om te doen. Ik blijf liever aan de achterkant van het systeem.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Dat hoeft niet veel moeite te kosten naar mijn idee. Sommige dingen zijn nou eenmaal beter geschikt voor het ene en minder voor het andere. Dat valt wel uit te leggen aan een klant, eventueel met behulp van een vergelijking met iets uit het dagelijks leven, auto's ofzo.

Maar goed, dit is geen discussie over of JSF iets waard is...

Ik heb JSF 1.2 nog niet getest, dus weet niet of alle beloftes waar zijn. Wel merk ik dat ze met elke versie goed opschieten.

Vanmorgen MyFaces 1.1.3 geprobeerd en die is ook weer iets stabieler dan de vorige en wat vriendelijker voor de developer.

Fat Pizza's pizza, they are big and they are cheezy


  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Wat ik me dan afvraag; is de bloat in JSF -echt- of is ie alleen -perceived-? Het is makkelijk om te roepen dat iets log of bloated is, maar tot zover heb ik aardig wat concreet leuke dingen van JSF gehoord in deze thread, maar weinig concreet slechte dingen.

Waarin zit die veronderstelde bloat dan precies? Kan iemand me die eens heel duidelijk aanwijzen?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Voor de ontwikkelaar vind ik het in de huidige status niet bijster ontwikkelaar-friendly. Dat is vooral een keuze waar nu de gevolgen van blijken, namelijk alles runtime oplossen. Op dat gebied vind ik Tapestry (voor zover ik het ken) fijner. Duidelijke meldingen @design-time en niet @runtime waar je na een kwartier opstarttijd van je webserver achterkomt. (licht overdreven, maar je begrijpt mijn punt) Of nog erger, je komt er pas achter als je een bepaalde pagina een paar keer refresht, waardoor JSF gaat mauwen over duplicate ID's.

Ook vind ik het niet zo heel leuk dat mijn favoriete view handler (Facelets) nog in bijna geen component libraries ondersteund wordt, zoals Tomahawk. Je moet dan zelf een dummy taglib en een paar custom tags gaan schrijven om het weer werkend te krijgen. Je zou zeggen dat dat dan pech is voor Facelets en dat het niks zegt over JSF, maar het feit dat het niet werkt, komt juist door keuzes in de JSF spec.

Daarnaast hebben ze naar mijn idee dom gedaan door JSP te 'misbruiken'. Ik begrijp dat ze zo denken meer JSP-ers aan het JSF-en te krijgen, maar naar mijn idee wordt het tegendeel werkelijkheid, namelijk dat door de waardeloze integratie van deze twee verschillende technieken JSF niet goed uit de verf komt.

Persoonlijk zou ik als Sun zijnde ervoor gekozen hebben om JSP in de JEE spec te laten, maar voor JSF met een nieuwe koers verder te gaan. JSP-ers kunnen lekker op hun eigen manier verder werken (evt. met Struts ofzo) en JSF-ers lopen niet steeds tegen integratieproblemen aan. Bovendien kunnen JSF-ers zonder JSP meer uit JSF halen naar mijn idee.

Verder weet ik niet precies in hoeverre JSF 1.2 deze problemen allemaal oplost... Ik hoop dat dat met die view-handlers snel opgelost wordt, zodat je gewoon alle libraries gemakkelijk in Facelets kunt gebruiken. Bovendien mag Facelets in de volgende JSF spec. :P

Nog een laatste puntje over het bloated zijn: Ik denk dat dat voor een groot deel te maken heeft met het feit dat het een project van Sun is en niet van de Open Source wereld welke vaak sceptisch reageren op Sun projecten.

Fat Pizza's pizza, they are big and they are cheezy


  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
JSF is denk ik een goed voorbeeld van waarom men zo sceptisch denkt over "standaarden" die door Sun/JCP bedacht worden.

Standaarden werken op het gebied van infrastructuur, waarbij een hele duidelijke (kleine) scope is gesteld, en waarbij de wensen/eisen over tijd ook redelijk stabiel zijn. Denk bijvoorbeeld aan JNDI, JDBC, Servlets, JMS, enz. Deze standaarden zijn ook niet volledig of perfect, maar iedereen gebruikt ze wel en is doordrongen van het nut ervan.

De "hogere" standaarden, zoals EJB, JSP, Portlets en JSF zijn altijd een stuk controversiëler geweest. Deze standaarden missen veel belangrijke onderdelen (zo mist EJB3 een Criteria API) of zijn de standaard oplossingen verkeerd of ontoereikend in de praktijk. Dat heeft te maken met de "vlees noch vis" oplossingen die voor dergelijke brede standaarden gekozen moeten worden: je kunt niet zo makkelijk iets opnemen omdat je daarmee afdwingt dat iedereen het er mee eens is en iedereen het implementeert. Hoe groter de standaard, hoe lager de acceptatie bij vendors, waardoor de standaard specs in de praktijk te klein uitvallen. Zeker in de hogere standaarden levert dit veel pijnpunten op in de praktijk.

Zijn die hogere standaarden daarom slecht? Ik denk van niet. Standaarden verhogen uitwisselbaarheid. De heilige graal was altijd vendor-onafhankelijkheid: je dropt een EAR in IBM of JBoss, maakt allemaal niet uit. Dat is natuurlijk nooit helemaal waar geweest, maar het roept wel een hoop frustratie op bij mensen die alles "puur" volgens de standaarden willen doen. Dat is echter imho ook een houding probleem: als je bijvoorbeeld geen Spring/Struts wilt gebruiken omdat het geen standaard is dan moet je ook niet klagen als het niet met een Servlet lukt.

Voor mij is een belangrijk voordeel de uitwisselbaarheid van kennis. Of je nu met MyFaces of ADF werkt je kunt gebruik maken van dezelfde JSF kennis. Dat maakt mijn investering in JSF kennis waardevoller, en voor de werkgever is er minder risico omdat er meer mensen iets van JSF weten (ondanks dat ze allemaal met andere implementaties werken).

Framework bouwers (als MyFaces/ADF) maken op hun beurt weer gebruik van het JSF framework als infrastructuur, en voegen toe wat JSF niet bracht. De frameworks zijn onderling weer uitwisselbaar. Dit is imho ook een groot voordeel van EJB3: je zit niet meer vast aan één EJB framework (die van je appserver), maar je kunt zelf mixen en matchen.

Is Java EE 5 een verbetering? Ja! Zorgt Java EE 5 ervoor dat ik over twee jaar (als er daadwerkelijk appservers voor zijn en corporate development het heeft opgepakt) geen Spring of MyFaces meer nodig heb? Nee! Zolang dat maar beseft wordt zijn standaarden zeker waardevol, ondanks dat ze nooit voldoende zullen zijn voor alle problemen in de praktijk.

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
misfire schreef op zondag 14 mei 2006 @ 14:14:
Hoe groter de standaard, hoe lager de acceptatie bij vendors, waardoor de standaard specs in de praktijk te klein uitvallen.
In tegenstelling tot wat de andere zeggen dat er te veel in Java EE zou zitten (bloated) zeg jij dus eigenlijk dat er te weinig inzit. Precies het tegenovergestelde eigenlijk dus.
Voor mij is een belangrijk voordeel de uitwisselbaarheid van kennis. Of je nu met MyFaces of ADF werkt je kunt gebruik maken van dezelfde JSF kennis. Dat maakt mijn investering in JSF kennis waardevoller, en voor de werkgever is er minder risico omdat er meer mensen iets van JSF weten (ondanks dat ze allemaal met andere implementaties werken).
Super goed punt. Ik heb dit van beide kanten meegemaakt. Toen ik naar een baan op zoek was, was het in het MS kamp erg makkelijk. De meeste vacatures vroegen simpelweg om "ervaring met .NET". In het Java kamp was er bij elke vacature wel weer iets anders wat gevraagt werd, en altijd was er wel weer precies een techniek die ik weer net niet kende. Als er alleen zou staan: Java EE kennis, dan is dat veel makkelijker.

Andersom zitten we nu bij het bedrijf waar ik werk met precies hetzelfde, ook wij gebruiken een greep uit wat Java frameworks, maar zie maar eens de kandidaat te vinden die precies onze specificieke combo beheerst. Het is dus een probleem aan beide kanten.


Framework bouwers (als MyFaces/ADF) maken op hun beurt weer gebruik van het JSF framework als infrastructuur, en voegen toe wat JSF niet bracht. De frameworks zijn onderling weer uitwisselbaar. Dit is imho ook een groot voordeel van EJB3: je zit niet meer vast aan één EJB framework (die van je appserver), maar je kunt zelf mixen en matchen.
Is Java EE 5 een verbetering? Ja! Zorgt Java EE 5 ervoor dat ik over twee jaar (als er daadwerkelijk appservers voor zijn en corporate development het heeft opgepakt) geen Spring of MyFaces meer nodig heb?
Dit klinkt zo een beetje onduidelijk. Behalve dat MyFaces wat uitbreidingen biedt (tomahawk) IS Myfaces zelf gewoon een JSF implementatie, net zoals dat Tomcat een JSP/Servlet implementatie is.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
flowerp schreef op zondag 14 mei 2006 @ 23:08:
In tegenstelling tot wat de andere zeggen dat er te veel in Java EE zou zitten (bloated) zeg jij dus eigenlijk dat er te weinig inzit. Precies het tegenovergestelde eigenlijk dus.
De emotie is dat de "hogere" standaarden "bloat" zijn omdat ze niet helemaal doen wat ze beloven en dus beter helemaal weg kunnen worden gelaten omdat je toch altijd wat anders nodig hebt. Dat je altijd meer nodig hebt dan een standaard vind ik echter niet helemaal onlogisch (wel jammer af en toe) en maakt de standaard ook niet meteen waardeloos.

Bloat is ook een relatief begrip. Iedereen zit nu bijvoorbeeld te roepen over EJB3 dat het nu ineens makkelijk is. In feite is echter de boilerplate gewoon een beetje verstopt achter wat annotations en compile/run-time voodoo magie. Alle EJB 2.1 regels gelden nog net zo hard in EJB3, het is alleen wat minder in-your-face. Conceptueel is alleen maar ingewikkelder: nog meer toeters en bellen en taalmechanismen die je moet hanteren. Begrijp me niet verkeerd, ik vind EJB3 ook wel handiger en leuker om te zien, maar ik had het bijvoorbeeld sjiek gevonden als EJB 2.1 compatibiliteit uit de Java EE 5 spec was gedonderd en de EJB spelregels ook flink waren versimpeld. Lelijke remote interfaces of hannessen met XDoclets waren zeker niet de enige redenen waarom EJBs in het verleden voor zoveel problemen konden zorgen...

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

misfire schreef op maandag 15 mei 2006 @ 19:56:
[...]
Begrijp me niet verkeerd, ik vind EJB3 ook wel handiger en leuker om te zien, maar ik had het bijvoorbeeld sjiek gevonden als EJB 2.1 compatibiliteit uit de Java EE 5 spec was gedonderd en de EJB spelregels ook flink waren versimpeld. Lelijke remote interfaces of hannessen met XDoclets waren zeker niet de enige redenen waarom EJBs in het verleden voor zoveel problemen konden zorgen...
Prachtig verwoord. :) Zo denk ik precies ook over JSF en JSP's. :P Laat ze daar bij Sun gewoon eens een dikke (eventueel futuristische en totaal niet backwards compatible) standaard neerzetten om te concurreren met .NET.

Juist door al die oude technieken te vriend te willen houden, zetten ze zichzelf zo ontzettend buitenspel. Nog verder buitenspel dan achter de goal van de tegenstander gaan staan. :+

Fat Pizza's pizza, they are big and they are cheezy


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

JKVA schreef op maandag 15 mei 2006 @ 22:04:
[...]


Prachtig verwoord. :) Zo denk ik precies ook over JSF en JSP's. :P Laat ze daar bij Sun gewoon eens een dikke (eventueel futuristische en totaal niet backwards compatible) standaard neerzetten om te concurreren met .NET.

Juist door al die oude technieken te vriend te willen houden, zetten ze zichzelf zo ontzettend buitenspel. Nog verder buitenspel dan achter de goal van de tegenstander gaan staan. :+
Dat is dan geen buitenspel meer :P

Maar je hebt ergens wel gelijk; je kan dan 2 grote reacties krijgen.
Ofwel gaat 'de business' hiermee akkoord (kan alleen maar in een goede conjunctuur) en krijgen we allemaal meer werk om bestaande systemen te migreren naar het nieuwe model. Ofwel schakelt Java zichzelf hiermee uit in de grote markt en snijdt ongelooflijk in haar eigen vingers door dit toe te passen. Ik denk niet dat het zo simpel is, er moet altijd een mogelijkheid bestaan om iets in- dan wel uit te faseren.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik zeg ook niet dat ze de oude zaken meteen uit de J2EE spec moeten halen, ondersteuning stopgezet moet worden en iedereen per direct over moet stappen op JSF.

Wat ik wel wil zeggen is dat Sun de ontwikkeling en acceptatie van JSF geen goed doet door te proberen van twee walletjes te eten.

Bovendien is het migreren van STRUTS naar JSF niet gemakkelijker wanneer voor JSP wordt gekozen i.p.v. Facelets is mijn ervaring. Het komt er uiteindelijk toch op neer dat alle views (voor een deel) omgegooid moeten worden.

Naar mijn idee moeten ze bij Sun de spec zo opstellen dat JSP-ers nog goed door kunnen werken. De open source wereld bedient ze dan wel verder met frameworks en tools. Sterker nog, die zijn er al en die zijn allang gevonden door je JSP-ers.
Aan de andere kant zou ik als Sun zijnde proberen JSF zo snel mogelijk een zeer dik framework te maken. Dit is echter volgens mij alleen maar mogelijk door het overboord gooien van enkele oude technieken, zoals JSP's.

Het zal alleen wel moeilijk zijn als ik kijk wie er allemaal inspraak hebben op de specificatie. Oracle, IBM, Borland, Bea, Sun zelf, 6000 personen die ooit aan een framework meegewerkt hebben... Dat maakt de besluitvorming wel lastiger en trager. Volgens mij heeft ons bedrijf als Sun partner zijnde zelfs inspraak...

offtopic:
Mijn scheidsrechterscursus heeft daar nooit iets over gezegd voor zover ik me kan herinneren. :P

Fat Pizza's pizza, they are big and they are cheezy

Pagina: 1