Tak jak sleduji vývoj v Javě, tak lze říci že množství revolučních(extrémních) inovací od Java3 drasticky klesá, a prakticky od Java7 jsou implementovány nepříliš důležité(prakticky bezvýznamné) až na výjimky( moduly, run-time images) inovace, které v oslovují a jsou využívány zanedbatelnou části vývojářů. Shodou okolností si myslím, že téma jimž se článek zabývá mezi ty bezvýznamné inovace patří.
Male opraveni - jakkoliv moduly muzou pusobit nesmyslne, a jako marna featurka, tak nejsou: umoznilo to poradne zapouzdrit privatni api a tim to konecne umoznilo vyhazet stary kod, zrusit api co meli byt odjakziva uzavreny (a to se s reflexi dela fakt blbe). Tedy konecne umoznilo jave nejak rust. PRavda od javy 9 uplnula nejaka to voda, ale trvalo minimalne do javy 17 nez se to nejak poradne usadilo. Takze hura do toho:)
Bezeni java source files me nejdriv pripadlo neuveritelne legracni, ale po hlubsim uvazeni... napre to sili vyvojaru spravnejsim smerem - napriklad misto opusti groovy a zustanou u javy. nebo to treba umozni ze znaikne ant jako XML, a bude jen ant jako java kod... Atak dale a tak dale....
Tak to asi nesledujete vůbec. Naopak Java 8 měla spoustu nových věcí, lambdy, method reference. Java 7 neměla skoro nic nového (switch se Stringy a try-with-resource). Jenom namátkou Java 8-17 switch expression, pattern matching (switch, instanceof), record, sealed classes, ZGC.
Java 18-21 Virtual Threads, String Templates, record patterns, Foreign Function and Memory.
Navíc mají rozjeto další projekty např. CRaC (Coordinated Restore at Checkpoint), Valhalla (Value Objects, Null-Restricted and Nullable Type), Loom (vylepšení Virtual Threads), Class-File API (API pro parsovaní a úravu java class).
Ukažte který jazyk toho přidal za posledních 5 let víc? Je taky nutné vyzdvihnout, že je ten jazyk stále velmi dobře zpětně kompatibilní a na novém JVM může běžet i kód zkompilovaný např. s Java 4 (až na malé výjimky).
Napsat, že tyhle změny jsou nepříliš důležité je výstřel úplně mimo, protože vývoj (struktura kódu, způsob psaní) v Java se s novými verzemi rapidně změnil.
Ano. Podle me je java v soucastnosti jediny jazyk, ktery v cili na celou vekove-zkusenostni vyvojarskou mnozinu - od uplych zacatecniku co ani nevi ze je nejaky compiler, prez deti, juniory, prez seniory a principaly az po uplne magory co pisou kounstrukty ktery predchozi skupiny ani neprectou. Natoz aby to pochopili. Navic ma celkem rozumnou comunitu a codebase a je docela blbu vzdorna a citelna. Featury se pridavaji mnohem pohodlneji nez do C++ nebo i do Pythonu. A zpetna kompatibilita se opravdu drzi (napr naproti pythonu).
Napr C miri na horni polvinu skupiny, Python na spodni dve tretiny skupin.. atd... jen aby ch malinko upresnil pojmy:) Tezko rici kdy sit ohle hlanvi lide v jave uvedomili, ale uchopili to zpravne. Ted ma java decanko generacni gap, ale ma sanci to napravit.
Taky svet je o neco vetsi nez EU, USA a Indie... Tuhle se ke me hlasili studenitci ze statu ala Kazachstan a okoli, a jo umeli, ale jejich jazyk volby byl pascal...
To co si myslíš ty, že je důležité je jenom důkazem mého tvrzení že patříš do té minoritní skupinky kterou to oslovilo. Většina co jsi napsal jsou jenom tvz. "syntaxový cukřík" který řešil tvz. problémy které se dali řešit(programovat) předtím též, pouze jiným(složitějším) postupem. Některé přidané API o kterém se zmiňuješ sice v některých případech zmenšilo zdrojové kódy jako u všech nových API, ale na nativní úrovni díky němu nedošlo k nějakému zásadnímu zrychlení či zlepšení. A pokud ano, tak jenom v ojedinělých případech.
Podle mě se svým vlastním myšlením z bezvýznamných věcí děláš zbytečně významné. Možná protože neumíš poznat skutečně významné věci.
Skus si to zobrat tak. Niekomu staci asambler, alebo napriklad INTERCAL (vid https://esolangs.org/wiki/INTERCAL_Turing-completeness_proof ). Niekto chce vediet pohodlne precitat, co napisal, aj po mesiaci a neskor. Preto sa ten "syntakticky cukor" vcelku zide.
PS: Ak ta bavi sprtat sa v java 1.4 kode (to je to, kde napriklad nieje enum este), napis mi. Mozno by som ti vedel dohodit pracu...
Tohle už je pěkný blábol. FFM a Virtual Threads zrovna syntax sugar rozhodně nejsou a změn za tím je opravdu hodně. To samé pattern matching. Zrovna Virtual Threads mají obrovský význam. Project CRaC a nově project Galahad (GraalVM do OpenJDK) jsou zrovna velkým příslibem zrychlení.
Ty přidané věci rapidně změnili způsob psaní kódu. Zdrojový kód napsaný v Java 7 a Java 21 bude vypadat rapidně jinak a i Java vývojáři nyní využívají jiná řešení než dříve. Stačí se podívat na knihovny, jak se díky třídám z java.util.function a lambdám proměnily (a to je jenom syntax sugar). To samé udělá record.
Tak napiš jaký jiný jazyk toho přidal víc za posledních 5 let. Co bys jako chtěl více?
Tvrzení, že syntax sugar je nepodstatný je taky dobře mimo. Protože to hodně rozhoduje, jak je jazyk úspěšný a jestli ho vývojáři rádi používají. Můžete mít skvělý jazyk, ale pokud nebude mít právě ten syntax sugar, tak ho nebude nikdo používat.