Doporučte programovací jazyk pro Windows

Re:Doporučte programovací jazyk pro Windows
« Odpověď #405 kdy: 22. 03. 2020, 18:11:45 »
Takze na te strance od mavenu jsou jeste vypsany depende cies ktere to ma:
https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sqs/1.11.690
Jenze ty dependencies budou mit dalsi dependencies, takze to si uzijes.
4. Klikni si na "Files   jar (315 KB)" a stahni si to Jarko.
Ne, to rozhodně ne.
V tom případě to lepší než pip nebude pokud bych měl dependencies rešit ručně. Dobře, takže za použítí Mavenu/Gradlu nebo nějakého Java IDE musím zkompilovat zdrojáky AWS-SDK-JAVA a vytvořit jarko a to naimportuju do mého projektu. To chápu. Takže o našeptávání se bude starat přímo to zkompilované jarko, které si nějak poradí s těmi JSON soubory (které popisují operace, které daná AWS služba podporuje)? Nebo je veškerá dokumentace uložena přímo v tom jarku? Teď jsem si všiml, že zde https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/setup-install.html#include-sdk je uvedeno:
Citace
5. (Optional) Build the API Reference documentation using the following command.
mvn javadoc:javadoc
The documentation is built into the target/site/apidocs/ directories of each service.
Takže mně bude našeptávání fungovat, až když pomocí mavenu vybuildím dokumentaci? Jsem zmaten :o

Mimochodem, v tom Gradlu si můžete snadno naprogramovat, aby se vám závislost na tom AWS SDK povýšila skriptem (ať už na ruční postrk, nebo automaticky).
Uff, tam je potřeba programovat i ruční aktualizaci AWS SDK? Tam není nějaký jednoduchý příkaz jako v pip, např. "maven/gradl -upgrade aws-sdk-java"?

LarryLin: tady je minimalni example s Mavenem, doporucuju ho otevrit v IntelliJ Idea Community:
Je to example pro sqs, ale co kdybych chtěl používat jinou službu (sns, s3, ...). To musím pokaždé ručně upravovat <dependencies> v souboru pom.xml?


Re:Doporučte programovací jazyk pro Windows
« Odpověď #406 kdy: 22. 03. 2020, 18:12:05 »
Nastesti jeste jsme na tom dobre, udrzme pozice jeste 20 let a bude to dobry, jeste tak 10 let potrva nez Cloud prestane byt sra cka 8)


Re:Doporučte programovací jazyk pro Windows
« Odpověď #407 kdy: 22. 03. 2020, 18:21:48 »


janjsem ti tam poslal zazipovany projekt s mavenem.

Zapomen na to ze budes mit pocatecni konfiguraci stejne jednoduchou jako s Pythonem synku, v Jave se delaji poradne veci na kterych se dela mesice, to ze jsi ztratil o hodinu vice konfiguraci projektu nikoho nezajima  8)

Re:Doporučte programovací jazyk pro Windows
« Odpověď #408 kdy: 22. 03. 2020, 19:01:45 »
V tom případě to lepší než pip nebude pokud bych měl dependencies rešit ručně. Dobře, takže za použítí Mavenu/Gradlu nebo nějakého Java IDE musím zkompilovat zdrojáky AWS-SDK-JAVA a vytvořit jarko a to naimportuju do mého projektu. To chápu.
Nikoli. Máte váš Javovský projekt založený na Gradle (nebo Mavenu,když se chcete trápit :-). Do otoh projektu si přidáte závislost na AWS SDK – jak na to máte popsané na té odkazované stránce https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/setup-install.html#include-sdk Zajímá vás jen ten krátký odstavec s výběrem mezi Maven a Gradle. Ta část „Compiling the SDK“ už se vás netýká, ta je pro případ, kdy byste SDK chtěl kompilovat ze zdrojáků.

Přidáním té závislosti do Gradle nebo Mavenu se stáhne příslušné JARko (přeložený Java kód)z Maven repository, stejně tak se stáhnou případné závislosti. IDE si to JARko proleze, zaindexuje a na základě toho pak napovídá. Nápověda může být zkompilovaná v samostatném JARku, pokud je k dispozici, IE si ho stáhne také a pak vám přímo v IDE může zobrazovat i tu nápovědu. To je ale nad rámec našeptávání – je to člověkem psaná dokumentace metod, parametrů apod.

Takže o našeptávání se bude starat přímo to zkompilované jarko, které si nějak poradí s těmi JSON soubory (které popisují operace, které daná AWS služba podporuje)?
V tom statickém JARku už jsou nadefinované třídy, které můžete použít – podle nich IDE napovídá. O převod z JSON souborů do těch tříd už se musel postarat autor toho JARka.

Takže mně bude našeptávání fungovat, až když pomocí mavenu vybuildím dokumentaci? Jsem zmaten :o
Našeptávání funguje rovnou na základě kódu (ať zdrojového nebo zkompilovaného v class souborech).

Uff, tam je potřeba programovat i ruční aktualizaci AWS SDK? Tam není nějaký jednoduchý příkaz jako v pip, např. "maven/gradl -upgrade aws-sdk-java"?
Takovýhle příkaz tam není. Rozdíl je totiž v tom, že v případě pipu si stáhnete ten balíček lokálně a dál pracujete s ním. A to pip -upgrade vám prostě přepíše ty soubory na souborovém systému. Maven i Gradle ale fungují tak, že jenom řeknete, jaký balíček se má používat – a zbytek už je starost buildovacího systému (případně IDE). On to nakonec také stáhne někam na disk, ale to se děje na pozadí. Hlavně ale ta deklarace závislosti nemusí být tak jednoduchá – může být podmíněná, nemusí tam být uvedená verze natvrdo ale nepřímo třeba pomocí proměnné. Takže příkaz pro aktualizaci závislosti by často nevěděl, co má kde upravit, aby se ve výsledku změnila ta verze závislosti.

On to ale většinou nebývá problém, vydávání nové verze každý den je specialita Amazonu…

Maven i Gradle jsou v tomhle flexibilnější, nemožnost udělat takhle jednoduše upgrade je daň za tu flexibilitu. Třeba můžete mít firemní bezpečnostní tým, který bude nové verze knihoven auditovat. Tím pádem nebude chtít brát nové verze z internetu, ale z toho auditu. Maven i Gradle vám to umožní. V Gradle napíšete skript na pár řádek, v Mavenu vytáhnete čísla verzí do nějakého externího souboru, který budete aktualizovat něčím jiným, než Mavenem (nebo do Mavenu napíšete plugin).

Je to example pro sqs, ale co kdybych chtěl používat jinou službu (sns, s3, ...). To musím pokaždé ručně upravovat <dependencies> v souboru pom.xml?
Ano. Ale IntelliJ Idea k tomu zase hezky napovídá, případně když chcete použít třídu z balíčku, který nemáte v závislostech, sama nabídne to přidání do závislostí. Je to stejné, jako kdybyste upravoval packages.json pro NPM. Osobně mi ta editace souboru připadá lepší, než přidávat závislosti přes příkazovou řádku – v tom souboru rovnou vidím, jaké další závislosti tam mám, takže třeba rovnou vidím, že už tam mám jinou knihovnu ze stejného projektu, tak se postarám o to, abych je měl ve stejných verzích.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #409 kdy: 22. 03. 2020, 19:10:29 »

janjsem ti tam poslal zazipovany projekt s mavenem.
viděl jsem, proto jsem se ptal jak je to s těma dependencies v pom.xml.


Zapomen na to ze budes mit pocatecni konfiguraci stejne jednoduchou jako s Pythonem synku, v Jave se delaji poradne veci na kterych se dela mesice, to ze jsi ztratil o hodinu vice konfiguraci projektu nikoho nezajima  8)
To už mi došlo. Nejdřív mi mazali med kolem huby jak je Java jednodušší než Python a nakonec jsem zjistil, že dokud to všechno nezbuilduju, nenainstuluji Maveny a nenaprogramuji aktualizaci aws-sdk-java, tak mi našeptávání nepojede ani náhodou.  :)


Re:Doporučte programovací jazyk pro Windows
« Odpověď #410 kdy: 22. 03. 2020, 19:33:08 »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #411 kdy: 22. 03. 2020, 22:10:16 »
To už mi došlo. Nejdřív mi mazali med kolem huby jak je Java jednodušší než Python a nakonec jsem zjistil, že dokud to všechno nezbuilduju, nenainstuluji Maveny a nenaprogramuji aktualizaci aws-sdk-java, tak mi našeptávání nepojede ani náhodou.  :)
Buildovat knihovny opravdu nemusíte. Ve světě Javy si sám buildujete knihovnu jedině v případě, že na ní potřebujete aplikovat nějaký hotfix.

IntelliJ Idea má v sobě i JDK i Maven, takže kromě IntelliJ Idea už nic dalšího instalovat nemusíte :-)

Stejně tak nemusíte programovat aktualizaci AWS SDK – předpokládám, že tam nedělají zpětně nekompatibilní změny, že jenom rozšiřují API. Takže prostě použijete aktuální verzi, a povýšit na novou verzi můžete v okamžiku, až budete potřebovat nějaké novější API, které ve vaší verzi není, nebo prostě jednou za čas, třeba až budete připravovat nový vývojový cyklus vaší aplikace. To naprogramování automatické aktualizace jsem uváděl jako příklad, co se také dá řešit. Ale AWS SDK je těmi každodenními releasy výjimečné, takže je logické, že zrovna na tohle není ekosystém Javy optimalizovaný.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #412 kdy: 22. 03. 2020, 23:36:39 »
@Filip Jirsák:
Jsem rád, že jsem se dozvěděl jak to funguje ve světě Javy, někdy se může hodit, ale třeba u menších projektů hostovaných na AWS Lambda mně nedává smysl dát přednost Javě namísto Pythonu. V naší diskuzi jsem pro takové projekty žádnou přednost Javy nenašel, právě naopak. U větších projektů je to otázka, kde by hrálo roli více faktorů, ale kdyby bylo dostatek vývojářů GoLangu a já se rozhodoval z pozice zákazníka, tak by padla volba na něj - šíření ve strojovém kódu a nemuset šířit své zdrojáky považuji za obrovské plus.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #413 kdy: 22. 03. 2020, 23:42:40 »
Nastesti jeste jsme na tom dobre, udrzme pozice jeste 20 let a bude to dobry, jeste tak 10 let potrva nez Cloud prestane byt sra cka 8)


Možná sis našel graf schválně z roku 2017 kde ještě vládla Java, ale za poslední 3 roky se toho hošku hodně změnilo. Posledních pár sekund videa ti jako antiPythonistovi neudělá radost :) a jelikož se bude stále více rozšírovat ML kde vládne Python, tak se připrav že ještě hodně poroste.
Most Popular Programming Languages 1965 - 2020 - youtube

Re:Doporučte programovací jazyk pro Windows
« Odpověď #414 kdy: 23. 03. 2020, 08:38:25 »
Jsem rád, že jsem se dozvěděl jak to funguje ve světě Javy, někdy se může hodit, ale třeba u menších projektů hostovaných na AWS Lambda mně nedává smysl dát přednost Javě namísto Pythonu. V naší diskuzi jsem pro takové projekty žádnou přednost Javy nenašel, právě naopak. U větších projektů je to otázka, kde by hrálo roli více faktorů, ale kdyby bylo dostatek vývojářů GoLangu a já se rozhodoval z pozice zákazníka, tak by padla volba na něj - šíření ve strojovém kódu a nemuset šířit své zdrojáky považuji za obrovské plus.
Souhlasím, já v současné době také nevidím důvod, proč používat Javu na AWS Lambda. Snad s jedinou výjimkou – už bych měl kód napsaný a jenom bych ho potřeboval spouštět pod Lambdou. Ale už i to dneska jde a před rokem by to bylo nemyslitelné.

Věřím tomu, že i tady se pozice Javy ještě zlepší. Ideální by bylo, kdyby Amazon začal v Lambdě Javu podporovat nativně – tj. měl by už nastartované JVM, ve kterých by se jen spouštěly příslušné lambdy.

Jinak pokud máte jeden menší projekt a programátory, kteří znají Python nebo Go, nedává smysl psát to v Javě. Výhoda Javy je tom velkém ekosystému – ať si vymyslíte cokoli, pro Javu na to najdete minimálně jednu, ale spíš víc knihoven. Python je na tom v tomhle směru také docela dobře, ale Go je prostě příliš mladé a těch knihoven je malinko. Další výhoda toho ekosystému je to, že má široký záběr, můžete psát od velkých monolitů (když nějaký máte, ve kterém je hromada kódu, který musíte dál podporovat) až po mikroslužby nebo teď už i Lambdy (i když to zatím není ideální). Opět – pokud budete psát jeden malý projekt, neoceníte to.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #415 kdy: 23. 03. 2020, 10:02:59 »
Z diskuse jsem si odnesl dva poznatky, PetrK ma nejakou poruchu osobnosti a prostredi javy je jeste horsi, nez jsem si myslel. Ze je java i spatny jazyk, jsem uz vedel. Ze je Python na vrcholu zebricku Tiobe je zajimave, ja s Pythonem zqcinal, kdyz prechazel z verze 1 na 2 a to byl docela neznamy jazyk. Je to ohromujici rust a to tim nejlepsim zpusobem, je to rust zdola, rust kvalitou, nestoji za nim zadna obri korporace, ktera by ho manazersky tlacila. Ale tu oblibenost chapu, hrozne pohodlne se v tom programuje, me se take nechce v nicem jinem delat, byt ten tlak na JS je take dost silny.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #416 kdy: 23. 03. 2020, 10:21:33 »
Stejně to za pár let zase opadne a Python nahradí jiný jazyk...

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #417 kdy: 23. 03. 2020, 10:52:15 »
Stejně to za pár let zase opadne a Python nahradí jiný jazyk...

I kdyby, Java to nebude.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #418 kdy: 23. 03. 2020, 10:56:52 »
Z diskuse jsem si odnesl dva poznatky, PetrK ma nejakou poruchu osobnosti a prostredi javy je jeste horsi, nez jsem si myslel. Ze je java i spatny jazyk, jsem uz vedel. Ze je Python na vrcholu zebricku Tiobe je zajimave, ja s Pythonem zqcinal, kdyz prechazel z verze 1 na 2 a to byl docela neznamy jazyk. Je to ohromujici rust a to tim nejlepsim zpusobem, je to rust zdola, rust kvalitou, nestoji za nim zadna obri korporace, ktera by ho manazersky tlacila. Ale tu oblibenost chapu, hrozne pohodlne se v tom programuje, me se take nechce v nicem jinem delat, byt ten tlak na JS je take dost silny.

Mám to podobně - s Pythonem někdy od verze 1.5. Líbí se mi ale třeba i Julia a co můžu (v rámci zatím osobních projektů, utilitek a testů), dělám v Rustu. Pythonu IMO teď nejvíc překáží v rozletu GIL, chystám se experimentovat s rust-cpythonem a některými možnostmi paralelizace, které někde na Rootu uváděl kolega A.P.Hacker.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #419 kdy: 23. 03. 2020, 17:20:05 »
Stejně to za pár let zase opadne a Python nahradí jiný jazyk...

I kdyby, Java to nebude.

Bude to Javascript ;)