Proč ten hype okolo Go?

Kit

Re:Proč ten hype okolo Go?
« Odpověď #210 kdy: 31. 08. 2018, 15:53:42 »
"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ší...

Jasně, místo Lispu se dnes používá Javascript, který se ho marně snaží dohonit.


mmm

Re:Proč ten hype okolo Go?
« Odpověď #211 kdy: 31. 08. 2018, 16:03:24 »
"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ší...

Jasně, místo Lispu se dnes používá Javascript, který se ho marně snaží dohonit.

v HPC zrovna moc ne.

Bacsa

Re:Proč ten hype okolo Go?
« Odpověď #212 kdy: 31. 08. 2018, 16:21:30 »
"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ší...
Jasně, místo Lispu se dnes používá Javascript, který se ho marně snaží dohonit.
Trakař Ferrari nedohoní  ;)

Re:Proč ten hype okolo Go?
« Odpověď #213 kdy: 31. 08. 2018, 17:53:48 »
Citace
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.

Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd.

Citace
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).

Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. Ty jazyky to nedělá automaticky, má konstrukce, kterým mu leccos naznačíte. Mají jednoduše konstrukce pro podporu paralellismu.

Jenže pak přišel "unix way", to jest všechno jednoduché, co nejjednodušší a co nejblibější. Začala éra programovacích jazyků, které tuto cesty převzaly: Programovací jazyk C, Java, dnešní jazyky. Ve skutečnosti se programovací jazyky spíše zhoršily než zlepšily.



Re:Proč ten hype okolo Go?
« Odpověď #214 kdy: 31. 08. 2018, 18:02:18 »
Citace
C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.

Což ovšem nic neříká o složitosti C++. Prostě je to dobře napsaný standard, který popisuje jak konstruovat překladač, jak mají fungovat konstrukce, a pak celou knihovnu C++. Standard C++ je napsaný konzistentně a dobře.

Naproti tomu máte velice špatně napsané standardy, jako je např. vše od W3C: HTML, CSS, XML, atd. Jsou to grafomanská díla blížící se rozsahem standardu C++, a přitom v nich není pospán ani základ. Často si dokonce jedna stránka odporuje druhé - a W3C i webařům je to zcela jedno.

Kdysi s tím byl dokonce problém. Každý browser si dělal HTML a CSS jinak. Ale vše bylo v souladu se standardy W3C. Když se W3C neuráčil ani popsat gramatiku HTML, ani popsat řešení chybných konstrukcí v HTML, tak si to mysely browsery domýšlet.

***

C++ je jednoduchý jazyk. Pokud se ho budete učit nazpaměť jako básničku, tak je složitý. Pokud namísto toho budete chápat jeho principy, tak je neuvěřitelně jednoduchý, konzistentní a logický. Každá vlastnost jazyka funguje všude, kde to má smysl, a funguje stejně.

Oproti tomu třeba PHP se nenaučíte nikdy. Žádná logika, konzistence, principy v tom jazyce nejsou. Každý kousek jazyk funguje jinak. Knihovna PHP je ještě horší zvěrstvo.


Re:Proč ten hype okolo Go?
« Odpověď #215 kdy: 31. 08. 2018, 18:08:00 »
Citace
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.

A dnes zase vědci utíkají (přesněji vždy používali) Fortran. Proč? Protože C bylo tak zjednodušeno na kost, že to vylučuje optimalizaci vědeckých výpočtů, které ve Fortranu běží sakra rychleji než v C. Navíc Fortran nijak složitý není.

To je právě vlastnost dnešních jednoduchých jazyků. Kompilátor nemá dostatek informace na optimalizaci.

Mimochodem, Lisp se kdysi velice úspěšně používal jako paralelní jazyk. Ne přímo Lisp, ale po přidání nějakých dalších typů a rozšíření to zvládl. Bývaly i Lispovské paralelní mašiny.

Xxxxxx

Re:Proč ten hype okolo Go?
« Odpověď #216 kdy: 31. 08. 2018, 18:10:16 »
Jako zivi me c++ a musim se stale vzdelavat, ale puvodni c mam furt radsi a kdybych mohl delat v go, tak bych byl opravdu stasten.

C++ to jsou vrtaky, kotoucove pily, soustruhy, hranovacky, hevery, lisy, frezy. C je kladivo, pila a svarecka. Php je pilnicek z manikury, lak na nehty, lak na vlasy, rtenka.

Re:Proč ten hype okolo Go?
« Odpověď #217 kdy: 31. 08. 2018, 18:22:41 »
Citace
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í).

Přesně tak to je. C je rozšířilo jako přílepek unixu. Jinak by nikdo ani netušil, že nějaké C existuje.

Na konci 20. století byl mezi ajťáky názor, že unix je nejlepší a dokonalý systém - a už není třeba nic nového vynalézat, zlepšovat, objevovat, evoluce je komplet hotova. Nic lepšího než unix se zkrátka už ve vesmíru nikdy neobjeví, to je jediná jistota v tomto drsném a nevlídném světě - tak přemýšleli ajťáci. A dodnes si to řada z nich ještě myslí.

No a s tím názorem o nekonečné dokonalosti unixu se začalo rozšiřovat (také jako nejlepší a dokonalé) všechny součásti unixu - tedy i C. Byť C se do unixu dostal spíše jako snaha vytvořit nástroj pro přenesení unixu na jiné platformy.

Dnes už ubývá lidí, co si myslí, že unix je totálně dokonalý. Dokonce si to nemyslí už ani tvůrce unixu Thompson, který  napsal i knihu, co by se dalo na unixu udělat lépe. A s tím jak padá božský status unixu a C, a tak se množí jazyky, které chtějí být lepší než C.

Dnes zase drží C spíše embedded sféra a hardware. Protože lecjaký mikrořadič a kdejaký čip je dnes programovatelný v C.

Jinak řečeno, Fortran nikdy komplikovaný jazyk nebyl. Na výpočty byl vždy propracovanější a lepší než C/C++. Navíc dává rychlejší binárky. Proto také řada matematických a vědeckých knihoven je napsaná ve Fortranu. A C/C++ nemá šanci se jim vyrovnat v efektivitě a rychlosti. A pokud máte výpočet v astrofyzice, který trvá 2 dny, pokud se napíše ve Fortranu nebo 4 dny pokud se napíše v C - je preference vědců poměrně jasná.



Xxxxxx

Re:Proč ten hype okolo Go?
« Odpověď #218 kdy: 31. 08. 2018, 18:26:39 »
Kam dale s os: plan9, planB, amoeba, L4 a nadstavby, hurd.

Re:Proč ten hype okolo Go?
« Odpověď #219 kdy: 31. 08. 2018, 18:31:26 »
Citace
Jako zivi me c++ a musim se stale vzdelavat, ale puvodni c mam furt radsi a kdybych mohl delat v go, tak bych byl opravdu stasten. C++ to jsou vrtaky, kotoucove pily, soustruhy, hranovacky, hevery, lisy, frezy. C je kladivo, pila a svarecka. Php je pilnicek z manikury, lak na nehty, lak na vlasy, rtenka.

Já bych už nikdy nechtěl programovat v C. Ten jazyk je prostě příliš starý, jednoduchý a osekaný. Neefektivní pro vývoj.

C++ beru spíše jako evoluci C než nový jazyk. C++ škrtlo pár ptákovin, které jsou v C (autopřetypování void * pointeru na cokoli). Přidalo věci, bez kterých se fakt efektivně programovat nedá: prostory jmen, třídy, lepší knihovnu, výjimky, atd. atd. atd.

Jako zpackanou příležitost beru to, že C++ nenapravilo největší vady v designu C. Jako je například naprosto zpackaný typový systém (zejména pro celočíselné typy), neexistenci pole přímo v jazyce C, rozlišování operátorů . a ->, konzistentní a integrální zanesení textových řetězců a Unicode přímo do jazyka, atd. atd. atd. A hlavně C++ zachovalo ptákovinu zvanou "hlavičkové soubory" jako v C.

Jinak řečeno, C/C++ jsou bratři. Jsou zhruba stejně zpackané. C++ alespoň dodalo další vlastnosti, které polovinu těch zpackanin učinilo snesitelnějšími.

Jinak relativní složitost syntaxe C++ je dána tím, že je to jazyk dělaný na rychlost. Jako takový potřebuje řadu klíčových slov, aby mohl tu rychlost realizovat.

Re:Proč ten hype okolo Go?
« Odpověď #220 kdy: 31. 08. 2018, 18:43:45 »
Citace
Kam dale s os: plan9, planB, amoeba, L4 a nadstavby, hurd.

Ano, nicméně v IT se po několik desetiletí vše dělí tak, že unix je konečná stanice vývoje a jediný dobrý princip operačního systému. Je tak trochu sarkastické, že unix neshodil nikdo jiný, než unixové firmy. Unix byl astronomicky drahý a začalo být finančně neúnosné jej pořizovat. Proto když přišel Microsoft s operačním systémem za cca $100, měl úspěch naprosto zaručen. Právě drahotou unixu se tento téměř sám zabil. Proč myslíte, že Linus Torvalds chtěl vyvinout unix zdarma? Kromě Rotschildů si totiž koupit unix nikdo nemohl dovolit. Unix by zemřel na chamtivost výrobců.

Nicméně je jasné, že mikrojádro je jasný směr. Mikrojádra mají mnohem lepší vlastnosti, a zejména bezpečnost a spolehlivost než monolitická jádra. Tam, kde hrozí průšvih, jako třeba v letadlech, raketách, apod. - nic jiného než mikrojádro nenajdete.




armabeton

Re:Proč ten hype okolo Go?
« Odpověď #221 kdy: 31. 08. 2018, 19:08:23 »
Citace
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.

Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd.

Citace
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).

Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. Ty jazyky to nedělá automaticky, má konstrukce, kterým mu leccos naznačíte. Mají jednoduše konstrukce pro podporu paralellismu.

Jenže pak přišel "unix way", to jest všechno jednoduché, co nejjednodušší a co nejblibější. Začala éra programovacích jazyků, které tuto cesty převzaly: Programovací jazyk C, Java, dnešní jazyky. Ve skutečnosti se programovací jazyky spíše zhoršily než zlepšily.

Na "No hoď příklad takového jazyka," odpovídáš "Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. ".

V oboru jsem o něco málo delší dobu a kromě Fortranu pro CRAYe (ten jsem viděl z dálky při portaci na levnější a méně výkonné železo) a pokusů s CM tady nic moc dalšího nebylo. Takže bude ten příklad? :-)

Re:Proč ten hype okolo Go?
« Odpověď #222 kdy: 31. 08. 2018, 19:15:55 »
Citace
Na "No hoď příklad takového jazyka," odpovídáš "Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. ".

A nad tím píši: "Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd."

armabeton

Re:Proč ten hype okolo Go?
« Odpověď #223 kdy: 31. 08. 2018, 19:50:42 »
Citace
Na "No hoď příklad takového jazyka," odpovídáš "Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. ".

A nad tím píši: "Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd."

takže slušná řádka=Ada? Chapel je starej 9 let, ne 20. To už spíš CAF ne?

Kiwi

Re:Proč ten hype okolo Go?
« Odpověď #224 kdy: 31. 08. 2018, 20:17:30 »
Citace
Kam dale s os: plan9, planB, amoeba, L4 a nadstavby, hurd.

Ano, nicméně v IT se po několik desetiletí vše dělí tak, že unix je konečná stanice vývoje a jediný dobrý princip operačního systému. Je tak trochu sarkastické, že unix neshodil nikdo jiný, než unixové firmy. Unix byl astronomicky drahý a začalo být finančně neúnosné jej pořizovat. Proto když přišel Microsoft s operačním systémem za cca $100, měl úspěch naprosto zaručen. Právě drahotou unixu se tento téměř sám zabil. Proč myslíte, že Linus Torvalds chtěl vyvinout unix zdarma? Kromě Rotschildů si totiž koupit unix nikdo nemohl dovolit. Unix by zemřel na chamtivost výrobců.

Nicméně je jasné, že mikrojádro je jasný směr. Mikrojádra mají mnohem lepší vlastnosti, a zejména bezpečnost a spolehlivost než monolitická jádra. Tam, kde hrozí průšvih, jako třeba v letadlech, raketách, apod. - nic jiného než mikrojádro nenajdete.
Unix byl ve své době, tj. na přelomu 60. a 70. let opravdu dobře a propracovaně udělaný systém. Tak dobře, že spousta jeho stereotypů je tak zažitá, že si současní vývojáři ani nedokážou představit věci jinak, na jiných principech. Dokud někdo nebude schopen z těch vyjetých kolejí vyjet jiným směrem, myslet out-of-the-box, tak bude Unix opravdu konečným článkem evoluce. Na druhou stranu si nemyslím, že by Unix byl zas tak geniální, že by nebylo možné ten 50 let starý design nahradit zbrusu novým. Spíš je ostuda, že se to asi ještě nikomu  nepodařilo. Skoro by se chtělo říci, že pokud jde o počítače, tak vše podstatné vzniklo převážně v 60. letech +-5 let.