Vhodná verze Javy

PetersonPierson

Vhodná verze Javy
« kdy: 04. 11. 2018, 17:45:38 »
Ahoj,
jaké verze Javy by měl člověk dobře znát, pokud se jde ucházet o pozici v javě? Je dostačující 8? nebo by se člověk měl soustředit už i na 9, 10, 11? (nehledě na to, že v březnu má vyjít 12)

Díky za názory


Oooo

Re:Vhodná verze Javy
« Odpověď #1 kdy: 04. 11. 2018, 18:26:41 »
Jestli te nic neomezuje tak nejnovejsi a dobre je zacit i s kotlinem.

Re:Vhodná verze Javy
« Odpověď #2 kdy: 04. 11. 2018, 18:56:59 »
Hlavne se pojedou LTS verze javy, takze znat 8 a 11 je takovej zaklad, prece jenom je hodne legacy aplikaci a ne kazdej ma cas a prostredky to predelavat na 11, kde je dost zmen (a hlavne nejaky API vypadly z core a musej se nove balit jako extra jarka)

Re:Vhodná verze Javy
« Odpověď #3 kdy: 04. 11. 2018, 20:27:44 »
Určitě byste měl znát vše (tím myslím jazykové konstrukce a povědomí o tom, co je ve standardní knihovně), co je ve verzi 8, ta je dnes nejrozšířenější. Pak je dobré mít alespoň ponětí o tom, co se přidalo (nebo u 11 odebralo) do novějších verzí (9 – 11), až na jeden případ jsou to drobnosti. A průběžně sledovat, co se bude přidávat do nových verzí.

Ta výjimka, co není drobnost, je modularita v Javě 9 – určitě je dobré alespoň vědět, co to je. Opravdu porozumět modularitě je užitečné do budoucna – jednak se to bude postupně používat, jednak je dost možné, že se dostanete do nějakého týmu, kde budete jediný, kdo tomu bude opravdu rozumět, a můžete to naučit správně používat ostatní. Na druhou stranu porozumět dobře modularitě nebude snadné, protože je to krok k větší čistotě kódu, čemuž se spousta programátorů bude samozřejmě bránit a budou mít tisíce důvodů, proč zrovna v jejich projektu je nečistý kód správné řešení a předvedou vám velmi nápaditá špatná použití modularity, aby dokázali, že to opravdu nejde používat. Navíc ve spoustě starších projektů opravdu modularitu použít reálně nejde, protože to znamená i architektonické změny – a na tom, že se dříve nepoužila lepší architektura, není nic špatného, protože prostě nebyly k dispozici potřebné nástroje. Tohle se třeba bude týkat všech Springových aplikací… Další problém je, že dneska pro modularitu v Javě chybí nástroje – např. buildovací nástroje, IDE nebo knihovny. Zatím jsou ve stavu, že jim jednoduché použití modularity moc nepřekáží, ale rozhodně se to nedá nazvat podporou. Gradle bude mít něco, čemu by se dalo říkat základní podpora, od verze 5.0 (už je ve fázi RC), IntelliJ Idea pokud narazí na modulový projekt, dá všechno na module-path, což je dobré leda tak na hraní, ale ne pro reálné aplikace, atd. Také k tomu zatím chybí oborové best-practices, a u některých věcí (třeba jednotkové testy) zatím vůbec není jasné, jak se vlastně mají s modularitou dělat správně. Ale přestože jsem teď vyjmenoval spoustu problémů, určitě se vyplatí se tím zabývat, i když to dnes třeba v praxi nevyužijete, protože vás to naučí i lépe uvažovat o architektuře aplikace.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Vhodná verze Javy
« Odpověď #4 kdy: 04. 11. 2018, 21:34:34 »
To je v tom vážně takový rozdíl? Kterou z nových featur se nelze naučit za 10 minut?


Meh

Re:Vhodná verze Javy
« Odpověď #5 kdy: 04. 11. 2018, 22:12:33 »
Ja doporucuji Javu verze 8u161. Pouzivam ji vsude, protoze s ni vsechno funguje.

technomaniak

Re:Vhodná verze Javy
« Odpověď #6 kdy: 05. 11. 2018, 06:07:44 »
To je v tom vážně takový rozdíl? Kterou z nových featur se nelze naučit za 10 minut?

Ale dá, jenom ti to někdo musí objasnit kdo tomu rozumí. Je možné že se "modularita" ani nechytne, stejně jako JavaFX( tu z Java11 odstranily). Stávající buildování a podpora *.jar zůstává takže ji vůbec nemusíš používat. Můžeš fungovat na starém konceptu akorát ti některé nové featury(funkce) nemusí fungovat např. Run-time image s JVM, apod..

… a můžete to naučit správně používat ostatní. Na druhou stranu porozumět dobře modularitě nebude snadné, protože je to krok k větší čistotě kódu, čemuž se spousta programátorů bude samozřejmě bránit  ….

Jirsáku co tu meleš o čistotě kódu? Modularita je jenom tvz. zapouzdření na úrovni projektu knihoven(odpojení nepoužívaných knihoven) --> hlavně je jejím cílem dát info JVM, které knihovny má načíst, což má vést k rychlejšímu startu JVM a nahrání a spuštění projektu(programu). Na samotný zdrojový kód či jeho přehlednost to nemá vůbec vliv. A pokud ano, ukaž na příkladu.

2Tazatel : Java je zpětně kompatibilní to znamená že pokud umíš API(core) 11tku, pak ovládáš 10,9,8,7,6,5,... Co se týče projektů, jak bylo řečeno LTS je Java8 a 11, ale dost old(legacy) projektů používá stále 7,6, a i 5tku. Než se nasadí 11tka to bude rok či více trvat. Nyní klidně funguj na 8čce. Zatím žádný aplikační server nepodporuje Java9,10,11 a to ani ty s EE8.

MarSik

Re:Vhodná verze Javy
« Odpověď #7 kdy: 05. 11. 2018, 13:14:54 »
Je možné že se "modularita" ani nechytne, stejně jako JavaFX( tu z Java11 odstranily).

JavaFX není už ve standardní knihovně, protože se dá snadno přídat jako JAR. Pořád se vyvíjí samostatně (OpenJFX 11 po vzoru OpenJDK). Na serverové aplikace totiž stejně nebyla potřeba.

https://openjfx.io/

technomaniak

Re:Vhodná verze Javy
« Odpověď #8 kdy: 06. 11. 2018, 07:39:37 »
Je možné že se "modularita" ani nechytne, stejně jako JavaFX( tu z Java11 odstranily).
.... Pořád se vyvíjí samostatně (OpenJFX 11 po vzoru OpenJDK). ….

Netvrdil jsem že byla zrušena vč. projektu ale odstraněna.

Mimochodem jsem čekal že mě tu opravíte s EE8. Např. WildFly 14 (plne certifikovaný EE8 ) již podporuje jako spouštěcí JRE Java9,10 ale s Java11(18.9) padá. To samé platí i pro WildFly 13,12 ( ovšem ty nejsou certifikovány na EE8)

Nicméně pořád mi tu chybí důkaz(příklad) že "modularita" vede k "větší čistotě kódu".

balki

Re:Vhodná verze Javy
« Odpověď #9 kdy: 06. 11. 2018, 08:27:29 »
Najlepsie je sa ucit 11, lebo ta sa bude v blizkej buducnosti pouzivat. Legacy aplikacie vsak budu bezat na jave 8, takze sa treba aj v nej vediet orientovat. Kotlin je to ezotericky jazyk pre startupy, ten nie je velmi perspektivne sa ucit. Az budete mat taky projekt, tak kotlin sa naucte za chodu. Je kopec takych vymyslov - groovy, scala, clojure, jython .. Najlepsie je minat energiu na to, aby ste pokryli maximum projektov, bizuteria sa da ucit potom.