Proč ten hype okolo Go?

Krysa11

Re:Proč ten hype okolo Go?
« Odpověď #195 kdy: 30. 08. 2018, 21:52:57 »
a je to nedokonale samozrejme. Ale je to o stovky procent blize dokonalosti nez v go.

jak rikal. 10, 20 let a uvidime.


Re:Proč ten hype okolo Go?
« Odpověď #196 kdy: 30. 08. 2018, 22:00:48 »
Citace
prave jste velice hezky popsal JIT optimalizaci JVM u dlouhodobe beziciho procesu.

Bohužel nepopsal.

1) JIT neoptimalizuje téměř nijak paralelizaci. Jen slepě vykonává to, co mu otrocky naprogramoval v paralelizaci programátor. Což je mnohem méně efektivní než kdyby kompilátor Javy měl nějaké povědomí o paralelních akcích toho, co chce programátor udělat. Žel nemá.

2) Optimalizace JITu je vždy horší, než optimalizace kompilátoru. Už jen proto, že běh programu je zdržován o akce JITu. Jakákoli kompilace/optimalizace JITu je dalším strojový časem, o který JIT okrádá běžící proces, a přičítá se k tíži běhu procesu.

JIT to řeší tak, že rychlosti dosahuje drastickým plýtváním pamětí. Dosahuje slušné rychlosti za cenu paměťové rozežranosti. Většinu počítačových algoritmů můžete napsat v libovolném jazyce rychleji, pokud předpokládáte, že spotřebujete enormní množství paměti.

Současná situace v paralizaci je taková, že na to programátoři dlabou. C/C++/Java a další jim v tom nepomohou. A tak je to práce pro vraha, dělá se to ručně. Proto je dnes drtivá většina programů single thread. Protože dnešní mainstreamové programovací jazyky jsou silně zaostalé v podpoře paralelizace.

Re:Proč ten hype okolo Go?
« Odpověď #197 kdy: 30. 08. 2018, 22:17:43 »
Citace
a je to nedokonale samozrejme. Ale je to o stovky procent blize dokonalosti nez v go.

Já budu hodně jedovatý. Přepálím to více, než je můj skutečný názor. Jen proto, abych to rozhýbal. Nemyslím si o Javě, že je až tak špatná, ale budu teď na chvíli ďáblovým advokátem proti Javě:

Java je programovací jazyk, který by se dal nazvat "emulujeme všechno třídami". Ten jazyk nic pořádně neumí než sázet třídy a volat metody. Všechno je prekabátěná třída.

Důvod, proč Java nezahynula je, že namísto Javy zahybul její autor Sun. Sun nacpal do podpory a prosazení Javy tak astronomické peníze, že zkrachoval. Skoro mám dojem, že pro Sun bylo důležitější za každou cenu prosadit Javu, než vydělávat peníze a být ziskovou firmou.

Když i do nejblbějšího jazyka narvete miliardu doláčů, tak ho nakonec řemeslně ošetříte tak, že to jakž takž funguje. Základním příznakem takových jazyků je, že desktop to odmítne postupně používat, takže to skončí ve smetišti špatných softwarových počinů, které se zovou "enterprise". Tam končí to nejhorší, co bylo vymyšleno, jako je COBOL, Java, a další. A protože v enterprise sféře jsou vynikající platy, tak se to samospádem používá dále. Lidé chtějí mít vysoké platy, a tak se to učí.

***

Citace
jak rikal. 10, 20 let a uvidime.

Paralelní jazyky jsou tu i dnes. Jen nejsou mainstream. Mainstreamem se stanou tehdy, až single thread jazyky nebduou udržitelné přes to, že byly desítky let cizelovány a jejich kompilátory zdokonalovány.

Vývoj hw je úžasný a letí čím dál rychleji. V elektronice je to vidět mnohem více než ze strany PC desktopu či středních podniků.

Ale hlavní důvod zmínění paralelních jazyků je ten, že jste tento směr vynechal. Přitom se brzy přihlásí velice důrazně o slovo. A ne, nepokryjete ho C, C++, Javou, Pythonem ani JavaScriptem. Byť se bude ze začátku nalepovat na tyto jazyky leccos pro podporu paralelizace, a chvíli to bude i držet. Než se to zhroutí.

Krysa11

Re:Proč ten hype okolo Go?
« Odpověď #198 kdy: 30. 08. 2018, 22:42:16 »
Ponkrac ->

Ja bych ani nerekl, ze nejak moc hanite. Podle me jste to popsal celkem presne a objektivne.

V jakem casovem horizontu predpokladate, ze se Vase vestby vyplni?

Mozna bude clovek, ktery zna firemni technologiii a korporatni prostredi, ktere se naucil diky soucasnemu maintreamovemu programovacimu jazyku na lepsi startovni pozici nez nekdo, kdo to nezna a programoval driver pro jeden rotor turbiny v dukovanech v nejakem special jazyku.

Krysa11

Re:Proč ten hype okolo Go?
« Odpověď #199 kdy: 30. 08. 2018, 23:08:21 »
jen tak pro pobaveni:

uz me strasili tim, ze:

prijde doba ledova

do roku 2000 dojde vsechna ropa

do roku 2010 roztrajou ledovce a  holandsko bude pod vodou

padne bolsevismus

... a viteco?

doba ledova nikde

ropa levnejsi nez kdy jindy

v holandsku se porad prodava skunk

bolsevismus se presunul z KSSS do EK





Blb

Re:Proč ten hype okolo Go?
« Odpověď #200 kdy: 30. 08. 2018, 23:16:06 »
Blub programmer ?

Re:Proč ten hype okolo Go?
« Odpověď #201 kdy: 31. 08. 2018, 01:58:58 »
Citace
V jakem casovem horizontu predpokladate, ze se Vase vestby vyplni?

Myslím, že C, C++, Java, Fortran, ... budou stálice, které nezmizí ani za desítky let.

Ale zároveň se objeví řada programovacích jazyků pro několik oblastí, kde jsou současné jazyky opravdu špatné. Jednu z nich jsem zmínil - paralelní a multithreadové programování. Budou ovšem zápasit s obrovskými částkami a lety vývoje, po které se zdokonalovaly ty jazyky z předchozího odstavce. Takže se prosadí jako mainstream za cca 10-15 let, výrazně natoupí už dříve.

Všimněte si mimochodem, že se pomalu rozvíjí také kvantové počítače, které se dnešními programovacími jazyky vůbec programovat nedají. Na běžných počítačích se povídá pohádka: "Tato šifra by potřebovala pro rozlousknutí, aby všechny počítače světa počítaly déle než je stáří vesmíru..., a proto je šifra bezpečná." Jeden jediný kvantový počítač tuto úlohu vyřeší a šifru vyřeší v řádu minut. To je velmi silná motivace pro aplikace kvantových počítačů, takže se do toho rvou obrovské peníze.

Hardware o mnoho mil předběhl vývoj programovacích jazyků a nástrojů. Jednoho dne se to bude muset řešit radikálně, protože hardware se vyvíjí raketovým tempem dopředu. Programovací jazyky stagnují a šolíchají se, vývoj je šnečí.

Citace
Mozna bude clovek, ktery zna firemni technologiii a korporatni prostredi, ktere se naucil diky soucasnemu maintreamovemu programovacimu jazyku na lepsi startovni pozici nez nekdo, kdo to nezna a programoval driver pro jeden rotor turbiny v dukovanech v nejakem special jazyku.

Těžko říci. Programovací jazyky nejsou nijak složité. Naučit se nový programovací jazyk je rychlé. V zásadě jsou všechny na jedno brdo, každý z nich má jen jiný mix ingrediencí.

Myslím si, že korporátní a marketinkové prostředí potřebuje, abyste znali a zvykli si na různé rituály, obětiny zlatému teleti, komunikační zvyklosti. Enterprise a korporátní postupy jsou spíše o tomto. Jinak řečeno, jsou tam různé postupy a pro kreativitu není v těchto místech prostor. Jste kolečko v soukolí, které přemýšlí spíše ve směrnicích než aby viděl výsledek. Kladete jednu cihlu z celé katedrály, a ta druhá cihla už je podle předepsaných postupů na kolegovi o tři kanceláře vedle. A vy to musíte dodržet a nepřemýšlet. A za to vás královsky zaplatí.

Můj názor je, že programovat se naučí každá uklízečka, když bude mít motivaci. To, co brzy bude pro kariéru důležité je naučit se programovat plus být špičkový odborník v něčem. Programátor + špičkový daňový poradce. Programátor + špičkový lékař. Programátor + špičkový matematik a fyzik. Za chvíli bude programátorů co umí jen programovat plné pytle na každé louce.

Trochu váhám, jak to bude s budoucností elektroniky + programování. Mám spíše dojem, že příležitostí dělat elektroniku bude ve světě vždy málo. A proto to bude kombinace spíše pro nadšence. Nebude to málo placené, ale výrazně méně proti jiným IT profesím.

Programovací jazyk se naučíte za chvíli. Zvláště pokud už jiný, jakkoli obskurní, umíte. To co se programátor chvíli učí je algoritmizace a schopnost řešit problémy. A to je dovednost téměř nezávislá na konkrétním programovacím jazyce.










Re:Proč ten hype okolo Go?
« Odpověď #202 kdy: 31. 08. 2018, 02:16:49 »
Citace
jen tak pro pobaveni: uz me strasili tim, ze: prijde doba ledova, do roku 2000 dojde vsechna ropa, do roku 2010 roztrajou ledovce a  holandsko bude pod vodou, padne bolsevismus...

Oni vás nestrašili, oni si jen vydělávali na chleba. Vyvolávat strach a předpovídat armageddon je velice lukrativní činnost. Následně se totiž otvírají peněženky, dotace a granty, které mají najít řešení a předejít budoucí katastrofě.

Kromě toho: Předpověď že dojde ropa přináší velké výdělky obchodníkům s ropou. Na dalších předpovědích je to podobné.

Vy si pletete předpovědi s mediálním ovlivňováním veřejnosti, aby jisté skupiny vydělaly pořádné peníze. Myslíte si, že producenti ropy sami věřili tomu, že ropa dojde? Houby s octem. Jen dobře hráli svou podnikatelskou hru. Věděli, že když vytvoří paniku, že ropa dojde, bude ropa mnohem dražší. A to se stalo, a oni si namastili kešeně.

Musíte se při předpovědi ptát, jaký je osobní zájem daného proroka. 1) Skutečně objektivně předpovídá nebo 2) si chce jen pořádně vydělat falešnou předpovědí? Která varianta platí?

Mimochodem celá burza a akciový trh jede právě na dojmech a emocionálních tvrzeních o budoucím vývoji té které firmy. Jen dojmech, nikoli pravdě.

armabeton

Re:Proč ten hype okolo Go?
« Odpověď #203 kdy: 31. 08. 2018, 09:09:00 »
Paralelní jazyky existují už dlouhou řadu let a pár jsem jich viděl.

No co takto hodit příklad? Podle mě buď myslíš podporu pro paralelizaci smyček, to uměl Fortran pro CRAYe a věřím, že to ještě někdo dělá. Popř. různé ty pcall v LISPech/Clojure. Nebo fakt paralelizaci na základě flow analýzy a to se přiznám, že jsem v praxi neviděl.


Můžete napsat paralelní program tak, že vezmete běžný prací prášek programovací jazyk. A pak si poctivě používáte z nějaké knihovny atomické proměnné, mutexy, sdílené proměnné, semafory, události, atd. atd. atd. Celé to děláte v podstatě ručně - a kompilátor to ani nezkontroluje. To je případ Javy/C/C++/Pythonu/JavaScriptu, atd. atd. atd.

Ne použít gorutiny. Právě ty jsou jednou z mála zajímavých a užitečných věcí na go.

Paralelní programovací jazyk sám hledá místa, kde lze paralelizovat. Je jich plno. Například ve složitějších cyklech lze v řadě případů provést iterace paralelně. Několik volání podprogramů lze také paralelizovat, pokud na sobě nezávisejí. Atd. atd. atd.

No hoď příklad takového jazyka, co to zvládá ne v runtime, ale v compile time. Opakuju = pár pokusů existuje, ale skončí to většinou těmi smyčkami a to jenom, když se tomu hodně pomůže. Jenže to je taková paralelizace na strašně nízké úrovni, ne něco, co by ten program masivně změnilo (jestli to ale vůbec potřebujeme).

Re:Proč ten hype okolo Go?
« Odpověď #204 kdy: 31. 08. 2018, 09:18:32 »
Paralelní jazyky existují už dlouhou řadu let a pár jsem jich viděl.

No co takto hodit příklad? Podle mě buď myslíš podporu pro paralelizaci smyček, to uměl Fortran pro CRAYe a věřím, že to ještě někdo dělá. Popř. různé ty pcall v LISPech/Clojure. Nebo fakt paralelizaci na základě flow analýzy a to se přiznám, že jsem v praxi neviděl.


Můžete napsat paralelní program tak, že vezmete běžný prací prášek programovací jazyk. A pak si poctivě používáte z nějaké knihovny atomické proměnné, mutexy, sdílené proměnné, semafory, události, atd. atd. atd. Celé to děláte v podstatě ručně - a kompilátor to ani nezkontroluje. To je případ Javy/C/C++/Pythonu/JavaScriptu, atd. atd. atd.

Ne použít gorutiny. Právě ty jsou jednou z mála zajímavých a užitečných věcí na go.

Paralelní programovací jazyk sám hledá místa, kde lze paralelizovat. Je jich plno. Například ve složitějších cyklech lze v řadě případů provést iterace paralelně. Několik volání podprogramů lze také paralelizovat, pokud na sobě nezávisejí. Atd. atd. atd.

No hoď příklad takového jazyka, co to zvládá ne v runtime, ale v compile time. Opakuju = pár pokusů existuje, ale skončí to většinou těmi smyčkami a to jenom, když se tomu hodně pomůže. Jenže to je taková paralelizace na strašně nízké úrovni, ne něco, co by ten program masivně změnilo (jestli to ale vůbec potřebujeme).
Určitě to nebude úplná revoluce co dělá paralelizaci automaticky, ale od CRAYE je tu  Chapel: https://chapel-lang.org/

Bacsa

Re:Proč ten hype okolo Go?
« Odpověď #205 kdy: 31. 08. 2018, 12:29:23 »
Paralelní jazyky existují už dlouhou řadu let a pár jsem jich viděl.

No co takto hodit příklad? Podle mě buď myslíš podporu pro paralelizaci smyček, to uměl Fortran pro CRAYe a věřím, že to ještě někdo dělá. Popř. různé ty pcall v LISPech/Clojure. Nebo fakt paralelizaci na základě flow analýzy a to se přiznám, že jsem v praxi neviděl.


Můžete napsat paralelní program tak, že vezmete běžný prací prášek programovací jazyk. A pak si poctivě používáte z nějaké knihovny atomické proměnné, mutexy, sdílené proměnné, semafory, události, atd. atd. atd. Celé to děláte v podstatě ručně - a kompilátor to ani nezkontroluje. To je případ Javy/C/C++/Pythonu/JavaScriptu, atd. atd. atd.

Ne použít gorutiny. Právě ty jsou jednou z mála zajímavých a užitečných věcí na go.

Paralelní programovací jazyk sám hledá místa, kde lze paralelizovat. Je jich plno. Například ve složitějších cyklech lze v řadě případů provést iterace paralelně. Několik volání podprogramů lze také paralelizovat, pokud na sobě nezávisejí. Atd. atd. atd.
No hoď příklad takového jazyka, co to zvládá ne v runtime, ale v compile time. Opakuju = pár pokusů existuje, ale skončí to většinou těmi smyčkami a to jenom, když se tomu hodně pomůže. Jenže to je taková paralelizace na strašně nízké úrovni, ne něco, co by ten program masivně změnilo (jestli to ale vůbec potřebujeme).
Určitě to nebude úplná revoluce co dělá paralelizaci automaticky, ale od CRAYE je tu  Chapel: https://chapel-lang.org/
Nějaké osobní zkušenosti s tímto jazykem (v oblasti HPC)?

P.T. Barnum

Re:Proč ten hype okolo Go?
« Odpověď #206 kdy: 31. 08. 2018, 14:17:19 »
"Programovací jazyky nejsou nijak složité."

C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.


Kit

Re:Proč ten hype okolo Go?
« Odpověď #207 kdy: 31. 08. 2018, 14:48:23 »
"Programovací jazyky nejsou nijak složité."

C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.

Dříve vývojáři utíkali od Fortranu k C asi proto, že se jim jevil příliš komplikovaný. Kdo chce jednoduchý jazyk, použije Lisp.

Bacsa

Re:Proč ten hype okolo Go?
« Odpověď #208 kdy: 31. 08. 2018, 15:09:08 »
"Programovací jazyky nejsou nijak složité."

C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.
Dříve vývojáři utíkali od Fortranu k C asi proto, že se jim jevil příliš komplikovaný. Kdo chce jednoduchý jazyk, použije Lisp.
Lisp je fajn, ale že by byl zrovna nejoblíbenější...

Kiwi

Re:Proč ten hype okolo Go?
« Odpověď #209 kdy: 31. 08. 2018, 15:11:13 »
"Programovací jazyky nejsou nijak složité."

C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.

Dříve vývojáři utíkali od Fortranu k C asi proto, že se jim jevil příliš komplikovaný. Kdo chce jednoduchý jazyk, použije Lisp.
Jako se latina rozšířila s Římskou říší a jejím okolí, tak se C rozšířilo s Unixem a po platformách, které se od něj nějak inspirovaly (DOS). Moc víc bych v tom nehledal. FORTRAN 77 rozhodně nijak zvlášť komplikovaný není (ani se tak nejeví).