To je skvělé, protože Java je opravdu jak dělaná na psaní malých programů a toto z ní udělá můj oblíbený skriptovací jazyk!
To teda nezafungoval :) Stretávam sa s týmto názorom aj ako úprimne mysleným. Hlavne java je dosť závislá od knižniciach v jar-kách. Ak súdruhovia vymyslia niečo ako "pip" pre javu a pribalia to ku každému JDK, potom by sa dalo možno o takom uvažovať. Ale aj tak by to bolo ako škrabanie sa za uchom cez hlavu.
1. Maven nie je v JDK
2. Na takéto ad-hoc hackovanie je to prudko nepraktické. Si predstavte písať 5 riadkový skript, k tomu inštalovať maven, konfigurovať maven, vyrobiť projekt z archetypu includnúť všetky potrebné jar-ká ....
Takže nemyslím maven, ďakujem za otázku. Maven by bolo strašne hlúpe takto používať.
Nik nehovoril o skriptovaní. Na to je na JVM Groovy alebo tiež Scala. Spomína sa testovanie drobností v malých programoch ako je napr. nová syntax alebo výuka. Ja ako občasný lektor základov Javy som to už využil.
Je omnoho jednoduchšie začať výuku s main
funkciou ako s tradičným programom.
No len potom je tu otazka, ze preco je tato syntax vhodna iba na vyuku? To kvoli vyuke ju potrebujeme zjednodusovat? Nie je to skor preto, ze si ju chceme zjednodusit pri normalnej praci? Podla mna toto zacne vela ludi pouzivat pri svojej normalnej praci a nie iba pri vyuke.
Tak Pascal byl take navrhovany tak, aby se v tom dobre ucila vyuka. Jiste, z dnesniho pohledu je to "legacy" jazyk, nektere veci tam jednoduche nejsou... ane na to naucit se zaklady algoritmizace to zas tak zly nebylo.
V Pascale nie sú free cool in features a syntax šuga, ale je to dobrý jazyk, je tam všetko podstatné. Komunita okolo Delphi a Freepascalu je dosť živá. Ak by som zajtra musel prejsť na Pascal, chvíľu by mi trvalo sa zaučiť, ale až tak by to nebolelo.
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?
Generika = syntax sugar ? tak a teď tu o Karkulce.
A ano psal jsem že v od Java11 se nic zásadního v Javě neobjevilo. Ani jediné přidané JSR od té doby nedosahuje a nerovná se "přínosu genericity".
PS. proč odvádíš téma k jiným jazykům když téma je Java.
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
.
A jak si ty chytráku myslíš, že jsou generika v Java udělaná?
Už jsem ti psal Virtual Threads mají mnohem větší vliv než generika. Pattern matching a recordy mají taky velký dosah.
Tak co by sis představoval, že by měla Java přidat aby to pro tebe bylo dostatečné?