J2EE alatt én EJB-s dolgokat értek, bocsánat, ez így pontos. Az EJB 3.0 már az annotációkkal elég kényelmes, de pl. fejlesztettem 2.1-es EJB alatt projektet, ahol volt egy óriási konfigurációs XML (az architekteknek nem volt annyi esze hogy összerakassák buildkor darabokból) és a 30 fejlesztő mind azt basztatta. Folyton emiatt kellett debugolni. A gépek se voltak elég erősek önálló instance-ok futtatására... El lehet képzelni...
Én arra válaszoltam, hogy 5M alatt nincs ilyen projekt, amivel egyetértek. Sőt igazából 50M alatti projektnél is lebeszélném az ügyfelet. Mert a bonyolult technológia sok buktatót jelent, akár maintenance akár performance téren. Tisztességes szállító ezeket lepróbálja (pilot) mielőtt konkrét architektúrát választ. Normális architektet is nehezen kapsz havi 1M költség (nem nettó fizetés!) alatt. Három hónapnál rövidebb projektet nem csinálunk EJB-vel, ez már mindjárt 3M.
EJB-t oda választanak ahol nagy rendelkezésreállású rendszert akarnak, sok és sokféle tranzakcióval. Load balancer, cluster, etc. Itt a futtató hardverek is szokták verni a milliókat, különben nem érdemes. Szerinted ezt a környezetet triviális összerakni? Neki lehet menni mint vak boci az anyjának, neki is szoktak, de szerintem nem érdemes...
Licenszárakról csak azért nem beszélek, mert full open source alapon is össze lehet rakni EJB-s környezetet, bár bankokban nem ez a tipikus.
Persze találhatsz olyan projektet ahol a full-alap-konfigok is jók lesznek a végén, és mondjuk kijössz az 1-2M-s költségvetésedből pozitívra, de ugyanezt PHP-val egy esős délután összerakod. A user meg azért fog utálni mert sokkal nyűgösebb lesz bármi változtatás, meg bonyolultabb az üzemeltetés.
Persze akinek fent van a gépén az EE-s Eclipse, annak a "New EJB Project" az 2mp, ez igaz.
A Java semmivel nem nyakatekertebb mint a PHP, maximum a PHP-hoz szokottnak szokatlan. A rengeteg kényelmi szolgáltatást nyújtó mindenféle APIk meg libek meg mindenféle gyönyörű bugokat, inkompatibilitásokat tartalmaznak, amikkel akkor is szophatsz, ha se specifikációs, se algoritmikus hiba nincs a kódodban. És amikor azt hiszed, hogy mindent kivasaltál és elindítod az éles alkalmazásodat, akkor jönnek a userek és összedöntik egy félóra alatt, és akkor ismerkedhetsz a garbage collection rejtelmeivel, meg a különböző JVM bugokkal. Az adatbázisban addig fel-nem-fedezett lockolási szívásokról nem is beszélve.
Én maradnék annál amit mondtam: tomcat-spring-hibernate-struts2.
Ebben is van éppen elég marketing buzzword... :)
Ez egy sokmilliós tanács, és most ingyen kapod :P
--
Gabriel Akos