Ahhoz, hogy megértsük, mi történik a Java-val, kicsit távolabbról kell vizsgálni a kérdést. Hogy mi folyik most a programnyelvek világában, érdekes, és régóta várt esemény; két vonulat kezdett közeledni egymáshoz:
- a hardver felől építkező, imperatív (proceduláris, majd egyre magasabb szintű objektumorientált) nyelvek
- a formális logikai, matematikai megfogalmazáson alapuló, főleg funkcionális nyelvek
Ennek oka egyszerű (vigyázat, demagóg állítás jön): a mai gyors processzorok végre emberi időben tudnak futtatni LISP kódot (Scalá-t, Haskellt, helyettesíts be amit akarsz).
Közben a funkcionális nyelvek alkalmassá váltak nagy szoftverek megalkotására (Hevinek tökéletesen igaza van, az enterpriseban nagy szükség van a statikus típusbiztosságra, néhány távolkeleti nagybank már boldogan Haskellezik emiatt). Viszont ezek a nyelvek hoztak magukkal egy könnyen olvasható és karbantartható kódolási stílust (is), amit aztán a nagy öregek próbálnak kisebb-nagyobb sikerrel implementálni.
Érdemes ránézni a C++11, 14, 17-re. Vagy inkább nem. Én több év C++-ozás ellenére nem is nagyon tudom értelmezni az új kódokat, de ránézésre legalábbis hányingert keltő. Mindenesetre megjelentek a lambdák, funkcionális interfészek, még akár a lazyness is, mitöbb, Milewski úr még monádokat is vár a 17-es szabványba.
És elérkeztünk a Javához. Véleményem szerint ők _JÓL_ implementálták a más nyelvekből tanult funkcionális elemeket, olvasható maradt a kód, és szépen kivitelezték a teljes collection API megduplázását (hogy aztán streamekkel is működjön minden). Mi több, ez utóbbi kifejezetten jó húzás volt, mert lazy evalt behozták úgy a nyelvbe, hogy a plain-old-java-collection-jeink nem szenvedték kárát.
Szerintem a kérdés egyértelműen az, hogy most egy nyelv alkalmazza-e a másik "táborból" vehető tapasztalatokat, és ha igen, milyen módon teszi (könnyű érthetőség, szép szintaktika, stb.) A Java úgy tűnik jó irányban halad (nem marad le), mert amellett, hogy egyértelműen nem a halála felé tart, közben nem is "totál átalakul"
Talán ez válasz a kérdésre.