Szerver oldalra azért került, mert kevesebb teret enged a C/C++-ban gyakori hibáknak, és a fejlesztési időt is lerövidítette valamelyest. Szóval nem oda szánták, de egyrészt kiderült, hogy elég jól illik oda, másrészt a SUN alapvetően szerver vendor volt. Ezen kívül lassú volt a mint a dög és rengeteg erőforrást igényelt, és ez a szerver oldalon volt a legkevésbé szempont, ha C-vel kellett összehasonlítani. A probléma egyesek fejében az, hogy ez a régi állapot rögzült mint tévhit. Ma már nem hogy lassú, hanem elég gyors (C > Java > Lamp), és az erőforrás igénye már nem olyan durva, ha relatívan nézzük a mai programokhoz.
A kezdetek óta azért eltelt némi idő úgy. hogy talán a legnagyobb fejlesztői közösség állt a nyelv és a platform mögött.
Van egy remek standard library, amit csak annak ér szídni, aki a jobbat tud felmutatni máshol. Addig is szídjuk mi, akik dolgozunk vele (De csak addig, amíg valamiért nem kényszerülünk egyéb nyelveken dolgozni, akkor rögtön megszeretjük újra).
És ez csak a standard library, szóval lehet mondani hogy van Qt C++-ban, meg RoR, meg satöbbi, de akkor apache.org, google dolgai, vagy github-on lehet keresni. Aki nem talál neki tetsző library-t Java-ban az valószínűleg nem kereste eléggé.
Szeretjük szídni a mavent is, bár mostanában már csak az XML miatt utálom. Főleg mióta kénytelen voltam szembesülni python2 vs. python3, .rvm, cabal hell és hasonló rémségekkel. Itt megintcsak kíváncsi lennék ennél jobb package management és build megoldásra, máris nézném mint lehetséges alternatív nyelvet fun projektekhez.
Mi van még... natív crypto, javamail, async/sync io streamek, sql, logging, távoli menedzsment... ezek csak a sima JDK alap képességei, nem is a JavaEE. És nagyrészt mind használható, a legtöbb library nem ezek kiváltására van, hanem további funkciókra.
Ha nem csak a nyelvet nézzük, hanem a JVM platformot, akkor van Groovy, Scala, Clojure. Három teljes értékű nyelv a maguk saját standard library-kkel, amikből minden java dolog használható. A Scala csak magában egy meg nem kerülhető dolog lenne, többit nem annyira ismerem. Akka, ScalaJS, scalaz.
És akkor még BigData-val nem is foglalkoztam, nem ismerem, de ott van egy csomó dolog a Hadoop körül.
Volt elég sok dolgom PHP-vel, Pythonnal, Ruby-val, Javascripttel az utóbbi pár évben. Szeretek új dolgokat megismerni, hátha valami jobbat találok mint ami van. Haskell, Erlang megismerése nagyon hasznos volt, de az összképet nézve nem tudnék olyan környezetet mondani, amire megérné váltani a Java-ról. És akkor még a Scala-t hozzá sem adtam a dolgokhoz.
Hogy a JS miért került szerver oldalra, nem tudom. Érdekes nyelv. Inkább JS mint PHP vagy hmm.. talán mint Python, de nem összevethető a Java-val (szerver oldalon).