( kmARC | 2014. 11. 01., szo – 22:56 )

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.