V jave rád kodím, ale od Javy11 prostě nevidím nějaký zásadní a revoluční pokrok(a ani jej od javy prakticky neočekávám, co umí - umí většinou dobře a na to co se neumí se stejně nehodí). Všechny ty nové JSRka jsou pro mě jenom syntaxový cukr. Vypadá to, že Java se dostala do fáze "inovace pro inovace" i když jsou vlastně úplně k ničemu a o ničem, neboli vývojáři vyvíjí jen aby vyvíjely(tvz. měli práci) a jestli to k užitečnému bude "tak jen bůh ví".
Revoluce u používaného programovacího jazyka není dobrý nápad, protože tím přijdete o zpětnou kompatibilitu. To už je lepší vytvořit nový jazyk. Java jde cestou evoluce, a od 11 je tam spousta drobných změn, z nichž mnohé teda rozhodně nejsou syntaktický cukr (třeba lehká vlákna, ZGC, class-file API, Markdown v Javadocu). A i ten syntaktický cukr dává smysl (třeba type pattern matching, který se dostává do Javy postupně).
Ten zjednodušený zápis hlavní metody je jen taková hračka, rozhodně jsou v nových verzích Javy zajímavější a důležitější změny.
Tak to jsi asi slepý. Virtual Threads a vše kolem je zásadní a revoluční změna. FFMA, record, pattern matching, switch, GC, Class-File API. Ten jazyk je úplně jiný než Java 11. Kód v Java 21 vypadá jinak než s Java 11. Pak je tu Valhalla, Leyden a AOT. Ano je tam pár jasně syntax sugar věcí (kterých by klidně na můj vkus mohlo být více). Který jazyk toho za posledních 6 let přinesl tolik a zásadních změn a tak razantně se změnil, navíc bez velkých breaking changes?
Možná jo, možná ne. Třeba ty budeš asi děsně "cool" týpek, nebo idiot který z bezvýznamných funkci vlivem nízkého intelektu dělá "zásadní a revoluční změny".
např. všechno co jsi zde zveřejnil nedosahuje "zásadní změny a možností " jako např. přinesla genericita.
PS. to že kód vypadá jinak ale pořád dělá to samé neznamená vůbec nic. To že např.(volitelně) zrušily objektové deklarace proměnných a nahradily je "var" je sice hezké(např. pro javascriptery) ale zhoršily čitelnost/přehlednost/pochopitelnost OOP kódu .
I ty brepto. Psal jsi, že nic zásadního od Java 11 nepřišlo. Jestli podle tebe Virtual Threads nejsou zásadní, tak fakt nevím co by to podle tebe mělo být? To je přesně věc, která bez velké změny kódu dělá velké věci (ale to bys musel aspoň tušit o co to je). Je to návrat od reactivního programování zpět k imperiativnímu (to je ta velká proměna jazyka mimochodem).
Ta "tvoje" generika je jenom obyčejný syntax sugar nic víc nic míň. Krásná ukázka u generik je, že nejde ani získat typ toho generika za běhu (ano jsou na to hacky), protože je to jenom obyčejný syntax sugar ty chytráku. Tímhle jsi prokázal svojí nekompetentnost a totální neznalost (o intelektu taktně pomlčím).
O var jsem nic nepsal, ten jazyk se změnil díky pattern matching a recordy nic víc nic míň. Na to var nemá moc smysl a ani se to moc v kódu neobjevuje.
Ale neodpověděl jsi který jazyk toho přidal více ty chytráku, takže stále čekám na odpověď. Nebo co by sis představoval aby se změnilo?
Zrovna generika jsou sporná, protože se nic nezměnilo na straně JVM, takže to neumožnilo psát něco jinak. Je to jen nápověda pro kompilátor. Je to trochu víc, než co si člověk obvykle představí pod pojmem syntactic sugar. Na druhou stranu, kdybyste psal kód tak, že budete všude místo generik důsledně testovat typy, generiky nepotřebujete. Takže je to vlastně syntactic sugar.
Lehká vlákna jsou srovnatelně významná, jako generika, a umožňují psát kód jinak – z tohoto pohledu je to významnější změna, než generiky. Nové garbage collectory ničím jiným nenahradíte, pro určité typy aplikací je to opět významná změna. Vector API – opět pro některé aplikace zásadní změna.
To, že se v Javě nedělají ještě zásadnější změny, svědčí o tom, že už je Java dávno dospělý a plnohodnotný jazyk, který už má vše, co je potřeba. A takhle výrazné nové změny se do ní přidávají jenom tehdy, když vzniknou obecně ve světě IT a osvědčí se.
Jinak je zajímavé, že ostatním nadáváte, ale sám při programování používáte nějaký podivný editor, který vám u var
ani nedokáže zobrazit implicitně odvozený typ. Čitelnosti/přehlednost/pochopitelnost kódu zvýšíte mnohem víc tím, že začnete používat dobré nástroje, než když nebudete používat var
.