Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: oss 25. 08. 2018, 08:28:57

Název: Proč ten hype okolo Go?
Přispěvatel: oss 25. 08. 2018, 08:28:57
Zaujima ma, co vsteci tie holi wariors vidia na Go?
V podlsdnej dobe mam pocit, ze odpověď na základní otázku života, vesmíru a vůbec je Go (nedavo to bol este React - na otazku cim enkodovat video som dostal odpoved  sprav to v Reacte).

Ja chapem, ze je super, ze je to jedna binarka, ze to ma HTTP api, ze to vie robit s TCP, ze sa da lahko robit cross kompilacia. Ale to je tak asi vsteko. A okrem toho to zvlada aj plno inych jazkov a ani sa neda povedat, ze by bol vykonnejsi ako alternativy.

Ten jazyk je vyslovene hnusny, proceduralny na urvni Pascalu. Neda sa v nom normalne pisat infrastrukturny kod, lebo nema ani makra ani generiku, resoursy treba embedovat ako string, s ostrovania chyb ide cloveka porazit, balicky sa nerstoruju automaticky a ani nemaju verzie... ved te jazyk nema ani overloading funkcii.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 08:52:10
Go neni vubec spatny, kdyz to porovnam s Javou tak start HTTP serveru s jednoduchym restem je okamžitý (nevím kolik to "okamžitý" je, řekněme pod 50ms) a v paměti to vyžere jen asi 2 MB. U Javy se ani do spuštěného Tomcata kde dělám re-deploy nedostanu pod 750ms a i embedded jetty vyžere přes 80MB paměti. Jo a je to okmažitě zkompilované, oproti java buildům.

Dále já vycházím z toho, že samotné C není vůbec špatné, Golang je vylepšené C, z moji perspektivy dokáže hlavně to, že umí reflexi, což neumí ani C++. A má automatickou správu paměti.

Dále svou jednoduchostí odrazuje frikulínsko-píčusácké vývojaře, kteří vymýšlí shity typu Hibernate nebo píšou shity typu Jersey a různé další podobné pomalé píčoviny, o kterých jednou všem dojde, že to jsou píčoviny. Navíc jsem zastáncem názoru, že na výkonosti záleží - takové ty kecy a kydy typu že program může vyžrat kolik chce a být pomalý, protože to "stačí", vůbec neuznávám - viděl jsem to několikrát v praxi, jak jsou javovské enviromenty kde běží hromada různých service, pomalé sráče. Samozřejmě to co říkám o Javě bude stejně platit o .NET a dvojnásobně platit o shitu typu Node.js. Se zdroji se nesmí plýtvat, pak to v praxi stojí za hovno.

Jinak v Go nedělám, protože bude trvat ještě mnoho let, než lidi vyzrajou a nasadí se to (a nebo něco obdobného) i do korporátní sféry, kde to nahradí Javu. Ale to musí ještě v mezičase chcípnout staré Hibernate struktury, Oracle DB, a podobné shity. A nakonec kdoví, jestli to není celé jen utopie, protože když na projekt naskáče hromada cvičených opic a nikoliv vývojářů, tak by si tu architekturu stejně zmrvili.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Oooo 25. 08. 2018, 08:55:15
Ja myslim, ze v jednoduchosti je sila a autori Go maji C zmaknute
a vedeli co dat pryc a co pridat.
Go ma vse co potrebuje, a zbytecne kudrlinky by byly zbytecne.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: nudar 25. 08. 2018, 09:25:26
Go neni vubec spatny, kdyz to porovnam s Javou tak start HTTP serveru s jednoduchym restem je okamžitý (nevím kolik to "okamžitý" je, řekněme pod 50ms) a v paměti to vyžere jen asi 2 MB. U Javy se ani do spuštěného Tomcata kde dělám re-deploy nedostanu pod 750ms a i embedded jetty vyžere přes 80MB paměti. Jo a je to okmažitě zkompilované, oproti java buildům.

.......
Jo a start HTTP serveru je metrika ktera je snad ta nejmin relevantni, pouzitelna a zajimava a vpodstate vubec nikoho nezajima. ta pamet ti je dnes taky fuk. jsou to virtualni duvody.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 25. 08. 2018, 09:35:56
Go v korporatnej sfere? Ved v tom sa neda pisat bussines logika, pretoze jazyku chybju rozumne konstrukcie na to aby sa dala pisat efektivne.

Dalej na jazyk co sa tvari tak efektivne mi chyba explicitne uvolnenie pamete.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Jan Forman 25. 08. 2018, 09:41:08
Někdy je to jedno, pokud nějaký šrot pustím jednou za týden stylem "udělej tohle v noci" tak to tolik nevadí. Pokud ten šrot má běžet nonstop a něco dělat - už je to zásadní problém.
Často si ale lidi myslí, že to pustí do nějakého super clusteru a poběží to rychleji :) což je vtipné, když ty hnoje často používají jedno vlákno a od sebe to oddělit nejde (ale to jim nikdo nevysvětlí) prostě doufají.

Jinak start a replikace je velmi důležitý parametr spotřeba RAM samozřejmě také i když tu někdo bude blekotat, že je to jedno.
Někdy se směju, když mi přijde nějaký matlal a blekotá doslova "máme nejmodernější windows a microsoft sql a ten hardware co jste nám dali nestíhá" a jako fakt to téměř nic nedělá.
Tak si říkám kluci jako dobrý tak před dvaceti lety.
"Chceme alespoň 32core a 64GB RAM, SSD storage tam už je - tak ještě rychlejší". Prostě idioti, pochopitelně, když člověk promyslí jak to mají spatlané to prostě nemůže fungovat a kdyby měli alespoň něco v hlavě můžou se dostat na stonásobky jejich rychlosti. Pochopitelně by stačil klidně 13 let starý křáp.

Go tedy neznám, spíš mě bude brzy zajímat https://ballerina.io

Dále svou jednoduchostí odrazuje frikulínsko-píčusácké vývojaře, kteří vymýšlí shity typu Hibernate nebo píšou shity typu Jersey a různé další podobné pomalé píčoviny, o kterých jednou všem dojde, že to jsou píčoviny. Navíc jsem zastáncem názoru, že na výkonosti záleží - takové ty kecy a kydy typu že program může vyžrat kolik chce a být pomalý, protože to "stačí", vůbec neuznávám - viděl jsem to několikrát v praxi, jak jsou javovské enviromenty kde běží hromada různých service, pomalé sráče. Samozřejmě to co říkám o Javě bude stejně platit o .NET a dvojnásobně platit o shitu typu Node.js. Se zdroji se nesmí plýtvat, pak to v praxi stojí za hovno.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Radovan. 25. 08. 2018, 09:48:26
Ten jazyk je vyslovene hnusny, proceduralny na urvni Pascalu...
Ano, a to je právě jeho výhoda. Dementi, neschopní naučit se pár základních pravidel, kteří bez automatických oprav a doplňování udělají tucet hrubek v každé větě, na něm okamžitě odpadnou, takže Go nemůže používat kdejaký kodérský odpad vyžívající se v Javě a podobných zmetcích.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 25. 08. 2018, 09:53:43
Start aplikace me zajima asi stejne jako jestli ma aplikace 20 nebo 100mb. Nezajima me to. Reseni bezi v HA, kdyz vypadne kterykoliv node tak je mi jedno jestli se spusti za 10s nebo za 10min.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dev 25. 08. 2018, 10:06:57
Protože hloupí lidé nemají na komplexnost Javy, tak potřebují jednodušší jazyky, které dokáží používat. Pokud by Go byl tak úžasný, tak se už na něco pořádného používá. Zatím se o něm jen mluví a dělají v něm nějaké dětské projekty. Tak to i zůstane a za pár let bude někde na úrovni Perlu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 10:09:22
Go neni vubec spatny, kdyz to porovnam s Javou tak start HTTP serveru s jednoduchym restem je okamžitý (nevím kolik to "okamžitý" je, řekněme pod 50ms) a v paměti to vyžere jen asi 2 MB. U Javy se ani do spuštěného Tomcata kde dělám re-deploy nedostanu pod 750ms a i embedded jetty vyžere přes 80MB paměti. Jo a je to okmažitě zkompilované, oproti java buildům.

.......
Jo a start HTTP serveru je metrika ktera je snad ta nejmin relevantni, pouzitelna a zajimava a vpodstate vubec nikoho nezajima. ta pamet ti je dnes taky fuk. jsou to virtualni duvody.

Ty a Kokot1, jak dpč. nejmíň relevantní, tobě příjde nejmíň relevantní, když se ti spouští Java aplikace ve Springu 20 vteřin? Když nemůžeš svobodně psát integrační testy a musíš pořád všechno mokovat jako blbec, protože Spring ti IT startuje 20 vteřin pokaždé, když si ho spustíš? To ti přijde nejmíň relevantní? Tak to o tom buďto víš kulové, a nebo jsi dement, protože normální člověk chce, aby se mu s tím dobře pracovalo, a 20s deploye, dlouhé buildy a vyžraných několik GB RAM mezi to rozhodně nepatří.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Oooo 25. 08. 2018, 10:11:06
Protože hloupí lidé nemají na komplexnost Javy, tak potřebují jednodušší jazyky, které dokáží používat. Pokud by Go byl tak úžasný, tak se už na něco pořádného používá. Zatím se o něm jen mluví a dělají v něm nějaké dětské projekty. Tak to i zůstane a za pár let bude někde na úrovni Perlu.

Docker, kubernetes
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 25. 08. 2018, 10:13:24
Nic ve zlym anonyme, ale pokud kodis tak, ze po kazde zmene v kodu delas deploy tak jdi radsi do albertu za kasu, pujde ti to lip nez programovani. Delka startu aplikace je pro produkci nepodstatna pokud jde o HA reseni.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 10:18:15
Nic ve zlym anonyme, ale pokud kodis tak, ze po kazde zmene v kodu delas deploy tak jdi radsi do albertu za kasu, pujde ti to lip nez programovani. Delka startu aplikace je pro produkci nepodstatna pokud jde o HA reseni.

Za kasu do Albertu běž raději ty, když nechápeš souvislost mezi délkou deploye, množstvím spuštěného hnoje pod tím, a délkou spouštění integračních testů, které naopak spouštíš velice často. A už na tebe raději nereguju, protože ty zřejmě ani nejsi vývojář a víš o tom kulové. Normálnímu člověku stačí říct, že obyčejný HTTP server startuje vteřinu, a v ten moment je mu jasné, jaký to je shit.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dev 25. 08. 2018, 10:18:57
Protože hloupí lidé nemají na komplexnost Javy, tak potřebují jednodušší jazyky, které dokáží používat. Pokud by Go byl tak úžasný, tak se už na něco pořádného používá. Zatím se o něm jen mluví a dělají v něm nějaké dětské projekty. Tak to i zůstane a za pár let bude někde na úrovni Perlu.

Docker, kubernetes

Přesně, jak píšu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 10:20:15
A to prosím 9 z 10 vývojářů v Javě ani nevědí, co to je Hotswap, ikdyž na to mají v IDEčku tlačítko, které ani po letech používání neví, k čemu vlastně je. Tak mi tady potom vykládejte, jak je Go pro blečky, kteří potřebují jednodušší jazyk, protože ten by zřejmě potřebovalo 90% vývojářů.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 25. 08. 2018, 10:24:15
Anonyme, chapu ze mas vse na svem notasi, ale to neni bezny pristup k praci. Nemate build prostredi? Nemate prostredi pro testy? Tak pak pis v cem chces, hlavne ze to tobe bude startovat za 3 sekundy. ;) Jak to kurwa ti nasi lopataci zvladaji, kdyz vetsina aplikaci startuje do 5 minut a ne za sekundu jako tve Hello World? Aha, umi pracovat efektivne...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: m. 25. 08. 2018, 11:03:50
Protože hloupí lidé nemají na komplexnost Javy, tak potřebují jednodušší jazyky, které dokáží používat. Pokud by Go byl tak úžasný, tak se už na něco pořádného používá. Zatím se o něm jen mluví a dělají v něm nějaké dětské projekty. Tak to i zůstane a za pár let bude někde na úrovni Perlu.

Tvuj rozhled je zalostny.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 11:05:51
Anonyme, chapu ze mas vse na svem notasi, ale to neni bezny pristup k praci. Nemate build prostredi? Nemate prostredi pro testy? Tak pak pis v cem chces, hlavne ze to tobe bude startovat za 3 sekundy. ;) Jak to kurwa ti nasi lopataci zvladaji, kdyz vetsina aplikaci startuje do 5 minut a ne za sekundu jako tve Hello World? Aha, umi pracovat efektivne...

Já nepíšu hello world, dělám už na 3. velkém SOA enviromentu a na 4. plnotučném projektu. A jak to ti vaši lopaťáci dělají sám nevíš, tak proč nejsi zticha a pleteš se ústavičně do vývojářských diskuzí, když tomu nerozumíš. Ty nejsi schopný vůbec říct, jak efektivně pracují, průměrná korporátní efektivita je právěže dost slabá. To že zákazníky máte neznamená, že to děláte dobře, ale konkurenceschopně. A tato diskuze není o konkurenceschopnosti a o tom, jak být dostatečně průměrný na trhu, tady diskutují vývojáři o programovaích jazycích a platformách. To je jako kdyby jsi přišel na forum o autech, kde by se diskutovalo o tom, jaká je oktavka shit, řešily se tam technické detaily, a tys tam napsal, že s ní neumí efektivně jezdit, protože vaši lopaťáci s ní vydělávají peníze a nemají problém.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dev 25. 08. 2018, 11:12:24
Anonyme, chapu ze mas vse na svem notasi, ale to neni bezny pristup k praci. Nemate build prostredi? Nemate prostredi pro testy? Tak pak pis v cem chces, hlavne ze to tobe bude startovat za 3 sekundy. ;) Jak to kurwa ti nasi lopataci zvladaji, kdyz vetsina aplikaci startuje do 5 minut a ne za sekundu jako tve Hello World? Aha, umi pracovat efektivne...

Já nepíšu hello world, dělám už na 3. velkém SOA enviromentu a na 4. plnotučném projektu. A jak to ti vaši lopaťáci dělají sám nevíš, tak proč nejsi zticha a pleteš se ústavičně do vývojářských diskuzí, když tomu nerozumíš. Ty nejsi schopný vůbec říct, jak efektivně pracují, průměrná korporátní efektivita je právěže dost slabá. To že zákazníky máte neznamená, že to děláte dobře, ale konkurenceschopně. A tato diskuze není o konkurenceschopnosti a o tom, jak být dostatečně průměrný na trhu, tady diskutují vývojáři o programovaích jazycích a platformách. To je jako kdyby jsi přišel na forum o autech, kde by se diskutovalo o tom, jaká je oktavka shit, řešily se tam technické detaily, a tys tam napsal, že s ní neumí efektivně jezdit, protože vaši lopaťáci s ní vydělávají peníze a nemají problém.

Kokot1 je v pohodě. Ty to máš spíše tak, že jsi přišel na fórum o autech, ale máš jen motorku. To je skoro stejný, ne? Oni mají ty těžký krávy a ty to klidně vyneseš do prvního patra do bytu. Jak to ti blbci udělají? Až budeš umět vyvíjet, tak pochopíš, co pan Kokot1 radí. Zatím se v tom plácáš a děláš korporátní sračky, protože SOA se nikde jinde nikdy nepoužívala.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 11:18:47
Teď mám třeba projekt, který je čistě backendový. Integrační test startuje tak 30 vteřin a než se udělají všechny testy, tak to trvá 5 minut. Ať už je to hodně nebo málo, tak to dělá v podstatě směšné hovno a mohlo by to být 100x rychlejší. Samozřejmě ne v Javě se Springem, to je no way. Ale s Go by to šlo. Vlastně Go je vyjímečný v tom, že je rychlý, malý a podporuje reflexi, což je velice důležité u takových korporátních aplikací, kde potřebuješ mapovat různé formáty na objekty - nevede to ke zmnožování informací protože se to dá dělat automatizovaně.

Kdyby ten projekt byl napsaný úplně super skvěle a startoval by třeba jen 1 vteřinu, tak jsem přesvědčen, že by vznikl nějaký synergický efekt, který by v důsledku vedl ke kvalitnějšímu kódu (byla by větší radost s tím pracovat) a ke značně menším nákladům na vývoj a údržbu.

Java je prostě jako jazyk takový soudobý korporátní kompromis mezi vším možným, ale to neznamená, že to je super a není se kam posouvat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 11:20:54
Anonyme, chapu ze mas vse na svem notasi, ale to neni bezny pristup k praci. Nemate build prostredi? Nemate prostredi pro testy? Tak pak pis v cem chces, hlavne ze to tobe bude startovat za 3 sekundy. ;) Jak to kurwa ti nasi lopataci zvladaji, kdyz vetsina aplikaci startuje do 5 minut a ne za sekundu jako tve Hello World? Aha, umi pracovat efektivne...

Já nepíšu hello world, dělám už na 3. velkém SOA enviromentu a na 4. plnotučném projektu. A jak to ti vaši lopaťáci dělají sám nevíš, tak proč nejsi zticha a pleteš se ústavičně do vývojářských diskuzí, když tomu nerozumíš. Ty nejsi schopný vůbec říct, jak efektivně pracují, průměrná korporátní efektivita je právěže dost slabá. To že zákazníky máte neznamená, že to děláte dobře, ale konkurenceschopně. A tato diskuze není o konkurenceschopnosti a o tom, jak být dostatečně průměrný na trhu, tady diskutují vývojáři o programovaích jazycích a platformách. To je jako kdyby jsi přišel na forum o autech, kde by se diskutovalo o tom, jaká je oktavka shit, řešily se tam technické detaily, a tys tam napsal, že s ní neumí efektivně jezdit, protože vaši lopaťáci s ní vydělávají peníze a nemají problém.

Kokot1 je v pohodě. Ty to máš spíše tak, že jsi přišel na fórum o autech, ale máš jen motorku. To je skoro stejný, ne? Oni mají ty těžký krávy a ty to klidně vyneseš do prvního patra do bytu. Jak to ti blbci udělají? Až budeš umět vyvíjet, tak pochopíš, co pan Kokot1 radí. Zatím se v tom plácáš a děláš korporátní sračky, protože SOA se nikde jinde nikdy nepoužívala.

8 z 10 nabídek práce v Javě je SOA, ty inteligente ;)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 11:27:10
Jo a co se týče toho deploye, tak kdyby Kokot vyvíjel, tak ví, že pokud má ta komponenta svůj frontend, tak když napíšeš nějakou novou funkcionalitu, tak se bez deploye neobejdeš, protože si to musíš klikáním otestovat - což s jednotkými testy nedáš. A pokudti ta aplikace startuje 25 vteřin a nevíš ani k čemu je hotswap, tak se z toho posereš. A ano, budeš to deployovat zas a znovu, dokud to nebude dělat to co to dělat má.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dev 25. 08. 2018, 11:29:13
Anonyme, chapu ze mas vse na svem notasi, ale to neni bezny pristup k praci. Nemate build prostredi? Nemate prostredi pro testy? Tak pak pis v cem chces, hlavne ze to tobe bude startovat za 3 sekundy. ;) Jak to kurwa ti nasi lopataci zvladaji, kdyz vetsina aplikaci startuje do 5 minut a ne za sekundu jako tve Hello World? Aha, umi pracovat efektivne...

Já nepíšu hello world, dělám už na 3. velkém SOA enviromentu a na 4. plnotučném projektu. A jak to ti vaši lopaťáci dělají sám nevíš, tak proč nejsi zticha a pleteš se ústavičně do vývojářských diskuzí, když tomu nerozumíš. Ty nejsi schopný vůbec říct, jak efektivně pracují, průměrná korporátní efektivita je právěže dost slabá. To že zákazníky máte neznamená, že to děláte dobře, ale konkurenceschopně. A tato diskuze není o konkurenceschopnosti a o tom, jak být dostatečně průměrný na trhu, tady diskutují vývojáři o programovaích jazycích a platformách. To je jako kdyby jsi přišel na forum o autech, kde by se diskutovalo o tom, jaká je oktavka shit, řešily se tam technické detaily, a tys tam napsal, že s ní neumí efektivně jezdit, protože vaši lopaťáci s ní vydělávají peníze a nemají problém.

Kokot1 je v pohodě. Ty to máš spíše tak, že jsi přišel na fórum o autech, ale máš jen motorku. To je skoro stejný, ne? Oni mají ty těžký krávy a ty to klidně vyneseš do prvního patra do bytu. Jak to ti blbci udělají? Až budeš umět vyvíjet, tak pochopíš, co pan Kokot1 radí. Zatím se v tom plácáš a děláš korporátní sračky, protože SOA se nikde jinde nikdy nepoužívala.

8 z 10 nabídek práce v Javě je SOA, ty inteligente ;)

Ano, 8 z 10 je u nás korporátní odpad, který nemá s Javou nic moc společného. Chceš dělat odpad? Tvůj problém. Na špičkové projekty ale nepotřebuješ sranda jazyky jako Go, když máš Javu. Najít si odpadní práci a pak nadávat na jazyk? To je jako se divit, že máš v práci jen blbečky ;D
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 25. 08. 2018, 11:38:52
Dev, anonym to nepochopi, on dela stylem “zmenim tu nazev tlacitka a musim to deployovat a odtestovat”. Je zbytecne mu rikat neco o build environment, on ma pocit ze jeho notas je dostatecny build environment a ze jeho jediny problem je java kterou by rad nahradil za go protoze mu dlouho trva start aplikace. Zadnou predstavu o procesech, postupech, proste presunul se z php sracek do jinych sracek a pokracuje v tom samem lopateni sracek.  ::)
Anonyme, go te spasi, vyresi vsechny tve problemy.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: posun 25. 08. 2018, 11:40:55
co se tyka Javy, rozhodne tu nejaky posun je ;)

https://www.aspera.com/en/blog/oracle-will-charge-for-java-starting-in-2019/ (https://www.aspera.com/en/blog/oracle-will-charge-for-java-starting-in-2019/)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 25. 08. 2018, 11:44:56
Dev, anonym to nepochopi, on dela stylem “zmenim tu nazev tlacitka a musim to deployovat a odtestovat”. Je zbytecne mu rikat neco o build environment, on ma pocit ze jeho notas je dostatecny build environment a ze jeho jediny problem je java kterou by rad nahradil za go protoze mu dlouho trva start aplikace. Zadnou predstavu o procesech, postupech, proste presunul se z php sracek do jinych sracek a pokracuje v tom samem lopateni sracek.  ::)
Anonyme, go te spasi, vyresi vsechny tve problemy.

Jsem rád že sis našel nového kamaráda, "dev" bude jistě tvůj dobrý společník, protože je dost inteligentní na to, aby mohl programovat v Javě, namísto nějakého Go - jako ty. Můžete spolu naprogramovat třeba ty včelí úly.

  :o  ::) :D
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 25. 08. 2018, 11:59:30
Zaujima ma, co vsteci tie holi wariors vidia na Go?
Nepiš anglicky, když ani neumíš psát bez chyb v rodném jazyce, “holý válečníku”  :P
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 25. 08. 2018, 12:41:38
Go je defacto pokusem o vylepseni C, ktere pridava funkcionalitu z vyssich jazyku levnym zpusobem.
Gc je velice lehky, prakticky neobtezuje.
Channely a korutiny elegantne resi threading bez nutnosti sloziteho syncovani kontroly pro thread safe
Modul funkci s pristupvymi pravy pres velke/male prvni pismeno funkce zajisti rozumnou encapsulaci.
Kompilace bleskov, start nativniho exace taky.
Multiplatformni.
Plna integrace s legacy C kodem, hromada GO projektu na Githubu jsou jenom wrappery nad C.
Maven like ekosystem postaveny kolem githubu

Vynikajici pro microservices, doporucuju vsude, kde je Jawa prilis tezkopadna.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 25. 08. 2018, 12:44:32
Zaujima ma, co vsteci tie holi wariors vidia na Go?
Nepiš anglicky, když ani neumíš psát bez chyb v rodném jazyce, “holý válečníku”  :P
Cotakto sa vyjadrit aspon raz k teme?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 25. 08. 2018, 12:45:57
Go je defacto pokusem o vylepseni C, ktere pridava funkcionalitu z vyssich jazyku levnym zpusobem.
Gc je velice lehky, prakticky neobtezuje.
Channely a korutiny elegantne resi threading bez nutnosti sloziteho syncovani kontroly pro thread safe
Modul funkci s pristupvymi pravy pres velke/male prvni pismeno funkce zajisti rozumnou encapsulaci.
Kompilace bleskov, start nativniho exace taky.
Multiplatformni.
Plna integrace s legacy C kodem, hromada GO projektu na Githubu jsou jenom wrappery nad C.
Maven like ekosystem postaveny kolem githubu

Vynikajici pro microservices, doporucuju vsude, kde je Jawa prilis tezkopadna.
Az na to,ze akonahle zacnes mixovat Go s C, stratil si cross kompilaciu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondrej Nemecek 25. 08. 2018, 12:57:20
Otázka je, co se s Go stane, až za sebou bude mít stejnou historii jako java. IMHO jediná relevantní metrika inovativních cool projektů.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: jouda 25. 08. 2018, 13:32:20
Start aplikace me zajima asi stejne jako jestli ma aplikace 20 nebo 100mb. Nezajima me to. Reseni bezi v HA, kdyz vypadne kterykoliv node tak je mi jedno jestli se spusti za 10s nebo za 10min.
Tak HA nepomůže, když tam někdo nadeployuje nějaký nesmysl (fajn, selhal testing, ale stane se) a musí se restartovat všechno. Jestli je to 50ms nebo 30s je fuk, ale těch 10minut je dost za hranou.

To samé paměť. Jestli si to vezme 10MB nebo 8GB je celkem fuk, co je problém kolik to sežere na 1 connection. Je docela ostuda, když se dá slavná aplikace na 8 frontendech usmažit přes jedno 2G připojení prostě proto, že to vyžere všechnu paměť, a musí se složitě vymejšlet na F5ce před tím jak tu zhůvěřilost aspoň trochu ochránit.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: PCnity 25. 08. 2018, 13:34:12
Hype okolo Golangu je zcasti prave jeho jednoduchost... Ja nie som dev a Golang mam rad. Nestaci bash? Golang. Vyuzivam minimum fn, ale bez problemov si spravim mini http srv aj s json api.
Je dost mozne ze nosim drevo do lesa, ale Golang mi ako sysadminovi dava flexibilitu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 25. 08. 2018, 14:30:59
Go je defacto pokusem o vylepseni C, ktere pridava funkcionalitu z vyssich jazyku levnym zpusobem.
Gc je velice lehky, prakticky neobtezuje.
Channely a korutiny elegantne resi threading bez nutnosti sloziteho syncovani kontroly pro thread safe
Modul funkci s pristupvymi pravy pres velke/male prvni pismeno funkce zajisti rozumnou encapsulaci.
Kompilace bleskov, start nativniho exace taky.
Multiplatformni.
Plna integrace s legacy C kodem, hromada GO projektu na Githubu jsou jenom wrappery nad C.
Maven like ekosystem postaveny kolem githubu

Vynikajici pro microservices, doporucuju vsude, kde je Jawa prilis tezkopadna.
Az na to,ze akonahle zacnes mixovat Go s C, stratil si cross kompilaciu.

Ne uplne, go s timhle pocita, mas vespod schovane treba uplne nezavisle C knihovny, pouzije se spravna podle.platformy.
Hralnjsem si nedavno s GO knihovnou, co dovede tipat obrazovky, implementace pro linux, win, masox, uplne jine systemove volani a navrchu jedna multiplatform go knihovna

https://golang.org/cmd/cgo/
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kapes 25. 08. 2018, 14:58:13
Lebo je to primitvne.

Vyvojari davaju prednost primitivnym veciam pred komplexnymi aj ked vo vysledku su komplexne veci castokrat jednoduchsie a usetria kopu roboty len si o tom treba nieco precitat. Vyvojari ale odmietaju stracat cas vzdelavanim ved naco nejaka teoria? hlavne ze je to IN.

V Go mozes po par hodinach bez rozmyslu lepit kod metodou copy paste po kazdej zmene spustit appku a ak to nejakym zazrakom funguje tak mas hotovo. Je to take PHPcko 21. storocia. A keby si nahodou nieco nevedel stackoverflow pozna odpoved na vsetko staci pouzivat magicke skratky ctrl+c a ctrl+v namiesto mozgu.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 25. 08. 2018, 15:35:17
Lebo je to primitvne.

Vyvojari davaju prednost primitivnym veciam pred komplexnymi aj ked vo vysledku su komplexne veci castokrat jednoduchsie a usetria kopu roboty len si o tom treba nieco precitat. Vyvojari ale odmietaju stracat cas vzdelavanim ved naco nejaka teoria? hlavne ze je to IN.

V Go mozes po par hodinach bez rozmyslu lepit kod metodou copy paste po kazdej zmene spustit appku a ak to nejakym zazrakom funguje tak mas hotovo. Je to take PHPcko 21. storocia. A keby si nahodou nieco nevedel stackoverflow pozna odpoved na vsetko staci pouzivat magicke skratky ctrl+c a ctrl+v namiesto mozgu.

Aj si vtom GOlangu nieco naprogramoval?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 25. 08. 2018, 16:22:14
Dovolim si souhlasit s kapes.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: mmm 25. 08. 2018, 16:59:55
proč hipsteři jezdí na kole bez brzd? Čisté pozerství. Odmítání pokroku.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: tt 25. 08. 2018, 17:44:46
Zaspali ste dobu. Go uz nema hype. Mal tak pred rokom - https://www.tiobe.com/tiobe-index/go/.
Hipsteri so stetcovym ucesom a s fixie bicyklami bez brzd uz ficia na Ruste momentalne. Pretoze Rust precika Golang v rychlosti - https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/rust-go.html :-D

Plebs (kde sa zaratavam aj ja) pouziva Golang hlavne na rychle vytvorenie svojich (http) cloud friendly microservisov (priklad https://www.instana.com/media/wheel-of-doom-highlighted.png).
Stare Java korytnacky zase radi pouzivaju Javu na svoje "enterprise" makroservisy, ktore povacsine skaluju iba vertikalne a nie horizontalne.

Kazdy mame to svoje :-)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 25. 08. 2018, 18:57:09
Lebo je to primitvne.

Vyvojari davaju prednost primitivnym veciam pred komplexnymi aj ked vo vysledku su komplexne veci castokrat jednoduchsie a usetria kopu roboty len si o tom treba nieco precitat. Vyvojari ale odmietaju stracat cas vzdelavanim ved naco nejaka teoria? hlavne ze je to IN.

V Go mozes po par hodinach bez rozmyslu lepit kod metodou copy paste po kazdej zmene spustit appku a ak to nejakym zazrakom funguje tak mas hotovo. Je to take PHPcko 21. storocia. A keby si nahodou nieco nevedel stackoverflow pozna odpoved na vsetko staci pouzivat magicke skratky ctrl+c a ctrl+v namiesto mozgu.

Svojim sposobom je primitivne aj C, ved skoro vsetko je postavene iba na ukazovateloch, a tu zrazu... Narazam na to, ze aku metriku pouzivas k vyjadreniu sa k jazyku... Dost by ma zaujimalo co si take v Golangu naprogramoval. Nejake tie projekty v Go https://github.com/avelino/awesome-go
Název: Re:Proč ten hype okolo Go?
Přispěvatel: tralala 25. 08. 2018, 21:45:47
Teď mám třeba projekt, který je čistě backendový. Integrační test startuje tak 30 vteřin a než se udělají všechny testy, tak to trvá 5 minut. Ať už je to hodně nebo málo, tak to dělá v podstatě směšné hovno a mohlo by to být 100x rychlejší.

Pretoze to nevies robit, preto to trva tak dlho. Testy testuju tak dlho preto pretoze v kazdej test class-e sa stavim startujes cely ioc kontajner. Naco by si to robil? Ved ked servisy pises ako beany tak si ich poskladas jak lego bez toho aby ti to tam musel niekto injektovat, na co ten kontajner potrebujes, a preto to trva tak strasne dlho. Staci ti pouzit cisty JUnit, na komplexnejsie veci je Arquillian kde si warko poskladas rovno v teste cez Shrinkwrap a deploynes do to embedded kontajnera .... Zijes v 90tych rokoch chlapce.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: pokladač středníků 26. 08. 2018, 12:45:48
Nic ve zlym anonyme, ale pokud kodis tak, ze po kazde zmene v kodu delas deploy tak jdi radsi do albertu za kasu, pujde ti to lip nez programovani. Delka startu aplikace je pro produkci nepodstatna pokud jde o HA reseni.
Co je HA?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 26. 08. 2018, 12:55:12
Lebo je to primitvne.

Vyvojari davaju prednost primitivnym veciam pred komplexnymi aj ked vo vysledku su komplexne veci castokrat jednoduchsie a usetria kopu roboty len si o tom treba nieco precitat. Vyvojari ale odmietaju stracat cas vzdelavanim ved naco nejaka teoria? hlavne ze je to IN.

V Go mozes po par hodinach bez rozmyslu lepit kod metodou copy paste po kazdej zmene spustit appku a ak to nejakym zazrakom funguje tak mas hotovo. Je to take PHPcko 21. storocia. A keby si nahodou nieco nevedel stackoverflow pozna odpoved na vsetko staci pouzivat magicke skratky ctrl+c a ctrl+v namiesto mozgu.

To jsou zase blabolive kecy.
GO je urceno jako modernejsi nahrada C, ktera prebira prvky z vyssich jazyku, a to splnuje skvele.
A treba korutiny nema Java dodnes, teprve se planuji.

Kdyz potrebuju otevrit konzervu, pouziju svycarsky nuz, kdyz potrebuju vytezit povrchovy dul, pouziju rypadlo. Jde sice tezit uhli nozem a otvirat konzervy rypadlem, efektivni to moc neni.

Jazyk se vyviji a je zastitovan Googlem

Existuje k tomu ziva komunita, hromady ready to use knihoven na githubu.
Hromada zajimaveho softu, namatkou Kubernetes, Gitea, NATS, Prometheus

Go je jednoduchy jazyk, protoze je urcen na jednoduche veci.
Kdyz potrebuju server pro zabezpecenou B2B komunikaci s implementovanou WS-Security, nasadim mavenem Spring Boot s Apache CXF boot starterem.
Kdyz potrebuju sbirat udaje z tisicu IOT krabicek (domovnich elektromeru) - nasadim GO.

Killer featura GO jsou channely a gorutiny, aneb jak lusknutim prstu vyrobit masivne paralelni aplikaci.
Velka nevyhoda v porovnani s Javou jsou Collections, s Javou se to neda merit ani omylem, stream zpracovany chybi uplne.

Osobne doporucu nasadit GO tam, kde se puvodne pouzivalo C. GO ma GC a odpada hromada rezie s memory managemente a stale je vysledkem lehky exac.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 26. 08. 2018, 14:01:39
Pokladac stredniku, HA = High Availability. Google napovi, obvykle vicero nodu v clustru kde vypadek jednoho nodu neovlyvni dostupnost sluzby.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 20:50:25
V poslednim roce jsem si s GO pohraval, kamarad se me ho snazil nasejlovat, tak jsem si zjistit vice. Porovnavam s Java, kterou se zivim vice nez deset let a pythonem, do ktereho jsem byl na par let dostrkan na vedlejsak.
GO:

1. nelze mu uprit jistou miru elegance, ktera je apriori dana vsem nadanym zacatecnikum

2. balickovaci system je strasne "hura" proste odkaz na github, bez verze a pak si to panacku pores sam, tzn peklo pokud delate rozsahlejsi projekt, ktery hromadu funkci a integraci. o rebuildu starsich projektu ani nemluve, pokud nemate ulozeny cely environment ve vcs.

3. svoji "VM" si to cpe primo do exace. V soucasne done ma 'println("hello world")' myslim par mega, pokud se to bude optimalizovat budeme mit 200MB exace, viz nize.

4. je to pomale. asi tak 2x-3x pomalejsi nez java, ktera je (hmm nechci zacit flamewar) asi tak 1.5x-2x pomalejsi nez C(pp) v konkretnich jednoduchych operacich. takze go je asi tak 4x pomalejsi nez native C(pp), takze C pro 21. stoleti... ne-e

5. neni to objektove. Ackoli se o tom neustale vedou spory, tak bylo realne prokazano (za poslednich 10 let), ze bez objektoveho pritupu nevytvorite komplexni aplikaci pri spolupraci tymu 100+ lidi. (eclipse vs world)

6. vetsina "cool" funkci jako "chan" je v podstate k smichu. Jaky je extra rozdil mezi "chan" a Executor.createSingleThreadExcecutor()? v podstate takovy, ze ten kdo pouziva chan, nema poneti o slozitosti okoli. Navic Eecutor je interface, ktery muzete nahradit jinou implemenataci, optimalizovat etc. stejne tak gorutines, multiprocesoring (cripled) for dummies. Jak si rozsirite "chan"? - udelate nad nim nejaky wrapper a jsme tam kde jsme byli.

7. jsou tam pointery. dneska nikdo nechce pointery. Pokud chcete poitery, tak delate v C jednu knihovnu a optimalizujete ji na max protoze je to kriticka zalezitost s velkym dosahem, dekoder kodeku na placenem kompilatoru od intelu, etc. A ten se potom zapoji do... wait for it ... do Javy. Ne v prostredi, kde cokoliv udelate bude tak jako tak 4x pomalejsi.

8. ma to C bindings. naprosta vetsina knihoven v go (krome zakladni), je nejakym wrapperem na Ceckem. a musim podotknout, ze velmi horkou jehlou sitym wrapperem. Tim padem cross jde vlastne dost dohaje a pokud se vyskytne problem, tak vyzaduje znalost C a gdb a valgrid a ... pak to nema cenu delat... viz vyse. Tohle je dost podobne pythonu.

9. vsichni rikaji, ze je lehke si udelat http server  a jak je to super. stejne tak jako v node.js. http.server(port). krasa. NE! neni to krasa. tam java zacinala tak pred 20-ti lety. jeden object request, jeden object response, rules the world. NE!NE!NE!. Na solidni aplikaci potrebujete filtery, ktere budou resit encoding, caching, session management, iln18, range requesty, multipart dissasembly.... na to si naprasite vlastni funkce a zjistite, ze ten tomcat nema tech 10 mega jen tak pro srandu. A java to umi taky http://www.simpleframework.org/doc/javadoc/index.html uplne stejne. Posledni commit nekdy pred 10-ti lety od te doby to vlastne nema chybu. Proc by melo, kdyz je to tak jednoduche. A proto to skoro nikdo nepouziva.

google to tlaci asi jako miliardar tlaci svoje retardovane dite. rad si poslechnu solidni oponenturu.



Název: Re:Proč ten hype okolo Go?
Přispěvatel: kikina 26. 08. 2018, 21:27:45
V poslednim roce jsem si s GO pohraval, kamarad se me ho snazil nasejlovat, tak jsem si zjistit vice. Porovnavam s Java, kterou se zivim vice nez deset let a pythonem, do ktereho jsem byl na par let dostrkan na vedlejsak.
GO:
>> ty kryso :-)

1. nelze mu uprit jistou miru elegance, ktera je apriori dana vsem nadanym zacatecnikum
>> nadany zacatecnici: rob pike, ken thompson, russ cox (C, plan9)

2. balickovaci system je strasne "hura" proste odkaz na github, bez verze a pak si to panacku pores sam, tzn peklo pokud delate rozsahlejsi projekt, ktery hromadu funkci a integraci. o rebuildu starsich projektu ani nemluve, pokud nemate ulozeny cely environment ve vcs.
>> aneb jak donutit lidi mit poradek ve verzich a gitu

3. svoji "VM" si to cpe primo do exace. V soucasne done ma 'println("hello world")' myslim par mega, pokud se to bude optimalizovat budeme mit 200MB exace, viz nize.
>> zadnou virtual masinu to nema, a poslechnete si jejich prednasku, jak udelat moderni garbage collector.

5. neni to objektove. Ackoli se o tom neustale vedou spory, tak bylo realne prokazano (za poslednich 10 let), ze bez objektoveho pritupu nevytvorite komplexni aplikaci pri spolupraci tymu 100+ lidi. (eclipse vs world)
>> kdo si mysli, ze existuje jen OO, a jine pristupy nejsou mozne, tak si musi neco nastudovat.
ctete o implicitnim inteface a reflexi
https://blog.golang.org/laws-of-reflection

6. vetsina "cool" funkci jako "chan" je v podstate k smichu. Jaky je extra rozdil mezi "chan" a Executor.createSingleThreadExcecutor()? v podstate takovy, ze ten kdo pouziva chan, nema poneti o slozitosti okoli. Navic Eecutor je interface, ktery muzete nahradit jinou implemenataci, optimalizovat etc. stejne tak gorutines, multiprocesoring (cripled) for dummies. Jak si rozsirite "chan"? - udelate nad nim nejaky wrapper a jsme tam kde jsme byli.
>> chan je super, zas video od roba pika:
https://www.youtube.com/watch?v=w2UAavudKC8

7. jsou tam pointery. dneska nikdo nechce pointery. Pokud chcete poitery, tak delate v C jednu knihovnu a optimalizujete ji na max protoze je to kriticka zalezitost s velkym dosahem, dekoder kodeku na placenem kompilatoru od intelu, etc. A ten se potom zapoji do... wait for it ... do Javy. Ne v prostredi, kde cokoliv udelate bude tak jako tak 4x pomalejsi.
>> pointer je super, docela chapu ze odstranili aritmetiku s pointery, ale pointery tu byly drive nez reference.

8. ma to C bindings. naprosta vetsina knihoven v go (krome zakladni), je nejakym wrapperem na Ceckem. a musim podotknout, ze velmi horkou jehlou sitym wrapperem. Tim padem cross jde vlastne dost dohaje a pokud se vyskytne problem, tak vyzaduje znalost C a gdb a valgrid a ... pak to nema cenu delat... viz vyse. Tohle je dost podobne pythonu.

9. vsichni rikaji, ze je lehke si udelat http server  a jak je to super. stejne tak jako v node.js. http.server(port). krasa. NE! neni to krasa. tam java zacinala tak pred 20-ti lety. jeden object request, jeden object response, rules the world. NE!NE!NE!. Na solidni aplikaci potrebujete filtery, ktere budou resit encoding, caching, session management, iln18, range requesty, multipart dissasembly.... na to si naprasite vlastni funkce a zjistite, ze ten tomcat nema tech 10 mega jen tak pro srandu. A java to umi taky http://www.simpleframework.org/doc/javadoc/index.html uplne stejne. Posledni commit nekdy pred 10-ti lety od te doby to vlastne nema chybu. Proc by melo, kdyz je to tak jednoduche. A proto to skoro nikdo nepouziva.
>> kecy v v kleci

google to tlaci asi jako miliardar tlaci svoje retardovane dite. rad si poslechnu solidni oponenturu.
>> ja javu taky pouzivam, takze tu nebudu psat neco o retardovanem diteti odkoupenem oraclem atd.
>> tohle je naprosto zbytecna poznamka od vas.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 26. 08. 2018, 21:47:48
go1.11 ma zmeneny balickovaci system...,  uz mozete mat verzie.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 22:12:45
ano, po kolika letech si uvedomili, ze verze zavislosti se docela hodi?

dejme tomu tak dalsich 10, 20 let a mozna se to dostane na uroven javy.

alternativa tomcatu v go?

alternativa apache-commons v go?

alternativa springu v go?

alternativa ORM v go? nasel jsem celkem dobre udelany ORM na Postgres go-pg, ktery je asi tak 3x pomalejsi nez hibernate (ktery hodne lidi definuje jako pomalou kurvu, ne uplne nepravem) a ostatni orm frameworky, co maji universalni pripojeni na hodne sql databazi, co jsem zkousel jsou tak - bez nadsazky - 100x pomalejsi nez go-pg.

fakt si myslite, ze tech 3000 config variables v hibernate je jen tak pro srandu, ze ty lidi nemeli co delat, tak pridavali dalsi optiony. Ty desetitisice radku kodu implementujici ruzne SQL dialekty od MySQL az po MSSQL jsou tam jen pro pr.del?

alternativu simple-http v jave jsem uvedl a mame ji dlouho a vlastne ji nikdo nepouziva protoze na nic jineho nez na jednoduche api v ascii pro skolacky project se to vlastne nehodi.

umi to crosscompilaci na hodne platforem, protoze to na zadne platforme skoro nic neumi qt-go-bindings na android. zkus si to good luck. a na iOS to potom naportuj a pak za 5 let povez jak si dopadl...

a porad je to jeste pomale.

takze idelame ne-VM integrated garbage collector a bude z toho... hmm webkitgtk:D nebo 200MB binarka nebo oboji 10 hodin kompilace na 4 jadru a vysleden 200MB binarka.

jeste se toho (snad) doziju, tak se za 20 let rad podivam.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Xxxxxx 26. 08. 2018, 22:33:55
Hibernate je ojebavka jak schovavat objekty do relacni db, rekl bych, ze je lepsi se vydat jinou cestou.

Spring potrebujete v jave, v c++ spring nemate, v go ho nepotrebujete.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 22:43:42
ano je to ojebavka, je to pomalejsi, ale pokud mate 300TB databazi s 3000 tabulek. Idealne telco prumysl si zkuste. Takove SFN od T-Mobile ma 500 tabulek jenom na to aby ukazalo klientovi (ktery ma 10000 tel cisel) statistiky. je to delane v C# a MSSQL. A ano to se instaluje na _Klientovi_.
Myslite si, ze to proste umre, protoze v go je to .... wait .... 2x pomalejsi a vlastne to jeste neni ani udelane poradne? hmm

a co budete delat cpat tam dotazy SQL natvrdo? validace, escaping, aproximace, objektifikace, vyfikundace, pojebesseztohoce.

a pokud tu nebude vladnou babis, kellner, t-mobile a ten, kdo koupi vodaphone, kterej nikdo nechce koupit... tak bude co ?
SA-58kundace? rozhodne ne nad golang.. thats for sure. Ja doufam, ze ne.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 23:00:17
Hibernate je ojebavka jak schovavat objekty do relacni db, rekl bych, ze je lepsi se vydat jinou cestou.

Spring potrebujete v jave, v c++ spring nemate, v go ho nepotrebujete.

vydat jinou cestou jakou? v go nepotrebujete ORM? pokud nemate ORM, tak nemate v kodu specifikovana data. vsechno bude jakoze direct sql a spravovat to budete sam? a vsechno to pujde do array nebo map. tak urcite...

spring resi hromadu veci od sessions po routing http requstu pres MVC framwork, intergration, messaging. a vlastne i clustering pokud tam pridate EJB nebo jine paznechty, i tomcat ma vlastni clustering, HA a vsechny buzzwords, ale jen na urcite urovni, proto tam je ten spring EJB and friends.kua

nejdriv mate request -> response a potom nad tim stavite mocne frameworky a funkce. Spousta kluku, kteri nevedi nic, si mysli, ze tim, ze si udelaji jednoduchy request->response server  nasli zlaty gral ale netusi, ze to je vec, kterou java mela uz pred 15-ti lety a od te doby na tom stavi.

urcite je mozna kritika a vylepseni se meze nekladou, ale tvrdit, ze si udelam jednoduchy http server v go a v java to nejde je pitomost non plus ultra. tam jsme zacinali.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 26. 08. 2018, 23:03:15
ano je to ojebavka, je to pomalejsi, ale pokud mate 300TB databazi s 3000 tabulek. Idealne telco prumysl si zkuste. Takove SFN od T-Mobile ma 500 tabulek jenom na to aby ukazalo klientovi (ktery ma 10000 tel cisel) statistiky. je to delane v C# a MSSQL. A ano to se instaluje na _Klientovi_.
Myslite si, ze to proste umre, protoze v go je to .... wait .... 2x pomalejsi a vlastne to jeste neni ani udelane poradne? hmm

Klidně si svůj Use Case dělej třeba v Javě nebo v něčem jiném, ale proč máš potřebu si otírat hubu o Go, které není pro tebe? Přiznej se, že se ti Go líbí, ale nemůžeš v něm dělat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 23:04:41
a uz ma GO neco jako maven/gradle/Ivy nebo si porad mysleji, ze to nepotrebujou?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 23:07:12
ano je to ojebavka, je to pomalejsi, ale pokud mate 300TB databazi s 3000 tabulek. Idealne telco prumysl si zkuste. Takove SFN od T-Mobile ma 500 tabulek jenom na to aby ukazalo klientovi (ktery ma 10000 tel cisel) statistiky. je to delane v C# a MSSQL. A ano to se instaluje na _Klientovi_.
Myslite si, ze to proste umre, protoze v go je to .... wait .... 2x pomalejsi a vlastne to jeste neni ani udelane poradne? hmm

Klidně si svůj Use Case dělej třeba v Javě nebo v něčem jiném, ale proč máš potřebu si otírat hubu o Go, které není pro tebe? Přiznej se, že se ti Go líbí, ale nemůžeš v něm dělat.

a ten use case pro go?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 26. 08. 2018, 23:14:45
hele web4soft.cz internet shani GO vyvojare. Je to sice v Jeseniku, nastupni budes mit tak 25hrubo, ale zase muzes hipsterit v Go. Lepsi pozici verejne jsem nenasel. Zato java+hibernate+spring 100k+ je plna zadek. 
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 26. 08. 2018, 23:39:26
Klidně si svůj Use Case dělej třeba v Javě nebo v něčem jiném, ale proč máš potřebu si otírat hubu o Go, které není pro tebe? Přiznej se, že se ti Go líbí, ale nemůžeš v něm dělat.
a ten use case pro go?

Ten tě nemusí trápit. Vždyť se o Go ani nezajímáš - jenom ho hejtuješ a šíříš FUD.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 27. 08. 2018, 00:44:57
:) gg no re man
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 27. 08. 2018, 06:15:45
Kite, kdy tedy pouzijes go? Na takove to domaci lepeni kodu? Nebo na takove to “nic lepsiho neumime” lepeni kodu? Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 27. 08. 2018, 07:31:26
Kite, kdy tedy pouzijes go? Na takove to domaci lepeni kodu? Nebo na takove to “nic lepsiho neumime” lepeni kodu? Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).

Vygoogli si, co je to NATS, Kubernetes, Gitea, Prometheus.

Osobne pouzivam 3 z techto projektu, kegove uplbe vsechny
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 27. 08. 2018, 07:32:33
Kite, kdy tedy pouzijes go? Na takove to domaci lepeni kodu? Nebo na takove to “nic lepsiho neumime” lepeni kodu? Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).

Vygoogli si, co je to NATS, Kubernetes, Gitea, Prometheus.

Osobne pouzivam 3 z techto projektu, kegove uplbe vsechny

s/kegove/kolegove
Název: Re:Proč ten hype okolo Go?
Přispěvatel: borekz 27. 08. 2018, 07:34:25
v go nepotrebujete ORM? pokud nemate ORM, tak nemate v kodu specifikovana data. vsechno bude jakoze direct sql a spravovat to budete sam? a vsechno to pujde do array nebo map. tak urcite...
Pro databázové aplikace není třeba Go ani Java. Stačí PHP nebo JavaScript a na výkonu to nebude moc poznat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 27. 08. 2018, 07:45:20
Youda, ja tohle samozrejme znam, vim ze treba vshosting poskytuje i kubernetes, ale rekni mi jedno realne nasazeni go nekde v CR pro nejaky projekt. V bance? V telco? Nejaky erp? Cokoliv, chci mit predstavu o konkretnim produktu/sluzbe kde je go.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kate 27. 08. 2018, 07:50:02
Youda, ja tohle samozrejme znam, vim ze treba vshosting poskytuje i kubernetes, ale rekni mi jedno realne nasazeni go nekde v CR pro nejaky projekt. V bance? V telco? Nejaky erp? Cokoliv, chci mit predstavu o konkretnim produktu/sluzbe kde je go.

V Seznamu ho používá Search. Nevím jak moc, ale dostatečně na to aby sháněli Go programátory.

A koukám že Kiwi v něm podle všeho přepisuje backend na microservice architekturu. https://www.kiwi.com/jobs/engineering/go-developer-in-belgrade/
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 27. 08. 2018, 07:54:36
Super Kate, diky!
Název: Re:Proč ten hype okolo Go?
Přispěvatel: bejk 27. 08. 2018, 08:37:22
Ta java se vam pekne zaryla do hlavy panove. Zacina to studiem na ceskych javaschool univerzitach a konci v ceskych javamontovnach.

Priznejte si, ze nedokazete myslet jinak nez javovsky, takze kazdej jazyk, co neni java, je spatnej v tom bejt java.

Videl jsem to na kolezich, co jsme delali v Pythonu. Vsechno psali jako by to byla java, vsechno zabaleny v debilni classe, orm kde muzes, apod. proste java navyku se nezbavis pokud se o to AKTIVNE nesnazis studiem.

Proto se nedivim, ze se vam go nezda. Mne se tam nelibi par veci jako absence generik nebo balickovani, ale taky bych to nepouzil na komplexni projekty, ale jenom na nejakou servisu, co zpravovava jednu funkci ale dobre. Po vzoru unixu.

Btw. to ze pisete komplexni projekty je jenom vase pitomost a ignorantstvi. Software neni nic jinyho nez neci myslenky hozeny na papir. Je jenom otazka jak prasacky to udelas. Kdyz na to budes mit jazyk ve kterym to prirozene vyjadris, tak nebudes potrebovat tisice radku kodu v jave. Cokoliv co jde do radu desetitisicu radku kodu je fail a meli byste premyslet jestli pouzivate spravny abstrakce nebo dat produktakovi stopku v jeho feature creepismu.

Jak rikal dijkstra. "My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger."
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 27. 08. 2018, 09:25:10
@bejk: Ja nie som javista a Go sa mi nepadi, ako to vysvetlis? :D

Pre co by som nemal pisat komplexne veci, ked domena a zakaznici prave take potrebuju?
Mame rok 2018 a uz si ludia nemyslia ze mikrosluzby riesia vsteky problemy sveta, lebo zo sebou prinasaju aj svoje problemy.

V Go som robil aktivne vyse roka, no nikdy som neandobudol pocit, ze by mi v niecom pomohlo, bolo nejako extra richle alebo by som v nom menej pisal. Ten jazyk je proste na urovni Pascalu.

Inac moze mi niekto vyvstlit na co tam dali pointre, ked to ma aj tak Garbage Collector? Mohli to proste zakryt abstrakciu a neobtazovat tym programtora.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kikina 27. 08. 2018, 09:35:56
@bejk: Ja nie som javista a Go sa mi nepadi, ako to vysvetlis? :D

Inac moze mi niekto vyvstlit na co tam dali pointre, ked to ma aj tak Garbage Collector? Mohli to proste zakryt abstrakciu a neobtazovat tym programtora.

ja si myslim, ze reference co jsou v C++ a nejsou v C, jsou principialne zlo (napr. potreba reference wrapper).
ukazatel, je podle me jednodussi i cistsi koncept.
gc s tim souvisi jen volne, neni ukazatel na objekt, gc ho muze smazat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: janek6 27. 08. 2018, 14:59:05
https://github.com/golang/go/wiki/WebAssembly (https://github.com/golang/go/wiki/WebAssembly)

https://www.root.cz/zpravicky/router7-router-kompletne-napsany-v-go/ (https://www.root.cz/zpravicky/router7-router-kompletne-napsany-v-go/)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 27. 08. 2018, 16:06:29
V golang mi chybí několik věcí. Ty dvě zásadní jsou:

- Ekvivalent streamů (Java) nebo list comprehensions (Python) nebo Linqu (C#) na vysokoúrovňovou manipulaci dat (map, filter, reduce),
- Optional sémantika, protože psát pořád dokola něco jako if data != null and data.element != null and data.element.key != null and data.element.key.value != null je strašlivě otravné (tolik k tomu super zpracování struktur v Go ve spojení s pointery..),

Taky bych uvítal trošku méně ukecaný blok, který umí fungovat atomicky co se chyb týče (první chyba ho ukončí)! I to blbé C má naprosto legitimní goto error; Jen v golang se zaklínají tím, že to přece nikdo nepotřebuje a vymýšlí workaroundy.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 27. 08. 2018, 16:58:14
V normalnych jazkoch suna spracovanie chyb vynimky alebo maybe, predsa nikoho normalneho nemoze byvit po kazdom volani funkcie kontrolovat ci nastala chyba.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 27. 08. 2018, 17:12:46
V normalnych jazkoch suna spracovanie chyb vynimky alebo maybe, predsa nikoho normalneho nemoze byvit po kazdom volani funkcie kontrolovat ci nastala chyba.
Uz si videl niekedy C? To, ze sa osetruje chyba pri kazdom volani je preto, aby si dokazal proptne zareagovat. Nie kazdy program je pisany vynimkami niekde v "maine" a nedokaze reagovat na zmenu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 27. 08. 2018, 17:17:37
V normalnych jazkoch suna spracovanie chyb vynimky alebo maybe, predsa nikoho normalneho nemoze byvit po kazdom volani funkcie kontrolovat ci nastala chyba.
Jestli má někdo problémy s tím, že ho nebaví řešit chybové stavy programu, asi by se měl věnovat něčemu, nač mentálně stačí - třeba okopávání brambor nebo točení popelnic - a ne programování. Nad zmršeným kódem různých prasat už jsem musel ztratit tolik času a nervů, že to ani nejde spočítat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: šlapká 27. 08. 2018, 17:41:47
V normalnych jazkoch suna spracovanie chyb vynimky alebo maybe, predsa nikoho normalneho nemoze byvit po kazdom volani funkcie kontrolovat ci nastala chyba.
Jestli má někdo problémy s tím, že ho nebaví řešit chybové stavy programu, asi by se měl věnovat něčemu, nač mentálně stačí - třeba okopávání brambor nebo točení popelnic - a ne programování. Nad zmršeným kódem různých prasat už jsem musel ztratit tolik času a nervů, že to ani nejde spočítat.

Tak to vykladej Torvaldsovi a spol. co taky v C kodu zapomenou checknout return code at dou okopavat popelnice. Nikoho nebavi resit problemy mimo happy-path programu. Kdyz mas jazyk, co te donuti na to nezapomenout, mas vyhodu.

viz http://joeduffyblog.com/2016/02/07/the-error-model/ - sekce "Error Codes / Forgetting to Check Them"
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 27. 08. 2018, 19:38:53
Uz si videl niekedy C? To, ze sa osetruje chyba pri kazdom volani je preto, aby si dokazal proptne zareagovat. Nie kazdy program je pisany vynimkami niekde v "maine" a nedokaze reagovat na zmenu.

Ano, kontrola se v C dělá hned, ale reakce na chybu už ne: zmíněné goto error je totiž v C dost běžné. Příklad třeba tady: https://eli.thegreenplace.net/2009/04/27/using-goto-for-error-handling-in-c

Jenže v golang žádný ekvivalent kontrolovaného bloku není..., takže se to musí obcházet různými hacky jako třeba wrapper interface: https://blog.golang.org/errors-are-values
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 27. 08. 2018, 20:33:06
Uz si videl niekedy C? To, ze sa osetruje chyba pri kazdom volani je preto, aby si dokazal proptne zareagovat. Nie kazdy program je pisany vynimkami niekde v "maine" a nedokaze reagovat na zmenu.

Ano, kontrola se v C dělá hned, ale reakce na chybu už ne: zmíněné goto error je totiž v C dost běžné. Příklad třeba tady: https://eli.thegreenplace.net/2009/04/27/using-goto-for-error-handling-in-c

Jenže v golang žádný ekvivalent kontrolovaného bloku není..., takže se to musí obcházet různými hacky jako třeba wrapper interface: https://blog.golang.org/errors-are-values
V Go taky můžeš mít goto error.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: aaaaaa 27. 08. 2018, 22:20:18
Go nema ambiciu nahradit Javu, takze porovnavanie je nezmyselne. V Google ma kopu dalsich pomocnych kniznic, takze tam nie je citit problem s nacitavanim externych kniznic z Githubu.
Vynucovanie osetrovania chyb je uzitocne. Len vdaka nemu je nahodna kniznica v Go z Githubu vacsinou robustnejsia ako v lubovolnom inom jazyku. To je asi hlavny dovod, preco sa pouziva v Googli.

List comprehensions chybaju, generika idu len cez WTF hacky (https://www.reddit.com/r/rust/comments/5penft/parallelizing_enjarify_in_go_and_rust/dcsgk7n/).

- Optional sémantika, protože psát pořád dokola něco jako if data != null and data.element != null and data.element.key != null and data.element.key.value != null je strašlivě otravné (tolik k tomu super zpracování struktur v Go ve spojení s pointery..),
Ak mate pointer v pointeri v pointeri v pointeri, tak to tak bude vyzerat v kazdom jazyku. Je treba overit, ci ten optional obsahuje hodnotu. Takze to donuti pisat kod, kde zistite ne-nullovost skor a dalej predate iba potrebnu cast struktury. A tiez to nebude mat vsetko po ceste optional.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 27. 08. 2018, 22:49:06
Kite, kdy tedy pouzijes go? Na takove to domaci lepeni kodu? Nebo na takove to “nic lepsiho neumime” lepeni kodu? Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).

Go bych použil například jako internetového démona pro mikroslužby až po střední služby tam, kde potřebuji nízkou latenci.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Inkvizitor 27. 08. 2018, 23:43:07
V normalnych jazkoch suna spracovanie chyb vynimky alebo maybe, predsa nikoho normalneho nemoze byvit po kazdom volani funkcie kontrolovat ci nastala chyba.
Jestli má někdo problémy s tím, že ho nebaví řešit chybové stavy programu, asi by se měl věnovat něčemu, nač mentálně stačí - třeba okopávání brambor nebo točení popelnic - a ne programování. Nad zmršeným kódem různých prasat už jsem musel ztratit tolik času a nervů, že to ani nejde spočítat.

Promiň, ale neznám v CS lepší definici pojmu "lopata", než programátor, který namísto inteligentního návrhu jazyka dá přednost nekonečnému opakování if err != nil.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 27. 08. 2018, 23:50:41
Ak mate pointer v pointeri v pointeri v pointeri, tak to tak bude vyzerat v kazdom jazyku. Je treba overit, ci ten optional obsahuje hodnotu. Takze to donuti pisat kod, kde zistite ne-nullovost skor a dalej predate iba potrebnu cast struktury. A tiez to nebude mat vsetko po ceste optional.

Nebude. V Pythonu mám na getattr s None napsaný wrapper :) Takže provedu jen root.x.y.z.or_else(1) a funguje to vždy a "samo".
V Javě je to trošku ošklivější kvůli typování: root.map(Root::getX).map(X::getY).map(Y::getZ).orElse(1)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 27. 08. 2018, 23:53:53
V Go taky můžeš mít goto error.

Nojo, pravda, google našel. Ale z nějakého důvodu to nikde nikdo nezmiňuje v žádné diskusi o chybách. Zajímavé..
Název: Re:Proč ten hype okolo Go?
Přispěvatel: tt 28. 08. 2018, 00:54:38
Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).
Info pre investorov: https://github.com/golang/go/wiki/GoUsers
Z mojho okruhu znamych: Monzo (digitalna banka, btw: 1 milion £ z crowdfundingu za 96 sekund), Sixt (pozicovna aut), VW, Shell Digital Ventures, Hailo (taxi app), ...

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 28. 08. 2018, 01:37:00
Ak mate pointer v pointeri v pointeri v pointeri, tak to tak bude vyzerat v kazdom jazyku. Je treba overit, ci ten optional obsahuje hodnotu. Takze to donuti pisat kod, kde zistite ne-nullovost skor a dalej predate iba potrebnu cast struktury. A tiez to nebude mat vsetko po ceste optional.

Nebude. V Pythonu mám na getattr s None napsaný wrapper :) Takže provedu jen root.x.y.z.or_else(1) a funguje to vždy a "samo".
V Javě je to trošku ošklivější kvůli typování: root.map(Root::getX).map(X::getY).map(Y::getZ).orElse(1)

Vypadá to strašně, ale ve funkcionálních jazycích se to asi snese. V objektových to nemá co pohledávat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: ffef 28. 08. 2018, 03:29:11
Zajima me to z pohledu investora, nevidel jsem zatim zadny realny projekt v go (pro zakaznika).
Info pre investorov: https://github.com/golang/go/wiki/GoUsers
Z mojho okruhu znamych: Monzo (digitalna banka, btw: 1 milion £ z crowdfundingu za 96 sekund), Sixt (pozicovna aut), VW, Shell Digital Ventures, Hailo (taxi app), ...
To je naprostej nesmysl ... .
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 28. 08. 2018, 08:00:01
Tt, diky za link, ale to ze nejaka spolecnost ma go nekde nasazene bych nepovazoval za indikator toho ze je to v produkci. Spousta firem si s go hraje, experimentuje a do produkce jsem nikde nevidel go nasazeny. Nekdo psal tady seznam, kiwi, tam by mi to treba smysl davalo, ale v prostredi ve kterem se bezne pohybuji proste go neni. Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: godev 28. 08. 2018, 08:12:47
Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Protože to v go napíšeš 10x rychleji než v C a nebudeš tam mít security bugy spojené s chybným přístupem do paměti. Výkon go je dostatečný, horizontálně naškáluješ potřebný počet instancí.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 28. 08. 2018, 08:30:25
Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Protože to v go napíšeš 10x rychleji než v C a nebudeš tam mít security bugy spojené s chybným přístupem do paměti. Výkon go je dostatečný, horizontálně naškáluješ potřebný počet instancí.
Napisem to v C#, mam rovnaku horizontalnu skalovatelnost, vysiu bezpecnost (lebo v kniznici, ktoru som pouzil mi nik nezabudol ostrit chybu ako navratovu hodnotu co je v Go knizniciach uplne bezne) a este to budem mat richlejsie napisane.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 28. 08. 2018, 08:38:16
Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Protože to v go napíšeš 10x rychleji než v C a nebudeš tam mít security bugy spojené s chybným přístupem do paměti. Výkon go je dostatečný, horizontálně naškáluješ potřebný počet instancí.
Napisem to v C#, mam rovnaku horizontalnu skalovatelnost, vysiu bezpecnost (lebo v kniznici, ktoru som pouzil mi nik nezabudol ostrit chybu ako navratovu hodnotu co je v Go knizniciach uplne bezne) a este to budem mat richlejsie napisane.

S tvojou urovnou materinskeho jazyka o tom dost pochybujem. Chlapce skus absolvovat ZS este raz.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 28. 08. 2018, 08:39:57
Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Protože to v go napíšeš 10x rychleji než v C a nebudeš tam mít security bugy spojené s chybným přístupem do paměti. Výkon go je dostatečný, horizontálně naškáluješ potřebný počet instancí.
Napisem to v C#, mam rovnaku horizontalnu skalovatelnost, vysiu bezpecnost (lebo v kniznici, ktoru som pouzil mi nik nezabudol ostrit chybu ako navratovu hodnotu co je v Go knizniciach uplne bezne) a este to budem mat richlejsie napisane.

S tvojou urovnou materinskeho jazyka o tom dost pochybujem. Chlapce skus absolvovat ZS este raz.
Zas super argument k veci.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 28. 08. 2018, 08:51:03
Kdyz dojdou argumenty, objevi se gramar nazi, nadavky atd. Jakkoliv se snazim videt neco pozitivniho na go, tak nic neobjevuji. Takove nove PHP pro bastlice a lepice.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 28. 08. 2018, 08:55:44
Ono pozitivne veci Go ma, ale tie iste maju aj mnohe jeho alternativy. Prave pre to nechapem ten hype.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: avc 28. 08. 2018, 09:06:56
Rad bych nejaky projekt, firmu, kde nekdo vi jak je go pouzite. Psat v tom sitoveho demona kdyz je to 4x pomalejsi nez C? Proc?
Protože to v go napíšeš 10x rychleji než v C a nebudeš tam mít security bugy spojené s chybným přístupem do paměti. Výkon go je dostatečný, horizontálně naškáluješ potřebný počet instancí.
Napisem to v C#, mam rovnaku horizontalnu skalovatelnost, vysiu bezpecnost (lebo v kniznici, ktoru som pouzil mi nik nezabudol ostrit chybu ako navratovu hodnotu co je v Go knizniciach uplne bezne) a este to budem mat richlejsie napisane.

S tvojou urovnou materinskeho jazyka o tom dost pochybujem. Chlapce skus absolvovat ZS este raz.
Zas super argument k veci.

Pretoze tvoj argument je o knizniciach. Ked najdem 5 kniznic v C# kde nebude osetrena navratova hodnota, tak budem tvrdit, ze C# je nebezpecne? Alebo, ake je to magicke cislo, ktore hovori, ze pocet kniznic, ktore nemaju osetrene navratove hodnoty robia z jazyka nebezpecne? Vidis, aku sprostost si napisal...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 28. 08. 2018, 09:19:25
Ono pozitivne veci Go ma, ale tie iste maju aj mnohe jeho alternativy. Prave pre to nechapem ten hype.
Je to relativně jednoduchý pragmatický jazyk, kde je filozofií psát jednoduché věci jednoduše. Je za tím velká firma, kolektiv autorů, kteří ve svém věku už nemají potřebu machrovat. Vůči Javě a Javě ekosystému, jehož zvládnutí je na roky (a musíte akceptovat OOP), a C#, který je chca nechca stále spojen primárně s windows - je to příjemná změna.



Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 28. 08. 2018, 13:03:28
Jakkoliv se snazim videt neco pozitivniho na go, tak nic neobjevuji. Takove nove PHP pro bastlice a lepice.

Pozitivem je právě ta jednoduchost vhodná i pro bastliče a lepiče. Nikdo nechce komplikovaný programovací jazyk.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 28. 08. 2018, 13:39:57
Me na Jave sere to, ze tam nemam moznost napsat neco ad-hoc, proste neco maleho, co nikdo nebude cist. Static metody jsou otravne a zapovezene kvuli testovani. Taky paradigma frameworku v Jave je mit hned robustni sestiocasou dvanactihlavou drakomrdku a to me sere tez, ten otravny overhead :D Nejvic ze vseho me mrda Spring, ktery strasne dlouho startuje, a jeho alternativy stoji za hovno:

Servlety - 20 let stary na hovno design ktery kazdy framework obchazi jak jen muze
Java EE - pomale starty, obrovske aplikacni servery, Oracle fuj
Spring - ok, ale do korporatu a na velke robustni projekty, kde se znacne vice premysli nez programuje
Jersey - referenci implementace JAX-RS neskutecny kram, prida 3 vteriny init time do aplikace i presto ze tam mam jedinou classu pro rest
Spark - ten je zase moc jednoduchy, neumi deklarativni zpusob zapisu RESTu a jeste navic ten jejich jednoduchy zapis se inicializuje, tzn. tim uplne zbytecne zabily schopnost JVM delat hotswap, protoze co nainicializuje, uz nejde Hotswapovat. Fuck off.
Play - to ma  byt WTF jako co, spousti se mi tu maly example dele nez Sprign Boot navic to ma nejakou dalsi tucnou nadstavbu
Tapestry - wtf, zkusil jsem si maly example jakysik hotel booking, start s jetty pomaly, horsi nez Spring Boot, podivne filozofie, ani se mi tim nechtelo zabyvat

Ale maji se dobre v JRebel, ktery stoji 10k rocne, ktery ten init time pro zname frameworky resi, jenze neresi ho pro integracni testy, kde se to za kazdym spustenim musi cela ta mrdka framework je-jedno-jaky nastartovat.

Nemusel bych to vubec resit, mohl bych dal chodit do prace, delat na obrim projektu integracniho programatora, brat za to slusne penize, delat to ve Springu a mit se fajn, ale doma me to fakt sere. Uz to v podstate vzdavam a hledam nejaky jinaci jazyk. Budto Python, nebo Go, nebo Node.js.

Chtel jsem ten Node.js, protoze stejne bych se mel ten javascript pomalu zacit poradneji ucit, ale sorry jako, to se proste neda. Pokazde zapnu nejaky example a chce se mi blejt co je to za shit platformu. Funcke treba bere jako parametr fixni String "onError", chces se podivat jake jsou vlastne mozne jine parametry tohoto enumu, a nenajdes nic, ani po rozkliknuti v komentech, proste nic. At si to strci do pici tady ten bordel, to uz muzu rovnou psat radeji v Cecku a hledat si k funkcim dokumentaci na webu.

Tak zvazuju jeste ten Python a Go. U Pythonu se mi libi, ze je to vhodne i pro psani konzolovych skriptu, Go je zase rychlejsi.

Nakonec to asi udelam tak, ze se na to vyseru, budu si dal kodit ve Springu v praci, a doma zadne projekty delat nebudu. A pockam si, az neco poradneho nahradi javascript a zacne se to psat poradne. A pak na to prejdu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 28. 08. 2018, 13:42:48
Jeste se podivam jak to maji hosi v .NET Core
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Xxxxxx 28. 08. 2018, 13:49:26
V go bych se zacal zdokonalovat, jednou prijde jeho doba.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: mmm 28. 08. 2018, 13:54:17
Chtel jsem ten Node.js
Funcke treba bere jako parametr fixni String "onError"

píšete o node.js nebo o javascriptu v prohlížeči před 20 lety? Doufám, že vás tu nikdo nebere vážně.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 28. 08. 2018, 14:00:10
Chtel jsem ten Node.js
Funcke treba bere jako parametr fixni String "onError"

píšete o node.js nebo o javascriptu v prohlížeči před 20 lety? Doufám, že vás tu nikdo nebere vážně.

Tady to máš, hňupe. A nevykej mi.

Kód: [Vybrat]
var app = require('../app');
var debug = require('debug')('nodejobstats:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

Název: Re:Proč ten hype okolo Go?
Přispěvatel: tralala 28. 08. 2018, 14:06:16
.....

no popravde zdielam tvoju frustraciu ale je to dan za tu komplexitu, nic nie je jednoduche ked to ma robit vsetko. Je to strasne komplikovane vsetko uz ...

Nie ze by som tu komplexnost obhajoval, ale podla mna to robis trochu neefektivne. Napriklad ja za moju karieru som si odzaciatku robil na vsetko nejaky template-y a skripty a ked teraz chces "command line aplikaciu co bude jeden fat jar a bude to pouzivat Maven a chcem programovat v Scale" tak ti na to odniekial vytiahnem nejaky template projekt ktory mi to uz 100x vyriesil.

Co chcem povedat je, ze je jasne ze tu komplexitu nemozes zrusit, tak to aspon zautomatizuj, sprav si "vlastny framework", ja mam napr. repozitar kde mam cisto asi 20 Dockerfiles na vsetko mozne a ked idem nieco vyvijat tak si ten boilerplate len polepim dokopy ...

Podla mna je znak neefektivity programatora ked musis furt na vsetko vymyslat odznova koleso.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: mmm 28. 08. 2018, 14:08:46
Chtel jsem ten Node.js
Funcke treba bere jako parametr fixni String "onError"

píšete o node.js nebo o javascriptu v prohlížeči před 20 lety? Doufám, že vás tu nikdo nebere vážně.

Tady to máš, hňupe. A nevykej mi.

Kód: [Vybrat]
var app = require('../app');
var debug = require('debug')('nodejobstats:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);


nevidím tam "onerror". Tak se psalo v node.js někdy v roce 2010 (nebo možná nikdy, nejsem pamětník).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: mmm 28. 08. 2018, 14:21:29
nevím, o co se snažíš, ale jestli chceš vytvořit server side renderovanou aplikaci, tak next.js . Na jednoduché věci je express. Modul http je nízkoúrovňový a není určen k přímému použití.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 28. 08. 2018, 14:24:58
Chtel jsem ten Node.js, protoze stejne bych se mel ten javascript pomalu zacit poradneji ucit, ale sorry jako, to se proste neda. Pokazde zapnu nejaky example a chce se mi blejt co je to za shit platformu. Funcke treba bere jako parametr fixni String "onError"
Takhle to vypadá, když něco navrhuje teoretický matematik. Algebraičtí topologové (jako autor node.js) jsou vůbec "nejlepší".
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 28. 08. 2018, 14:26:23
Uz to v podstate vzdavam a hledam nejaky jinaci jazyk. Budto Python, nebo Go, nebo Node.js.
Nebo Haskell. Ten je vlastně moc málo abstraktní, radší Idris ;)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Inkvizitor 28. 08. 2018, 14:55:04
Tak zvazuju jeste ten Python a Go. U Pythonu se mi libi, ze je to vhodne i pro psani konzolovych skriptu, Go je zase rychlejsi.

Pojd delat v Pythonu. Pokud budes potrebovat neco zrychlit, budes mit spoustu jinych a snad i lepsich moznosti nez ten googli bastl (pocinaje Cythonem a konce treba Rustem).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: muflon 28. 08. 2018, 15:06:11
Uz to v podstate vzdavam a hledam nejaky jinaci jazyk. Budto Python, nebo Go, nebo Node.js.
Nebo Haskell. Ten je vlastně moc málo abstraktní, radší Idris ;)
A zase ten zboj!
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 28. 08. 2018, 15:34:24
Uz to v podstate vzdavam a hledam nejaky jinaci jazyk. Budto Python, nebo Go, nebo Node.js.
Nebo Haskell. Ten je vlastně moc málo abstraktní, radší Idris ;)
A zase ten zboj!
Co je, dal ses na zboj?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 28. 08. 2018, 15:53:08
A co OSTRAJava ?https://github.com/tkohout/OSTRAJava/blob/master/README.md
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 28. 08. 2018, 16:45:57
Podla mna je znak neefektivity programatora ked musis furt na vsetko vymyslat odznova koleso.

Když jsou všechna dostupná kola hranatá, tak je občas nutné vymyslet vlastní.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Jano7 28. 08. 2018, 16:49:21
Citace
Chtel jsem ten Node.js, protoze stejne bych se mel ten javascript pomalu zacit poradneji ucit, ale sorry jako, to se proste neda. Pokazde zapnu nejaky example a chce se mi blejt co je to za shit platformu. Funcke treba bere jako parametr fixni String "onError", chces se podivat jake jsou vlastne mozne jine parametry tohoto enumu, a nenajdes nic, ani po rozkliknuti v komentech, proste nic.

Treba dať JavaScriptu šancu, je to geniálny jazyk a platforma. Neveril by som, že také niečo niekedy napíšem.
Hej, natvrdo nastavený názov eventu vyzerá nedobre. Ako však bolo už spomenuté, netreba používať priamo Node http  ale Express knižnicu. Nie náhodou si v Mozille zvolili Django a Express ako frameworky pre svoj začiatočnícky web developent tutoriál.

Kód: [Vybrat]
const express = require("express");
const path = require("path");

const app = express();

app.use('/', express.static(path.join(__dirname, 'public')));

app.set('views', path.resolve(__dirname, "views"));
app.set('view engine', 'ejs');

app.get("/today", (req, res) => {

    let today = new Date();
    res.render("show_date", {now: today});
});

app.use((req, res) => {
    res.statusCode = 404;
    res.end("404 - page not found");
});

app.listen(3000, () => {

    console.log("Application started on port 3000");
})

V pár riadkoch kódu si nastavím posielanie statických stránok, template engine, jednu route cestu, a 404.
Tomuto sa môže vyrovnať jedine Python Flask. Porovnajme takýto prístup trebárs s klasickou Java webovou
aplikáciou, a jej WAR súbormi, WEB-INF adresármom, XML deskriptormi či anotáciami, zbytočne komplexnými servletmi... X zbytočne komplexných úkonov navyše.

Skutočná sila JavaScriptu sa skrýva vo  funkcionálnom programovaní. Nasledujúci kód vytvorí niekoľko objektov
pomocou JSON notácie (porovnajte s komplikovanou tvorbou objektov v Jave alebo C#) a spracuje ich pomocou
funkcionálnej knižnice ramda. Čistá krása.

Kód: [Vybrat]
const R = require('ramda');
const moment = require('moment');

const users = [
  { name: 'John', city: 'London', born: '2001-04-01' },
  { name: 'Lenny', city: 'New York', born: '1997-12-11' },
  { name: 'Andrew', city: 'Boston', born: '1987-02-22' },
  { name: 'Peter', city: 'Prague', born: '1936-03-24' },
  { name: 'Anna', city: 'Bratislava', born: '1973-11-12' },
  { name: 'Albert', city: 'Bratislava', born: '1940-18-19' },
  { name: 'Adam', city: 'Trnava', born: '1983-12-01' },
  { name: 'Robert', city: 'Bratislava', born: '1935-05-15' },
  { name: 'Robert', city: 'Prague', born: '1998-03-14' }
];

let res1 = R.filter(R.where({ city: R.equals('Bratislava') }))(users);
console.log(res1);

let res2 = R.filter(R.where({
  city: R.equals('Bratislava'),
  name: R.startsWith('A')
}))(users);

console.log(res2);

let res3 = R.filter(R.where({
  born: (dt) => getAge(dt) > 40}))(users);

console.log(res3);

function getAge(dt) {

    return moment.duration(moment() - moment(dt)).years();
}
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 28. 08. 2018, 17:10:59
Porovnajme takýto prístup trebárs s klasickou Java webovou
aplikáciou, a jej WAR súbormi, WEB-INF adresármom, XML deskriptormi či anotáciami, zbytočne komplexnými servletmi... X zbytočne komplexných úkonov navyše.

Ehm.. jen pokud chcete. Už zmíněný Spark (http://sparkjava.com/) nebo třeba Pippo (http://www.pippo.ro/) nic takového totiž nepotřebují.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: era 28. 08. 2018, 17:55:58
Skutočná sila JavaScriptu sa skrýva vo  funkcionálnom programovaní. Nasledujúci kód vytvorí niekoľko objektov
pomocou JSON notácie (porovnajte s komplikovanou tvorbou objektov v Jave alebo C#) a spracuje ich pomocou
funkcionálnej knižnice ramda. Čistá krása.

LINQ v c# mi prijde jeste hezci. Mimochodem ten vas slavny javascript vam ani neda vedet ze 18 neni platny mesic. Na neco je js samozrejme fajn, ale ostatni jazyky toho maji taky dost co nabidnout.

Kód: [Vybrat]
using System;
using System.Linq;

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            var users = new[]
            {
                new { name = "John", city = "London", born = new DateTime(2001, 04, 01) },
                new { name = "Lenny", city =  "New York", born = new DateTime(1997,12,11) },
                new { name = "Andrew", city = "Boston", born = new DateTime(1987,2,22) },
                new { name = "Peter", city = "Prague", born = new DateTime(1936, 3, 24) },
                new { name = "Anna", city = "Bratislava", born = new DateTime(1973, 11, 12) },
                new { name = "Albert", city = "Bratislava", born = new DateTime(1940, 8, 19) },
                new { name = "Adam", city = "Trnava", born = new DateTime(1983, 12, 01) },
                new { name = "Robert", city = "Bratislava", born = new DateTime(1935, 05, 15) },
                new { name = "Robert", city = "Prague", born = new DateTime(1998,03,14) }
            };

            var res1 = users.Where(user => user.city == "Bratislava");
            Console.WriteLine(string.Join(",", res1.Select(user => $"{user.name} {user.city}")));

            var res2 = users.Where(user => user.city == "Bratislava" && user.name.StartsWith("A"));
            Console.WriteLine(string.Join(",", res2.Select(user => $"{user.name} {user.city}")));

            Func<DateTime, int> getAge = birthDate =>
            {
                DateTime n = DateTime.Now;
                int age = n.Year - birthDate.Year;

                if (birthDate.AddYears(age) < n) age--;

                return age;
            };

            var res3 = users.Where(user => getAge(user.born) > 40);
            Console.WriteLine(string.Join(",", res3.Select(user => $"{user.name} {user.city} {getAge(user.born)}")));

            Console.ReadKey();
        }
    }
}



Název: Re:Proč ten hype okolo Go?
Přispěvatel: Rado2 28. 08. 2018, 18:27:02

LINQ v c# mi prijde jeste hezci. Mimochodem ten vas slavny javascript vam ani neda vedet ze 18 neni platny mesic. Na neco je js samozrejme fajn, ale ostatni jazyky toho maji taky dost co nabidnout.


Tiež hlasujem za C# :) Len taký detail, aj keď funkcia getAge() vyzerá v C# zložitejšie, podľa mňa aj je správnejšie, i keď neoveroval som to, ale ten výpočet v JS príklade podľa mňa neberie do úvahy prestupné roky. (C# verziu sum skúsil a tá má problém len v deň narodenín - vráti ešte o rok menej)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 28. 08. 2018, 19:21:57
to getAge
Kód: [Vybrat]
Func<DateTime, int> getAge = birthDate => Math.Floor((DateTime.Now - birthDate).TotalDays/365.0);
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 28. 08. 2018, 19:29:41
to getAge
Kód: [Vybrat]
Func<DateTime, int> getAge = birthDate => Math.Floor((DateTime.Now - birthDate).TotalDays/365.0);
To je zcela špatně.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ovce 28. 08. 2018, 19:35:06
to getAge
Kód: [Vybrat]
Func<DateTime, int> getAge = birthDate => Math.Floor((DateTime.Now - birthDate).TotalDays/365.0);
To je zcela špatně.
Jasně třeba je, ale tak to napiš, co je špatně. Co tě pozoruji, tak budeš ten druh dementa co natahuje diskuzi aby ukázal jak je chytrej.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Rado2 28. 08. 2018, 19:45:21
to getAge
Kód: [Vybrat]
Func<DateTime, int> getAge = birthDate => Math.Floor((DateTime.Now - birthDate).TotalDays/365.0);
To je zcela špatně.
Jasně třeba je, ale tak to napiš, co je špatně. Co tě pozoruji, tak budeš ten druh dementa co natahuje diskuzi aby ukázal jak je chytrej.

Asi tým myslí, že nie každý rok má 365 dní, ale podľa mňa to je ekvivalent toho príkladu v JavaScripte
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Jano7 28. 08. 2018, 20:42:49
Citace
Ehm.. jen pokud chcete. Už zmíněný Spark (http://sparkjava.com/) nebo třeba Pippo (http://www.pippo.ro/) nic takového totiž nepotřebují.

Kiež by to bolo tak. Spark aj Pippo sú malé, hobby projekty. Na Sparku aktívne pracuje pár ľudí.
Spark funguje defaultne s embedded Jetty, ktorý však nemá možnosť nakonfigurovať si connection pooling. Takže v skutočnosti sa nevyhneme nasadeniu na Tomcat serveri a WARku, XMLkám atď.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Jano7 28. 08. 2018, 20:54:15
Citace
LINQ v c# mi prijde jeste hezci. Mimochodem ten vas slavny javascript vam ani neda vedet ze 18 neni platny mesic.

Dobrý postreh. Moment.js funguje defaultne vo forgiving móde; na validáciu treba zapnúť strict mód a zavolať isValid() metódu.

Citace
Tiež hlasujem za C# :) Len taký detail, aj keď funkcia getAge() vyzerá v C# zložitejšie, podľa mňa aj je správnejšie, i keď neoveroval som to, ale ten výpočet v JS príklade podľa mňa neberie do úvahy prestupné roky. (C# verziu sum skúsil a tá má problém len v deň narodenín - vráti ešte o rok menej)

Nie som si istý pri tej duration() metóde, tam je to nejako zamotané; dokumentácia odporúča použiť diff() metódu.

Kód: [Vybrat]
const moment = require('moment');

let borodinoBattle = moment('1812-09-07');

let now = moment();
let days = now.diff(borodinoBattle, 'days');

console.log(`On ${now.format('ll')}, ${days} days have passed since the Borodino battle.`);

K dnešnému dňu uplynulo od Bitky pri Borodine 75230 dní
podľa https://www.timeanddate.com/date/durationresult.html?m1=09&d1=07&y1=1812&m2=8&d2=28&y2=2018

A JavaScript príklad vráti presnú hodnotu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Rado2 28. 08. 2018, 21:03:13

K dnešnému dňu uplynulo od Bitky pri Borodine 75230 dní
podľa https://www.timeanddate.com/date/durationresult.html?m1=09&d1=07&y1=1812&m2=8&d2=28&y2=2018

A JavaScript príklad vráti presnú hodnotu.

Ale počet dní je niečo iné, ako počet rokov. Rozdiel dvoch dátumov je napr. 365 dní. Je to rok, alebo nie? To záleží od toho, či interval začal v prestupný rok, ale tú informáciu už po odpočítaní dvoch dátumov nemáš. Takže moment  síce nepoznám, ale ako vravím pochybujem, že by si k intervalu pamätal aj jeho začiatok a na jeho základe vrátil správny počet rokov. Ale je to už debata dosť mimo témy.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: anonym 28. 08. 2018, 22:28:14
Citace
Ehm.. jen pokud chcete. Už zmíněný Spark (http://sparkjava.com/) nebo třeba Pippo (http://www.pippo.ro/) nic takového totiž nepotřebují.

Kiež by to bolo tak. Spark aj Pippo sú malé, hobby projekty. Na Sparku aktívne pracuje pár ľudí.
Spark funguje defaultne s embedded Jetty, ktorý však nemá možnosť nakonfigurovať si connection pooling. Takže v skutočnosti sa nevyhneme nasadeniu na Tomcat serveri a WARku, XMLkám atď.

Tak zrovna connection pool je to nejmensi co me trapi, na to je HikariCP a mozna ze je to i rychlejsi nez ten Tomcatuv.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: stilett 29. 08. 2018, 00:44:45
Abych trochu přispěl do diskuze.

Go používáme na produkci. Ve sledovanitv.cz s ním např. streamujeme desítky 10Gb/s. Používáme ho řadu let. Začali jsme s ním tedy dříve, než vznikl zmiňovaný hype.

Za jeho hlavní výhody považuji:


Nemohu souhlasit s některými tvrzeními. Zejména, že se jedná o jazyk pro lepiče jako PHP. Přístup vývojářů PHP je v mnoha ohledech přesně opačný. Do PHP se pořád přidávají nové konstrukce a funkcionality, aby to umělo všechno možné. Některé funkce pak vrací chybové výsledky, jiné hází výjimky.

Taky rozhodně nelze tvrdit, že to není OOP jazyk, tudíž se v něm programuje procedurálně. Mohli bychom se přít, co znamená OOP. Liší se hodně od Javy (nemá třídy, hierarchii typů). Ale rozhodně umí polymorfismus a zapouzdření, což jsou podle mě ty nejdůležitější vlastnosti z OOP. Programuje se hodně objektovým stylem a základní knihovna je tak postavená. Koncept interfaců v Go je velmi šikovný a je hodně blízký abstraktním datovým typům. Důsledkem je existence velmi malých interfaců, které splňuje kdeco. Tudíž to lze jednoduše propojovat.

Některé věci mě také zarazily, ale posléze mi došlo, že autoři Go to měli promyšlené. Např. jazyk nepodporuje výjimky, chyby jsou návratové hodnoty. Říkal jsem si, teď musím všude testovat návratovou hodnotu, což je nepohodlné. Ale pak jsem si všiml několika věcí:

Další sporný příklad je, že standardní nástroje pro instalací balíků třetích stran neřeší jejich verze. (Mimochodem v aktuální verzi 1.11 to už je a i předtím existovaly "neoficiální" nástroje). Což mělo jeden velmi pozitivní výsledek. Všichni napsali balíky tak, že jsou zpětně kompatibilní. Prostě je zvykem dělat úpravy tak, aby se kompatibilita nerozbíjela. Za mě jednoznačné plus. Například takové javascriptové npm umožňuje balíkům záviset na různých verzích jiného balíku, což vyřeší veškeré zpětné i dopředné nekompatibility. Ale je z toho naprosté peklo pro údržbu, balast ve výsledných souborech a práce při přechodu na novější verzi, protože vývojáři rozbíjí kompatibilitu jako šílenci.

Co týče výkonu, tak si nemohu stěžovat. Jasně, že to v čistém algoritmu nemá na C. Ale reálně se to používá na věci, kde se provádí věci paralelně a dělá se rozličné I/O. A tam si vede velmi dobře a poráží Javu.

V jazyce mi chybí snad generika, která by se hodila do přísně typovaného jazyka. O tomto nedostatku autoři vědí, ale řekli, že aktuálně neznají dobrou implementaci, která by nenarušovala jiné zásady. Tak je tam nedali, protože by je tam pak museli tak nechat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kkt1 29. 08. 2018, 01:01:50
Stilett, na co konkretne pouzivate go jestli muzes prozradit? Transcoding? Stream? Nebo? Jeste jeden dotaz mimo go - dle vaseho webu streamujete v ramci cele EU, coz minimalne u nektereho obsahu neni z pohledu licenci mozne. Mate nejakou vpnku nebo proste clovek registrovany v CR muze sledovat cokoliv v ramci EU?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 29. 08. 2018, 01:37:48
Abych trochu přispěl do diskuze.

Go používáme na produkci. Ve sledovanitv.cz s ním např. streamujeme desítky 10Gb/s. Používáme ho řadu let. Začali jsme s ním tedy dříve, než vznikl zmiňovaný hype.

Za jeho hlavní výhody považuji:

  • Pragmatický přístup vývojářů. Má to právě ty věci, které jsou potřeba na praktický vývoj, ale nic navíc.
  • Konzervativní přístup ke změnám a promyšlenost návrhu směrem do budoucna. Pokud člověk napsal program v souladu se specifikací 1.0, tak i v nejnovější verzi kompilátoru a základní knihovny program bude fungovat beze změn.
  • Snaží se tlačit jeden styl. Dá se potom dobře číst a přidávat kód jiných lidí.
  • Jednoduchost a snaha zredukovat magic a překvapivé chování. Žádné přetěžování operátorů, žádné settery/gettery, automatické konverzy typů, overloaded funkce. Je pak snadné vyčíst, co kód dělá.
  • Snadná paralelizace, na kterou je připraven celý jazyk a základní knihovna.
  • Výkon programů, ačkoliv se jedná o paměťově bezpečný jazyk ve smyslu žádné buffer overflow a neplatné pointery.
  • Jednoduchost nástrojů.
  • Základní knihovna, která je velmi konzistentní a umožňuje logické propojení funkcionalit z různých jejích částí. Jednoduché věci lze udělat jednoduše, ale nebrání mi si do něčeho sáhnout po svém.

Nemohu souhlasit s některými tvrzeními. Zejména, že se jedná o jazyk pro lepiče jako PHP. Přístup vývojářů PHP je v mnoha ohledech přesně opačný. Do PHP se pořád přidávají nové konstrukce a funkcionality, aby to umělo všechno možné. Některé funkce pak vrací chybové výsledky, jiné hází výjimky.

Taky rozhodně nelze tvrdit, že to není OOP jazyk, tudíž se v něm programuje procedurálně. Mohli bychom se přít, co znamená OOP. Liší se hodně od Javy (nemá třídy, hierarchii typů). Ale rozhodně umí polymorfismus a zapouzdření, což jsou podle mě ty nejdůležitější vlastnosti z OOP. Programuje se hodně objektovým stylem a základní knihovna je tak postavená. Koncept interfaců v Go je velmi šikovný a je hodně blízký abstraktním datovým typům. Důsledkem je existence velmi malých interfaců, které splňuje kdeco. Tudíž to lze jednoduše propojovat.

Některé věci mě také zarazily, ale posléze mi došlo, že autoři Go to měli promyšlené. Např. jazyk nepodporuje výjimky, chyby jsou návratové hodnoty. Říkal jsem si, teď musím všude testovat návratovou hodnotu, což je nepohodlné. Ale pak jsem si všiml několika věcí:
  • Nelibost vůči chybovým návratovým hodnotám byla částečně způsobena tím, že zejména v C mají funkce jen jednu návratovou hodnotu. A pro signalizaci chyby se často používají speciální hodnoty (např. -1). To je zmatečné a navíc o chybě nemám žádné podrobnosti. V Go se to řeší vracením více hodnot a jedna z nich je chyba.
  • V Javě hází výjimku případy, které vlastně nejsou výjimečné (např. parsování řetězce poslaného uživatelem na číslo, otevření souboru, který nemusí existovat). Tyto chyby často chci ošetřit v normální toku programu a místo toho musím blbnout s catch bloky.
  • Zvláště u serverových aplikací je potřeba na chyby patřičně reagovat (zkusit něco znovu, stornovat co nejmenší práci), spíše než je jen detekovat. Výjimky vedou k tomu, že programátoři nechají výjimku propadnout na místo, kde už nelze dobře řešit.
  • Chyba jako extra návratová hodnota člověka donutí se fakt zamyslet nad tím, co s tou chybu bude dělat.

Další sporný příklad je, že standardní nástroje pro instalací balíků třetích stran neřeší jejich verze. (Mimochodem v aktuální verzi 1.11 to už je a i předtím existovaly "neoficiální" nástroje). Což mělo jeden velmi pozitivní výsledek. Všichni napsali balíky tak, že jsou zpětně kompatibilní. Prostě je zvykem dělat úpravy tak, aby se kompatibilita nerozbíjela. Za mě jednoznačné plus. Například takové javascriptové npm umožňuje balíkům záviset na různých verzích jiného balíku, což vyřeší veškeré zpětné i dopředné nekompatibility. Ale je z toho naprosté peklo pro údržbu, balast ve výsledných souborech a práce při přechodu na novější verzi, protože vývojáři rozbíjí kompatibilitu jako šílenci.

Co týče výkonu, tak si nemohu stěžovat. Jasně, že to v čistém algoritmu nemá na C. Ale reálně se to používá na věci, kde se provádí věci paralelně a dělá se rozličné I/O. A tam si vede velmi dobře a poráží Javu.

V jazyce mi chybí snad generika, která by se hodila do přísně typovaného jazyka. O tomto nedostatku autoři vědí, ale řekli, že aktuálně neznají dobrou implementaci, která by nenarušovala jiné zásady. Tak je tam nedali, protože by je tam pak museli tak nechat.
Go (něco jako) výjimky má, panic/recover se ve standardní knihovně používá poměrně často, například v net/http se zachycuje panic z obslužných korutin, aby nespadl celý server. Funguje to podobně jako longjump.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ivan Jaros 29. 08. 2018, 01:39:38
Hajp? Aky hajp pre boha. Si pozri pracovne ponuky a zistis ze a) jediny aktivny zaujem je v USA a trochu na severe EU(ale to je skor len tak ze Go je doplnkovy jazyk) a za b) akykolvek "hajp" bol tak rok-dva dozadu. Si pozri Google trendy. Go nema uz ziadne momentum ktore by ho nejak tlacilo do mainstreamu(nejake nezmyselne SO ankety su naprosto bezpredmetne)

Ak sa ti jazyk paci, pouzivaj ho. Ak nie, tak kasli na to. Co riesis?

PS: je taky zazity fakt ze Go ludia pochopia az minimalne po roku-dvoch aktivnej prace s nim kvoli zazitym zvykom z inych jazykov.

PPS: panic sa v Go da naprosto bez problemov pouzivat ako klasicka exception, zase netreba brat oficialnu dokumentaciu ako bibliu. To iste plati o velkosti interfejsov, ne/pouzivanie oznacenia this, self, me a plno dalsich veci.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: stilett 29. 08. 2018, 07:11:51
Stilett, na co konkretne pouzivate go jestli muzes prozradit? Transcoding? Stream? Nebo? Jeste jeden dotaz mimo go - dle vaseho webu streamujete v ramci cele EU, coz minimalne u nektereho obsahu neni z pohledu licenci mozne. Mate nejakou vpnku nebo proste clovek registrovany v CR muze sledovat cokoliv v ramci EU?
Na samotný transcoding Go nepoužíváme. Ale na řízení transcodingu, na ukládání a distribuci streamů (CDN). A další různé věci.

Co se týče vysílání v EU, tak to děláme v souladu s evropským nařízením o přeshraniční přenositelnosti služeb (letošní záležitost). Tedy streamy můžete přijímat v celé EU, ale musíte prokázat, že máte bydliště v ČR.


Ohledně panic/recover. Ano, Go podporuje takovou věc. Ale její četnost a způsob použití se dost liší od výjimek ála Java. Oproti vracení chyb se to používá zcela zanedbatelně. Jako nejužitečnější vidím použití, pokud chci mít nějaké "stabilní jádro" a z něj pouštím kód, který by mohl spadnout. Ten HTTP server je typický příklad. Ale rozhodně standardní knihovna není udělaná tak, že funkce házely panic, který by měl uživatel zachytávat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 29. 08. 2018, 07:46:20
Ohledně panic/recover. Ano, Go podporuje takovou věc. Ale její četnost a způsob použití se dost liší od výjimek ála Java. Oproti vracení chyb se to používá zcela zanedbatelně. Jako nejužitečnější vidím použití, pokud chci mít nějaké "stabilní jádro" a z něj pouštím kód, který by mohl spadnout. Ten HTTP server je typický příklad. Ale rozhodně standardní knihovna není udělaná tak, že funkce házely panic, který by měl uživatel zachytávat.
Přesné a výstižné.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: tralala 29. 08. 2018, 09:51:23
Citace
Ehm.. jen pokud chcete. Už zmíněný Spark (http://sparkjava.com/) nebo třeba Pippo (http://www.pippo.ro/) nic takového totiž nepotřebují.

Kiež by to bolo tak. Spark aj Pippo sú malé, hobby projekty. Na Sparku aktívne pracuje pár ľudí.
Spark funguje defaultne s embedded Jetty, ktorý však nemá možnosť nakonfigurovať si connection pooling. Takže v skutočnosti sa nevyhneme nasadeniu na Tomcat serveri a WARku, XMLkám atď.

co tak si to tam dorobit a poslat im pull request?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 29. 08. 2018, 16:21:08
Spark funguje defaultne s embedded Jetty, ktorý však nemá možnosť nakonfigurovať si connection pooling. Takže v skutočnosti sa nevyhneme nasadeniu na Tomcat serveri a WARku, XMLkám atď.

Máte pravdu, proto jsem zmínil to Pippo, které umí běžet třeba na Undertow a dá se lépe konfigurovat.

Ano, oba projekty jsou malé a pracuje na nich málo lidí. Zatím žijí, komunitu mají a podporují vše co od nich chci. Tak proč bych se tím trápil.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 29. 08. 2018, 17:21:56
Pro těch pár lidí, co tady neblili nesmysly a nevedli hate, 3 nejnovější návrhy core týmu na zjednodušení kontrolu chyb a generika v Go2. Vše zpětně kompatibilní.

https://go.googlesource.com/proposal/+/master/design/go2draft.md (https://go.googlesource.com/proposal/+/master/design/go2draft.md)

A pro toho, co tady mlel nesmysly o rychlosti Go vs. Java,  při veškerých výhradách proti Benchmarks Game, jednoduchý pohled dává výsledek 5:5. I u nejpomalejšího benchmarku (kde je Go z důvodu svého návrhu opravdu velmi slabé) je rozdíl 3.5x. To vše s bonusem až 20x větší spotřeby paměti u Javy (jen v jednom případě byla Java paměťově méně náročná - 1.3x).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 29. 08. 2018, 17:38:43
Zaujimave generika a verzie balickov...
pri tom som doteraz od ludi co aktivne robia v Go pocul, nieco na styl, ze to nie je bug to je feature... proste, pre ze komunita okolo Go to ani nechce ani nepotrebuje  ;D

Mozno s toho za 4-5 rokov bude pouzitelny jazyk.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 29. 08. 2018, 17:51:26
Pro těch pár lidí, co tady neblili nesmysly a nevedli hate, 3 nejnovější návrhy core týmu na zjednodušení kontrolu chyb a generika v Go2. Vše zpětně kompatibilní.

https://go.googlesource.com/proposal/+/master/design/go2draft.md (https://go.googlesource.com/proposal/+/master/design/go2draft.md)


Tak až ty chyby v návrhu ofixují, můžeme se bavit dál.

Že je to mizerný jazyk teď, neznamená, že za pár let nezačne dávat smysl.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 29. 08. 2018, 18:47:52
A pro toho, co tady mlel nesmysly o rychlosti Go vs. Java,  při veškerých výhradách proti Benchmarks Game, jednoduchý pohled dává výsledek 5:5. I u nejpomalejšího benchmarku (kde je Go z důvodu svého návrhu opravdu velmi slabé) je rozdíl 3.5x. To vše s bonusem až 20x větší spotřeby paměti u Javy (jen v jednom případě byla Java paměťově méně náročná - 1.3x).

Co znamená výsledek 5:5? Po zkrácení mi to dává 1:1, tzn. srovnatelné.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: stilett 29. 08. 2018, 19:45:47
Ono je velmi těžké porovnávat programovací jazyky, pokud jste je nějakou dobu nepoužívali. Je potřeba je porovnávat komplexně. Určité problémy se tam řeší rozdílným způsobem. Takže opravdu není vhodné vybrat si jednu věc a bez kontextu ji odsoudit.

Neodpustím si jedno přirovnání, jak probíhají takové diskuse:
Potkají se uživatel povozu a uživatel auta.
Uživatel auta: Jsem se svým autem spokojen.
Uživatel povozu: A za jak dlouho do něj zapřáhneš koně?
Uživatel auta: To moc nejde.
Uživatel povozu: Tak to je auto k ničemu.

Do toho přijde příznívec aut a začne vymýšlet, že se to dá na auto navařit. Čímž jen uživatele povozu utvrdí, že auto stojí za houby, protože na povoz nic přivařovat nemusí. Následuje malá odbočka, kdy se řeší, jestli by taková úprava prošla homologací. Pak někdo řekne, že to bylo rozhodnutí výrobce neumožnit zapřahání koně, protože to nikdo nechce. Načež je obviněn, že nedostatek vydává za vlastnost.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: andy 29. 08. 2018, 19:49:31
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani). Ako oracle vydal graalvm s native-image, tak som na go uplne zabudol :). Jednoducho nemam argument nepouzit javu. Nejde s tym sice skompilovat vsetko, ale aj tak paradicka.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kikina 29. 08. 2018, 20:04:27
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani). Ako oracle vydal graalvm s native-image, tak som na go uplne zabudol :). Jednoducho nemam argument nepouzit javu. Nejde s tym sice skompilovat vsetko, ale aj tak paradicka.

a bylo tech if nejak vic nez bloku try-catch v jave?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 29. 08. 2018, 20:07:52
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani).

Pokud jsi to psal strukturovaně, tak se nediv.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 29. 08. 2018, 20:11:02
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani). Ako oracle vydal graalvm s native-image, tak som na go uplne zabudol :). Jednoducho nemam argument nepouzit javu. Nejde s tym sice skompilovat vsetko, ale aj tak paradicka.

a bylo tech if nejak vic nez bloku try-catch v jave?

Pokud ty bloky try-catch děláš správně, tak jich bude mnohem méně než počet testování chyb po každém návratu z procedury.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 29. 08. 2018, 20:44:49
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani).

Pokud se nepletu, tak boilerplate vypadá asi takto:
Kód: [Vybrat]
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}

Je snad nějaký problém to předělat takto?
Kód: [Vybrat]
f, err := os.Open("filename.ext")
log.Fatal(err)

kde log.Fatal() bude vypadat asi takto:
Kód: [Vybrat]
func Fatal() {
if err == nil {
return
}
fmt.Println(err)
}
Název: Re:Proč ten hype okolo Go?
Přispěvatel: andy 29. 08. 2018, 21:07:30
Je ich menej, lebo casto v tom catch proste nie je co zachranit, takze sa ani ziaden try-catch nerobi.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 29. 08. 2018, 21:59:08
Tych try catch je ovela menej, v Go ak to chces robit dobre je co riadok to testovanie chyby, pri try catch to bude minimalne jeden try catch na telo metody, ak chces brutalne logovat, ked nie staci podla potreby.

@Kit: v tom priklade ale musis nejako zmenit flow programu, vo f mas teraz neplatnu hodnotu.

@stilett: To je dost zle prirovnanie.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: jak24 29. 08. 2018, 21:59:23
https://github.com/ethereum/go-ethereum (https://github.com/ethereum/go-ethereum)

Market Cap Ethereum   $29,438,579,791
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 30. 08. 2018, 00:33:36
Ja som si v go skusal rozne mensie tooly na vlastne pouzitie (typu webcrawler sprav na machine learning atd), ale mal som pocit, ze pisem stale dookola iba "if" (narazam na kontrolu chyb z volani). Ako oracle vydal graalvm s native-image, tak som na go uplne zabudol :). Jednoducho nemam argument nepouzit javu. Nejde s tym sice skompilovat vsetko, ale aj tak paradicka.

a bylo tech if nejak vic nez bloku try-catch v jave?

Pokud ty bloky try-catch děláš správně, tak jich bude mnohem méně než počet testování chyb po každém návratu z procedury.
A správně je to jak? Ona základní potíž spočívá ve správné klasifikaci chybového stavu. Bez výjimek s tím problém není, protože není rozdíl mezi stavy. Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy? A proč?

Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 30. 08. 2018, 00:57:39
Pro těch pár lidí, co tady neblili nesmysly a nevedli hate, 3 nejnovější návrhy core týmu na zjednodušení kontrolu chyb a generika v Go2. Vše zpětně kompatibilní.

https://go.googlesource.com/proposal/+/master/design/go2draft.md (https://go.googlesource.com/proposal/+/master/design/go2draft.md)


Tak až ty chyby v návrhu ofixují, můžeme se bavit dál.

Že je to mizerný jazyk teď, neznamená, že za pár let nezačne dávat smysl.
Jj, na to, že to je mizerný jazyk, je docela použitelný už teď. A kolik zajímavého SW je v tom napsáno už teď. Trochu mi to hlava nebere...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 01:06:36
Pokud ty bloky try-catch děláš správně, tak jich bude mnohem méně než počet testování chyb po každém návratu z procedury.
A správně je to jak? Ona základní potíž spočívá ve správné klasifikaci chybového stavu. Bez výjimek s tím problém není, protože není rozdíl mezi stavy. Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy? A proč?

Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.

Je to přesně obráceně, než jak to píšeš. Chybový stav je obvykle nějaké číslo, zatímco výjimka má svou třídu, textový popis a případně ještě kód chyby. Výjimka tedy obsahuje celý potřebný kontext a když se nechá správně propadnout, tak se kompletně vytrasuje.

Jak si mám představit "Chci otevřít soubor, který mezi tím někdo smazal"? Pro mne je to pouhé "Chci otevřít soubor, který neexistuje" - vyhodí to výjimku. Dělení nulou? - výjimka. Index mimo meze - výjimka. Chybové stavy pro mne přestaly existovat - nepoužívám je, protože jsou málo popisné. Když neošetřím chybový stav, tak se mi proces vysype o kus dál. Když neošetřím výjimku, tak mi propadne až do záchytu nebo ukončí proces. Výjimky jsou tedy spolehlivější.

Výjimka by však měla být výjimkou. Nelze ji tedy zneužívat k řízení běhu programu, ale jen tam, kde za běhu došlo k chybě. Výjimky s laděním nijak nesouvisí.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 30. 08. 2018, 01:22:51
Tak až ty chyby v návrhu ofixují, můžeme se bavit dál.

Vím, že asi nemá smysl na tebe opakovaně reagovat, už jsme se o tom tady bavili, ale stejně mi to nedá. Tak nějak si nedokážu připustit, že zrovna ty bys byl tak zabedněný.

Neexistuje jedna univerzální pravda. Někdo má prostě jiné priority než ty. To, že jsou trekové boty jedny z nejuniverzálnějších neznamená, že v nich půjdu na ples nebo do divadla.

To, že Go nemá generika, není proto, protože nemít je je fajn. Každý by je chtěl. But, there ain't no such thing as a free lunch. A autoři psali, že nenašli způsob (u první verze), jak je implementovat, aniž by to vážně poškodilo ty priority, které považovali za rozhodující. Tak je raději neimplementovali vůbec (třeba právě kvůli kompatibility). Časem se ukázalo, že lidé chtějí používat Go i tam, kde ty generika jsou hodně potřeba. A tak se autoři (po 10 letech) rozhodli, že zkusí najít cestu, jak je doplnit. Tak, aby to pokud možno nenarušilo a nerozbilo dosavadní základnu. A jen tak mimochodem dodávám, že explicitně zmiňují: "We want to learn from and avoid the problems that generics have caused for C++ and in Java."

Mimochodem, to Overview velice pěkně a komplexně shrnuje implementaci generik v mnoha jazycích, včetně porovnání i návrhy, které zvažovali v Go. Poučné čtení.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 30. 08. 2018, 01:35:23

Chybový stav je obvykle nějaké číslo, zatímco výjimka má svou třídu, textový popis a případně ještě kód chyby. Výjimka tedy obsahuje celý potřebný kontext a když se nechá správně propadnout, tak se kompletně vytrasuje.
Tohle platí pro C, ne ale pro Go. Chyba tam má všechny tyto vlastnosti, které popisuješ.


Jak si mám představit "Chci otevřít soubor, který mezi tím někdo smazal"? Pro mne je to pouhé "Chci otevřít soubor, který neexistuje" - vyhodí to výjimku. Dělení nulou? - výjimka. Index mimo meze - výjimka. Chybové stavy pro mne přestaly existovat - nepoužívám je, protože jsou málo popisné. Když neošetřím chybový stav, tak se mi proces vysype o kus dál. Když neošetřím výjimku, tak mi propadne až do záchytu nebo ukončí proces. Výjimky jsou tedy spolehlivější.

Výjimka by však měla být výjimkou. Nelze ji tedy zneužívat k řízení běhu programu, ale jen tam, kde za běhu došlo k chybě. Výjimky s laděním nijak nesouvisí.
Ono to zbožštění výjimek má své meze. Asi bych to nepopsal lépe, tak dám jen odkaz. V něm je podstatná jedna informace. Ošetřit správně explicitní chybové stavy je težké. Ošetřit správně výjimky je velice těžké.
https://blogs.msdn.microsoft.com/oldnewthing/20050114-00/?p=36693 (https://blogs.msdn.microsoft.com/oldnewthing/20050114-00/?p=36693)

A opět nezbývá než zopakovat, "there ain't ...".
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 02:04:32
Tohle platí pro C, ne ale pro Go. Chyba tam má všechny tyto vlastnosti, které popisuješ.

Chyba v Go je normálním objektem, se kterým se dá pracovat jako s výjimkou. Neoznačoval bych to jako chybový stav, protože když k chybě nedojde, vrátí null. Je to na mnohem vyšším levelu než v C, kde se při chybě obvykle vrací returnem nějaké záporné číslo.

Ono to zbožštění výjimek má své meze. Asi bych to nepopsal lépe, tak dám jen odkaz. V něm je podstatná jedna informace. Ošetřit správně explicitní chybové stavy je težké. Ošetřit správně výjimky je velice těžké.
https://blogs.msdn.microsoft.com/oldnewthing/20050114-00/?p=36693 (https://blogs.msdn.microsoft.com/oldnewthing/20050114-00/?p=36693)

A opět nezbývá než zopakovat, "there ain't ...".

Ten článek je zcestný - psal ho někdo, kdo objektově neprogramuje. To je také důvod, proč mu výjimky nevyhovují. Není tam uvedena žádná ukázka správně napsaného kódu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 30. 08. 2018, 11:17:51
Je to přesně obráceně, než jak to píšeš. Chybový stav je obvykle nějaké číslo, zatímco výjimka má svou třídu, textový popis a případně ještě kód chyby. Výjimka tedy obsahuje celý potřebný kontext a když se nechá správně propadnout, tak se kompletně vytrasuje.

Jak si mám představit "Chci otevřít soubor, který mezi tím někdo smazal"? Pro mne je to pouhé "Chci otevřít soubor, který neexistuje" - vyhodí to výjimku. Dělení nulou? - výjimka. Index mimo meze - výjimka. Chybové stavy pro mne přestaly existovat - nepoužívám je, protože jsou málo popisné. Když neošetřím chybový stav, tak se mi proces vysype o kus dál. Když neošetřím výjimku, tak mi propadne až do záchytu nebo ukončí proces. Výjimky jsou tedy spolehlivější.

Výjimka by však měla být výjimkou. Nelze ji tedy zneužívat k řízení běhu programu, ale jen tam, kde za běhu došlo k chybě. Výjimky s laděním nijak nesouvisí.
Pro mě otevření souboru, který neexistuje, není žádná výjimka. Je to normální situace jako každá jiná, není tedy důvod na ni reagovat nějakým jiným mechanismem. Dělení nulou? Buď je to bug v mém programu, nebo opět normální situace - to když tu nulu nějak zadal uživatel. Index mimo meze dtto.

Kontextem mám na mysli lexikální kontext - a ten předáním nějakého objektu prostě neobnovíš. Co je mi platné, že mám kompletní informace o výjimce, když z daného místa se na ni efektivně nedá reagovat jinak, než vyhodit to do nějakého logu a případně se zhroutit? Nebo mám do výjimkového objektu nacpat i reference na vše, čeho se ta výjimka týká, tím si ten lexikální kontext totálně rozbít a zamotat do toho ještě kontext dynamický - podle toho, zda dojde k výjimce? No děkuju pěkně!

Ten článek je zcestný - psal ho někdo, kdo objektově neprogramuje. To je také důvod, proč mu výjimky nevyhovují. Není tam uvedena žádná ukázka správně napsaného kódu.
Tak ukaž příklad nějakého správně napsaného kódu. Když jsem sem postnul jiný článek, reagoval jsi stejně - špatné použití výjimek. A jak je to tedy správně?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 30. 08. 2018, 11:22:24
Ten článek je zcestný - psal ho někdo, kdo objektově neprogramuje. To je také důvod, proč mu výjimky nevyhovují. Není tam uvedena žádná ukázka správně napsaného kódu.
Sebevědomí sahající do stratosféry je tady koukám běžný jev. Za to pokora je sprosté slovo.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 11:33:46
Ten článek je zcestný - psal ho někdo, kdo objektově neprogramuje. To je také důvod, proč mu výjimky nevyhovují. Není tam uvedena žádná ukázka správně napsaného kódu.
Sebevědomí sahající do stratosféry je tady koukám běžný jev. Za to pokora je sprosté slovo.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision. (Russell)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 30. 08. 2018, 12:20:06
[
Pro mě otevření souboru, který neexistuje, není žádná výjimka. Je to normální situace jako každá jiná, není tedy důvod na ni reagovat nějakým jiným mechanismem. Dělení nulou? Buď je to bug v mém programu, nebo opět normální situace - to když tu nulu nějak zadal uživatel. Index mimo meze dtto.

Pokus o otvorenie suboru, ktory nejestvuje je vynimocny stav pre metodu, ktora sa ma postarat o jeho otvorenie, respktive precitanie, lebo neokaze vykonat to co ma.

Potom su pripady, ked nexistencia suboru je ocakavany stav, ale vtedy sa to riesi  tym, ze si clovek nasjkor odtestuje existenciu suboru.
PS: pride mi semnticky nezmyslne pre tetovanie existencie suboru ho otvrat.
Obdobne je to s parsovanim vstupu od pouzivatela. Treba pouzivat metody, ktore nehadzu vinimku.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: JS 30. 08. 2018, 13:03:24
K vyjimkam vs. navratovym kodum:

Existuji tri zakladni typy zpusobu, jak osetrovat chybove stavy:
Vetsina jazyku nema moznost 3 (C sice error handlery v jakesi forme umi ale vicemene je to dost omezene, protoze v Unixu je to omezene). Nektere (Go?) nemaji v podstate ani moznost 2.

Z pohledu jednoduchosti a citelnosti programu (nikoli ovsem nutne kratkeho zapisu) je 1>2>3. Na druhou stranu, z pohledu flexibility a moznosti je 3>2>1. Neni zadny vitez ani porazeny.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 30. 08. 2018, 13:06:57
Bod 2 mas zle. Vynimky si prave zo sebou ten kontext maju niest (napriklad stak trace, dodatocne informacie,...).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 13:28:58
Nektere (Go?) nemaji v podstate ani moznost 2.
Go má výjimky.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 13:51:11
Pro mě otevření souboru, který neexistuje, není žádná výjimka. Je to normální situace jako každá jiná, není tedy důvod na ni reagovat nějakým jiným mechanismem. Dělení nulou? Buď je to bug v mém programu, nebo opět normální situace - to když tu nulu nějak zadal uživatel. Index mimo meze dtto.

S tímto přístupem bys výjimku nepoužil nikdy, vše by bylo normální situací. Výjimka je jazykovým konstruktem, který má za úkol usnadnit programátorovi práci tak, aby se mohl soustředit na to, co má program dělat.

Kontextem mám na mysli lexikální kontext - a ten předáním nějakého objektu prostě neobnovíš. Co je mi platné, že mám kompletní informace o výjimce, když z daného místa se na ni efektivně nedá reagovat jinak, než vyhodit to do nějakého logu a případně se zhroutit? Nebo mám do výjimkového objektu nacpat i reference na vše, čeho se ta výjimka týká, tím si ten lexikální kontext totálně rozbít a zamotat do toho ještě kontext dynamický - podle toho, zda dojde k výjimce? No děkuju pěkně!

Výjimku zachytím v místě, kde ten kontext ještě není narušen.

Ten článek je zcestný - psal ho někdo, kdo objektově neprogramuje. To je také důvod, proč mu výjimky nevyhovují. Není tam uvedena žádná ukázka správně napsaného kódu.
Tak ukaž příklad nějakého správně napsaného kódu. Když jsem sem postnul jiný článek, reagoval jsi stejně - špatné použití výjimek. A jak je to tedy správně?

V C# neprogramuji, ale Java má přesně na tohle try-with-resources. V C# se pro uvolnění zdrojů používá finally, pokud nevymysleli něco lepšího.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 14:01:57
Potom su pripady, ked nexistencia suboru je ocakavany stav, ale vtedy sa to riesi  tym, ze si clovek nasjkor odtestuje existenciu suboru.
PS: pride mi semnticky nezmyslne pre tetovanie existencie suboru ho otvrat.
Obdobne je to s parsovanim vstupu od pouzivatela. Treba pouzivat metody, ktore nehadzu vinimku.

Pokud se uživateli zobrazí seznam souborů, ze kterých si kliknutím má vybrat, který chce otevřít, tak je zbytečné testovat jeho existenci. Je však i hodně případů, že i samotná existence souboru nese vhodnou informaci a není nutné ho otevítat. V takovém případě je testování existence v naprostém pořádku.

Pokud parsuji chybný vstup od uživatele, tak výjimky používám zcela běžně. Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 14:02:08
V C# neprogramuji, ale Java má přesně na tohle try-with-resources. V C# se pro uvolnění zdrojů používá finally, pokud nevymysleli něco lepšího.
Vymysleli, C# má using/IDisposable.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 14:03:48
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: JS 30. 08. 2018, 16:12:37
Bod 2 mas zle. Vynimky si prave zo sebou ten kontext maju niest (napriklad stak trace, dodatocne informacie,...).

Nemam. Vyjimky odviji zasobniky, a proto v miste zpracovani vyjimky nemas treba lokalni promenne. Tenhle problem prave resi error handlery, ktere se volaji z mista chyby (vicemene) a vytvari novy frame na zasobniku (aniz by likvidovaly puvodni). Coz dovoluje to treba restart primo v miste, kde chyba vznikla (protoze se error handler muze vratit do funkce, ktera vyvolala chybovy stav), ale ma to i svoje nedostatky (vyssi overhead zpracovani chyby).

Bohuzel z historickych duvodu (hlavne diky vlivu Unixu) se na error handlery jako moznost zapomnelo. Ale v jazycich mimo Unixovou tradici, jako PL/I a Common Lisp, se normalne daji pouzit.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 16:13:31
Testování existence souboru před otevřením má tři zásadní problémy:

1) Zbytečný další přístup na disk, zbytečná další pomalá I/O operace.

2) Po otestování existence souboru a před otevřením se může cokoli stát: Někdo může soubor vymazat, apod.

3) Selhání otevření souboru má mnohem více příčin než jen jeho neexistenci: nejsou práva, soubor je zamčen, poškozená data na disku, vyčerpání limitu počtu otevřených souborů, soubor nelze otevřít v požadovaném režimu, atd. atd. atd.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: JS 30. 08. 2018, 16:19:12
Nektere (Go?) nemaji v podstate ani moznost 2.
Go má výjimky.

Go uz si tolik nepamatuji, ale co se tak zbezne divam na panic() etc. (jestli to je to co myslis), tak to je asi spis kategorie error handler nez vyjimky.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 16:24:20
Nektere (Go?) nemaji v podstate ani moznost 2.
Go má výjimky.

Go uz si tolik nepamatuji, ale co se tak zbezne divam na panic() etc. (jestli to je to co myslis), tak to je asi spis kategorie error handler nez vyjimky.
Myslím panic/recover. Funguje podobně jako longjmp. Jak už tu někdo psal, používá se pro ošetření panicu v gorutině, aby nepadl celý program (udělá se stack unwinding a pak se může ošetřit chyba, nicméně uvolňování různých zdrojů by měl řešit defer, takže spíš se prostě ten panic utlumí, aby program pokračoval).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 16:34:47
Citace
Tenhle problem prave resi error handlery, ktere se volaji z mista chyby (vicemene) a vytvari novy frame na zasobniku (aniz by likvidovaly puvodni). Coz dovoluje to treba restart primo v miste, kde chyba vznikla (protoze se error handler muze vratit do funkce, ktera vyvolala chybovy stav)

A jak často je ten restart užitečný? Jednou za miliardu let?

Pokud se v rámci ošetřování chyby (jedno jestli analýzou návratové hodnoty nebo výjimky) chci vrátit zpět, tak jednoduše zopakuji operaci znovu. Je to levnější a jistější.

Každý způsob ošetřování chyby má své plusy a mínusy. A vždy je ošetřování chyb hnusné, nepohodlné a narušuje tu původní krásu kódu, která předpokládá, že vše proběhne bez chyby. Polovina pouček, dogmat a ideologií jak psát správně kód se ukáže k ničemu, jakmile se důkladně začnou ošetřovat chyby.

1) Návratový kód je levný, ale blokuje nebo omezuje návratovou hodnotu pro chybové stavy, nikoli pro užitečnou informaci, kterou chceme vrátit z podprogramu. Ošetřování chyb vede k rozkošatělému stromu podmínek kolem volání funkce. Ještě horší nečitelnost programu v tomto případě pak dostáváme, pokud se důsledně nepoužívá goto, ať to stojí co to stojí.

2) Výjimky mají svůj název proto, že jsou "výjimkami z předpokládaného běhu programu", tedy z cesty, kdy vše je sluníčkové a bez chyby. Nejde tedy o "výjimečnou situaci", jak kdosi psal. Výjimky dokáží ošetřit i stavy, které návratové kódy z funkcí nedokáží. Výjimky navíc vyhazuje i samotný procesor, takže to skutečně funguje od lowest level až po highest level.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 16:50:34
Citace
Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy?

To je zase demagogie! Výjimky nezavádějí žádný další stav. Výjimky jsou pouze jedním z dalších řídících příkazů, které umožňují přenést vykonávání kódu na jiné místo, jako jsou podmínkové příkazy, cykly, skoky, volání podprogramu.

Považujete podmínkový příkaz (if) za definici nového chybového stavu programu? Měl byste při vaší demagogii. Protože dělá to samé, co výjimka. Přeskakuje vykonávání části kódu. Výjimka to jen dokáže v kontextu mezi podprogramy, nic více a nic méně.

Citace
Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.

To raději přestaňte programovat úplně. Například kontext ztrácíte kdykoli vyskočíte z podprogramu a kdykoli vyskočíte z nějakého bloku programu, který ukončuje platnost lokálních proměnných v něm definovaných.

Pokud by vám vadila řízená ztráta kontextu, pak jediné, co vám pomůže je: Všechny proměnné globální, žádné podprogramy, atd. atd. atd.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: era 30. 08. 2018, 17:20:16
A správně je to jak? Ona základní potíž spočívá ve správné klasifikaci chybového stavu. Bez výjimek s tím problém není, protože není rozdíl mezi stavy. Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy? A proč?

Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.

Je více druhů výjimek (pomáhám si z knížky Framework Design Guidelines):

Usage error

Programátor něco napsal špatně. Například ArgumentNullException když programátor předává někde null referenci tam kde neměl. Tyto výjimky se neošetřují (pouze například na nejvyšší úrovni) a slouží k tomu aby se objevily a ošetřily chyby v kódu projevující se až za běhu programu.

Execution error

Chyba které nelze zabránit v kódu i když je napsaný správně. Například, pokud chcete smazat soubor, tak ověříte jestli soubor existuje, ale než jej potom smažete, tak za tu chvilku už může být odstraněný. Tyto vyjímky se potom dají rozdělit na:
     
    Program error - který jde ošetřit v kodu pomocí try catch, například FileNotFoundException a dát třeba hlášku uživateli.
   
    System failure - nelze ošetřit programově, například chyba JIT překladače.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 17:20:25
Citace
Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy?

To je zase demagogie! Výjimky nezavádějí žádný další stav. Výjimky jsou pouze jedním z dalších řídících příkazů, které umožňují přenést vykonávání kódu na jiné místo, jako jsou podmínkové příkazy, cykly, skoky, volání podprogramu.

Považujete podmínkový příkaz (if) za definici nového chybového stavu programu? Měl byste při vaší demagogii. Protože dělá to samé, co výjimka. Přeskakuje vykonávání části kódu. Výjimka to jen dokáže v kontextu mezi podprogramy, nic více a nic méně.

Citace
Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.
To raději přestaňte programovat úplně. Například kontext ztrácíte kdykoli vyskočíte z podprogramu a kdykoli vyskočíte z nějakého bloku programu, který ukončuje platnost lokálních proměnných v něm definovaných.

Pokud by vám vadila řízená ztráta kontextu, pak jediné, co vám pomůže je: Všechny proměnné globální, žádné podprogramy, atd. atd. atd.
No tys tu chyběl. Jako vážně musíš tu diskuzi kazit svýma blábolama?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: era 30. 08. 2018, 17:23:16
Ještě tam mám překlep:

Usage error … Tyto výjimky se neošetřují (pouze například na nejvyšší úrovni) a slouží k tomu aby se objevily a OPRAVILY chyby v kódu projevující se až za běhu programu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:27:52
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat. Každý vůl, kromě vás co?
Program je dobře navržen, pokud s ním nemá uživatel problém interagovat. Všechno co může udělat špatně a já s tím nepočítám je moje blbost. Programátoři orientovaní na uživatele jsou k nezaplacení -- takových jako vy je ale bohužel většina. Plná huba keců na fórech a nic víc pane Géomètre.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 17:30:14
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat.
Na to nešlo nereagovat  :)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:36:45
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat.
Na to nešlo nereagovat  :)
Promiň, taky jsem se neudržel. Ale buď máš teda nadhled a pak kohokoliv i Ponkráce odargumentuj, nebo se k němu prostě nevyjadřuj. Jsem trochu alergickej na tyhle týpky co si bastlej Haskell, něco dělaj v Idris, v Cogu nebo Agdě nebo Mercury (hej chlapče znáš Mercury?) a dělaj chytráky na fórů -- jejich přínos většinou mimo/i na fórum = nula a plevelej to víc než ty na který si otvíraj hubu pane Geometre.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:38:24
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat.
Na to nešlo nereagovat  :)
+ vsadím se že jsi pan Geometre, ten styl se nedá fakt přehlídnout a vsadil bych se že jsi zboj, který měl přesně tenhle druh chování.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 17:44:34
Citace
Ta koncepce výjimek se mi prostě nelíbí.

To raději přestaňte programovat úplně. Například kontext ztrácíte kdykoli vyskočíte z podprogramu a kdykoli vyskočíte z nějakého bloku programu, který ukončuje platnost lokálních proměnných v něm definovaných.

Nemusí přestat programovat. Stačí, když se bude držet svého Assembleru a C, kde může odvést hezký kus práce.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:47:26
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat.
Na to nešlo nereagovat  :)
Já sám nedělám zatím nic, čím bych se mohl nebo chtěl pochlubit, ale kdyby požádal vás, abyste něco ukázal, tak byste neukázal nejen že nic, ale  ještě byste použil něco jako "nemám potřebu...". Žádný paper, žádný výzkum, žádný odkaz na projekt do kterého přispíváte. Jen kecy na fóru. Tak když tak umíte ten Haskell máte nějaký balík na Hackage?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 17:48:03
Je více druhů výjimek (pomáhám si z knížky Framework Design Guidelines): ...

V principu se výjimky dělí na asynchronní a synchronní. Mnozí programátoři se těch synchronních štítí a pracují pouze s asynchronními.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 17:51:07
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat. Každý vůl, kromě vás co?
Program je dobře navržen, pokud s ním nemá uživatel problém interagovat. Všechno co může udělat špatně a já s tím nepočítám je moje blbost. Programátoři orientovaní na uživatele jsou k nezaplacení -- takových jako vy je ale bohužel většina. Plná huba keců na fórech a nic víc pane Géomètre.

Smajlík by měl napovědět, že to bylo míněno jako vtip.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 17:52:35
Tak když tak umíte ten Haskell máte nějaký balík na Hackage?
Já nejsem haskellista a nikdy jsem netvrdil, že Haskell umím (na nějaké pokročilé úrovni kromě základního přehledu). Přes Haskell jsou tu jiní.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:56:27
Tak když tak umíte ten Haskell máte nějaký balík na Hackage?
Já nejsem haskellista a nikdy jsem netvrdil, že Haskell umím (na nějaké pokročilé úrovni kromě základního přehledu). Přes Haskell jsou tu jiní.
A co tedy jsi? Matematik taky sotva ... Bohužel takový individua radši lepší ignorovat. Na jednu stranu se vyjadřuješ fundovaně k ostatním ale když se tě někdo zeptá jakou máš kvalifikaci -- mlžíš. Hodně štěstí pane Geometre.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 17:59:34
Předpokládám, že když je nějaký uživatel vůl, tak je to výjimka.
;D  Mně to přijde spíš jako naprosto běžná situace.
S váma bude radost pracovat. Každý vůl, kromě vás co?
Program je dobře navržen, pokud s ním nemá uživatel problém interagovat. Všechno co může udělat špatně a já s tím nepočítám je moje blbost. Programátoři orientovaní na uživatele jsou k nezaplacení -- takových jako vy je ale bohužel většina. Plná huba keců na fórech a nic víc pane Géomètre.
Smajlík by měl napovědět, že to bylo míněno jako vtip.
Smajlík napověděl, že to je vůl. ;)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 30. 08. 2018, 18:09:52
když se tě někdo zeptá jakou máš kvalifikaci
Zatím se nikdo neptal. A už přestaň otravovat, takoví kriplové jsou fakt nejlepší, bezdůvodně se do někoho navážet. Najdi si radší babu (nebo chlapa) a dělej něco užitečného.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 30. 08. 2018, 18:16:06
Citace
Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy?

To je zase demagogie! Výjimky nezavádějí žádný další stav. Výjimky jsou pouze jedním z dalších řídících příkazů, které umožňují přenést vykonávání kódu na jiné místo, jako jsou podmínkové příkazy, cykly, skoky, volání podprogramu.

Považujete podmínkový příkaz (if) za definici nového chybového stavu programu? Měl byste při vaší demagogii. Protože dělá to samé, co výjimka. Přeskakuje vykonávání části kódu. Výjimka to jen dokáže v kontextu mezi podprogramy, nic více a nic méně.

Citace
Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.

To raději přestaňte programovat úplně. Například kontext ztrácíte kdykoli vyskočíte z podprogramu a kdykoli vyskočíte z nějakého bloku programu, který ukončuje platnost lokálních proměnných v něm definovaných.

Pokud by vám vadila řízená ztráta kontextu, pak jediné, co vám pomůže je: Všechny proměnné globální, žádné podprogramy, atd. atd. atd.
Demagog jste vy, což je ale o vás všeobecně známo už delší dobu. Podmínka mi kontext nenaruší - chybu zachytím a vypořádám tam, kde k ní došlo. Try-catch vyjde buď nastejno jakožto ukecanější varianta ifu, nebo mě hodí někam na jiné místo, mimo původní lexikální kontext, a to i v rámci jedné funkce! O šíření nezachycené výjimky vertikálně už nemluvím vůbec. Kontext, v němž chybový stav nastal, je pro jeho efektivní řešení dost důležitý. Naopak - funkce a bloky programu představují faktorizační celky, jejichž kontexty úmyslně oddělujeme. Ale předpokládám, že tady svou omezenost jen předstíráte.

Výjimky slouží k vypořádávání chybových stavů. Jistě by šly použít i jinak, asi bych mohl přes ně předávat návratové hodnoty, iterovat seznamy (někteří matláci to tak skutečně dělají! Nepatříte náhodou mezi ně?) a kdo ví, co ještě. Ale k tomu určeny nejsou. Tedy ze stavu, který se před nimi řešil jako kterýkoli jiný, udělaly jakýsi privilegovaný stav, chybový, který se ošetřuje odlišně, dokonce nezávisle na kontextu. Zavádějí úplně novou, nezávislou mašinérii ve struktuře programu. Neříkám, že je to celé špatně. Ale říkám, že v té adoraci výjimek bych hodně brzdil.

Pokud jde o výjimky procesoru, tak ty přece slouží k něčemu úplně jinému! Jde o stavy, kdy není možné pokračovat v provádění hlavního programu. Může jít o chyby - třeba dělení nulou, neplatný opkód, nedostatek práv apod., ale taky může jít o jiný typ překážky - např. výpadek stránky, zarážka apod., nebo jde o něco úplně jiného - třeba syscall. Z hlediska hlavního programu jsou výjimky procesoru transparentní - buď se po obsloužení nějak, někdy pokračuje dál, nebo byl program ukončen v rámci obsluhy výjimky. Pokud jde o tu první skupinu výjimek, tak tam jde opravdu o výjimečné stavy, protože jejich výskyt je způsoben chybou hlavního programu. Je to nouzové, výjimečné řešení, protože zvyšuje předvídatelnost chodu samotného procesoru, nikoli programu. Kdyby byl program bezchybný, tak by k nim vůbec nedošlo. Je to řešení ultima ratio, záchranná plachta, do níž se skočí, když už žádné schodiště nejde použít. Implementací do programovacích jazyků se z těchto "výjimek" udělalo pravidlo - zábradlí je přežitek, když někdo uklouzne na schodech, je dole plachta. Protože zábradlí přece narušuje elegantní estetiku schodiště, není kvůli němu ani pořádně vidět a přitom slouží "jenom" jako ochrana před nehodou.

V těch článcích byly konkrétní příklady, podle Kita špatné. Tak postněte konkrétní dobrý příklad, jak se to má používat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: kiki 30. 08. 2018, 18:26:42
když se tě někdo zeptá jakou máš kvalifikaci
Zatím se nikdo neptal. A už přestaň otravovat, takoví kriplové jsou fakt nejlepší, bezdůvodně se do někoho navážet. Najdi si radší babu (nebo chlapa) a dělej něco užitečného.
Díky za radu, jako kripl si to přeberu. Co tedy děláš?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 19:16:06
Citace
Podmínka mi kontext nenaruší - chybu zachytím a vypořádám tam, kde k ní došlo. Try-catch vyjde buď nastejno jakožto ukecanější varianta ifu, nebo mě hodí někam na jiné místo, mimo původní lexikální kontext, a to i v rámci jedné funkce! O šíření nezachycené výjimky vertikálně už nemluvím vůbec. Kontext, v němž chybový stav nastal, je pro jeho efektivní řešení dost důležitý.

Vy se tváříte, jako kdybyste ten kontext urgentně potřeboval. Vy ho nepotřebujete skoro nikdy, taková je pravda.

Programování není nic jiného, než neustálé mohutné zahazování kontextu. To platí jak v běžném toku programu, tak při ošetřování chyb. Zahazujete lokální kontext při opuštění každého bloku programu. Zahazujete kontext při každém vynoření se z podprogramu. Zahazujete kontext na mnoha jiných místech.

Vy jste si vymyslel teorii padlou na hlavu, že výjimka je chybový stav, a že je něco ultra jiného, než co tu bylo už dávno.

Pro efektivní řešení chyby nepotřebujete celý kontext prakticky nikdy. A těch několik málo proměnných, co byste mohl zužitkovat si dáte jako součást výjimky. Howgh.

Znovu: Je to programátor, který píše zdrojový kód. Výjimka a ošetření výjimky je něco, co také řídí programátor. Pokud není programátor idiot, tak výjimka má potřebné informace, tedy plný kontext už nikoho nezajímá.

Citace
Výjimky slouží k vypořádávání chybových stavů.

A už jste zase u té demagogie. Výjimky slouží k vypořádání jakýchkoli stavů, které vyžadují ošetření mimo hlavní proud programu. Ten stav nemusí být nutně chybovým.

Citace
Tedy ze stavu, který se před nimi řešil jako kterýkoli jiný, udělaly jakýsi privilegovaný stav, chybový, který se ošetřuje odlišně, dokonce nezávisle na kontextu. Zavádějí úplně novou, nezávislou mašinérii ve struktuře programu. Neříkám, že je to celé špatně. Ale říkám, že v té adoraci výjimek bych hodně brzdil.

Výjimky nezávádějí žádný privilegovaný stav. Jsou prostě jednou z cest, kudy může běžet program. Nic více a nic méně. Vaše tendence z výjimek dělat něco, co stojí úplně stranou ostatních konstrukcí programovacího jazyka je až fanatická. Výjimky jsou jednou z normálních konstrukcí jazyka.

Kromě toho dobře zvládnuté výjimky mohou být i levnější a efektivnější než testování návratových hodnot z podprogramů. Jestli si myslíte, že ty bazilióny podmínek k testování návratových hodnot po každém volání podprogramu jsou zadarmo a nezpomalují program, tak se strašně mýlíte. Výjimky umožňují tyto podmínky odstranit a tím program zrychlit, pokud budete dobře programovat.

Není náhodou, že ošetřování chyb výjimkami čím dál častěji používají i kernely operačních systémů. Je to totiž nejefektivnější možné řešení pro rozsáhlé možnosti chyb. Výjimky nemusí vůbec být objekty - viz třeba SEH (Structured Exception Handling) ve Windows (máte tam výjimky i v programovacím jazyce C), nebo třeba výjimky v programovacím jazyce Ada.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 19:30:22
Podmínka mi kontext nenaruší - chybu zachytím a vypořádám tam, kde k ní došlo. Try-catch vyjde buď nastejno jakožto ukecanější varianta ifu, nebo mě hodí někam na jiné místo, mimo původní lexikální kontext, a to i v rámci jedné funkce! O šíření nezachycené výjimky vertikálně už nemluvím vůbec. Kontext, v němž chybový stav nastal, je pro jeho efektivní řešení dost důležitý. Naopak - funkce a bloky programu představují faktorizační celky, jejichž kontexty úmyslně oddělujeme. Ale předpokládám, že tady svou omezenost jen předstíráte.

Try-catch nevyjde nastejno. Je v pořádku, že mě výjimka hodí za příslušný catch, kde ji mohu ošetřit. Vše, co z původního kontextu potřebuji, je obsaženo v té výjimce.

Pokud výjimku nezachytím v rámci jedné metody, tak mají ještě jednu podstatnou výhodu: Nenaruší typ návratové hodnoty. Pokud nepoužiji výjimky, je tato situace prakticky neřešitelná a obchází se to ve stylu jazyka C - returnem se vrací pouze stav a návratová hodnota jde přes parametr předávaný odkazem. Když zapomenu zkontrolovat stav, program pokračuje dál s chybnými daty. Prostě hrůza.

Výjimky slouží k vypořádávání chybových stavů. Jistě by šly použít i jinak, asi bych mohl přes ně předávat návratové hodnoty, iterovat seznamy (někteří matláci to tak skutečně dělají! Nepatříte náhodou mezi ně?) a kdo ví, co ještě. Ale k tomu určeny nejsou. Tedy ze stavu, který se před nimi řešil jako kterýkoli jiný, udělaly jakýsi privilegovaný stav, chybový, který se ošetřuje odlišně, dokonce nezávisle na kontextu. Zavádějí úplně novou, nezávislou mašinérii ve struktuře programu. Neříkám, že je to celé špatně. Ale říkám, že v té adoraci výjimek bych hodně brzdil.

Pokud potřebuji vrátit hodnotu z iterovaného seznamu, používám standardně return. Pokud projdu celý seznam bez úspěchu a vyskočím tak z cyklu, vyhodím výjimku.

V těch článcích byly konkrétní příklady, podle Kita špatné. Tak postněte konkrétní dobrý příklad, jak se to má používat.

Správné použití výjimek při práci se zdroji bylo vysvětleno o kousek níže: try-with-resources a using/IDisposable.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 19:39:02
Citace
Kdyby byl program bezchybný, tak by k nim vůbec nedošlo. Je to řešení ultima ratio, záchranná plachta, do níž se skočí, když už žádné schodiště nejde použít. Implementací do programovacích jazyků se z těchto "výjimek" udělalo pravidlo - zábradlí je přežitek, když někdo uklouzne na schodech, je dole plachta. Protože zábradlí přece narušuje elegantní estetiku schodiště, není kvůli němu ani pořádně vidět a přitom slouží "jenom" jako ochrana před nehodou.

Ale houby s octem. Vy žijete v utopickém světě. V reálném světě nastává mnoho chyb a zvláštních situací. Nemůže za ně pouze program, ale také chyby pocházejí z hardware, nebo ze vzdálené sítě, nebo do uživatele nebo z tisíci různých zdrojů.

Je chybou programu, že došla paměť k alokaci? Je chybou programu, že se odpálil tranzistor na základní desce a tudíž přestala fungovat nějaká funkce v hardware PC? Je chybou programu, že kopáč v Arménii překopl páteřní optický kabel a najednou se nespojíte s počítačem, který ještě před sekundou komunikoval? Je chybou programu, že uživatel natvrdo vyndal flešku z USB, ze které program čte data? Je chybou programu, že uživatel zmáčkl na klávesnici "P", ačkoli se čeká zadání čísla? Je chybou programu, že má číst data z databáze, která tam prostě nejsou?

***

Kromě toho ty obsese, že programátor nemá v programovacím jazyce dostávat do rukou něco, co může být při špatném použití nebezpečné - už jsou nudné. Od toho je to programátor, aby věděl co dělá. Aby se naučil každou konstrukci v jazyce používat správně.

Ze stejného důvodu už jsou trapní i javisté (o pár stránek nazpět), kteří si představují, že každý programovací jazyk má být kopie javy. A že přístup javy je jediný správný.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 30. 08. 2018, 19:50:56
Ze stejného důvodu už jsou trapní i javisté (o pár stránek nazpět), kteří si představují, že každý programovací jazyk má být kopie javy. A že přístup javy je jediný správný.

To je zajímavé, protože třeba v XSLT jsem zatím na potřebu výjimek nenarazil, podobně jako v něm ani nepotřebuji else.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 20:31:28
Citace
To je zajímavé, protože třeba v XSLT jsem zatím na potřebu výjimek nenarazil, podobně jako v něm ani nepotřebuji else.

Já také ne, dokud jsem v XSLT nezačal psát video kodek, mp3 přehrávač, nebo komunikaci s STM32.  Pak už ta potřeba nastala ;D
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 30. 08. 2018, 20:39:49
ja si myslim, ze jediny duvod proc je okolo GO vetsi povyk nez okolo brainfuck je ten, ze je mozne, ze do toho google nalije 100 miliard dolaru, protoze na to ma a to neco bude znamenat a nikdo nevi co.

 Za soucasnych okolnosti je to k nicemu. Na frontend a jednoduche projekty je tu JS, ktery je rychlejsi nez go spusti se i v interpretu webbrowseru, na slozite promyslene backendy je tu java (nebo C# pro MS golden kissass), ktera ma mnohem vyspelejsi a mocnejsi nastroje a je rychlejsi kvuli JIT a vubec experience, na specializovane nizkourovnove veci, kde je potrena pracovat primo s pameti a vyuziji se pointery je tu C/CPP a pro blbinky s gui python, ktery bude postupne vytlacovan JS.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 30. 08. 2018, 20:47:10
a samozrejme se muze stat, ze nekdo napise nejakou solidni aplikaciv GO, protoze proste proto. Napriklad DoubleCommander je v pascalu a je to solidni aplikace, na kterou nedam dopustit. Ale taky je treba smeknout klobouk pred autorem, ze to tech vic nez 10 let vydrzel a udrzel.

Uvidime.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 30. 08. 2018, 20:49:35
Buďme konkrétní - třeba program, co se uživatele postupně zeptá na název souboru, číslo řádku (n) a číslo slova (m) a z daného souboru zobrazí m-té slovo n-tého řádku. Je-li to možné, umožní uživateli opravu zadané hodnoty. Definované relevantní funkce: path = input_path() -> not_valid_path/init_error, i = input_num() -> not_a_number/init_error, file = open(path) -> cannot_open/init_error, line = read_line(file, i) -> error_reading_file/no_such_line/init_error, word = get_word(line, i) -> no_such_word/init_error.

Nebo jiný vhodný příklad. Znovu opakuji, že nejsem a priori proti výjimkám. Zabalení informace o chybovém stavu do objektu je perfektní, jednotné chybové rozhraní taky, ale ta separace místa vzniku od místa řešení mi prostě nevoní. A v praxi co vídám se mi nelíbí už vůbec - v jednom programu se něco řeší přes návratové hodnoty, něco zase přes výjimky, ošetření chyb končívá o několik pater výš zachycením výjimky "něco se stalo"... Opakuji asi potřetí, že v kritizovaných článcích byly konkrétní příklady kódu, jež označujete za chybné/nevhodné použití výjimek. Tak mi ukažte konkrétní, modelový kus kódu, který má řádně ošetřeny běžné chybové stavy (ne parity-error kvůli poškozené RAMce) pomocí výjimek. Jeden příklad je lepší než dlouhé teoretizování.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 30. 08. 2018, 21:00:31
kiwi->

muzes ten kod vlozit nejak srozumitelneji?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 21:04:37
Citace
ja si myslim, ze jediny duvod proc je okolo GO vetsi povyk nez okolo brainfuck je ten, ze je mozne, ze do toho google nalije 100 miliard dolaru, protoze na to ma a to neco bude znamenat a nikdo nevi co.

Bohužel souhlasím. Kolem Go je hype, protože Google. Právě Google je největší plus i mínus jazyka Go.

Mám vůbec dojem, že prezentované hlavní výhody Go jsou:

1) Je to od Google.

2) Je to open source.

A pak už je to jen krčení rameny. Není vůbec jasné, proč Go byl vydán. Kde by měla být jeho síla. Jaký je jeho předpokládaný scénář použití.

Citace
Za soucasnych okolnosti je to k nicemu. Na frontend a jednoduche projekty je tu JS, ktery je rychlejsi nez go spusti se i v interpretu webbrowseru, na slozite promyslene backendy je tu java (nebo C# pro MS golden kissass), ktera ma mnohem vyspelejsi a mocnejsi nastroje a je rychlejsi kvuli JIT a vubec experience, na specializovane nizkourovnove veci, kde je potrena pracovat primo s pameti a vyuziji se pointery je tu C/CPP a pro blbinky s gui python, ktery bude postupne vytlacovan JS.

Ne tak zhurta. Scénářů použití programů je mnohem více.

To, co se dnes řeší, a kde je díra na trhu, je programovací jazyk, který by levou zadní zvládal multithreading, paralelní programování, a masivní komunikaci mezi thready, procesy, sítí. Z vámi vyjmenovaných jazyků toto neumí rozumně ani jeden z nich. (Jak moc dobře to umí Go nevím, přiznám to bez mučení.)

Představte si, že dnes už na PC procesoru máte mnoho jader a threadů. S tendencí tento počet zvyšovat. Procesory mají obrovský potenciál výkonu, který dnešní programovací jazyky typu C, C++, JavaScript, Java, C#, Python (abych vyjmenovat vaše jazyky) nedokáží využít. Pokud o skutečné paralelní aplikace vedou k neskutečně neefektivnímu vývoji, který je asronomicky drahý, a přitom velice náchylný na chyby. Jakmile se objeví kvalitní paralelní jazyk - a to je jen otázkou času - tak to převálcuje všechno jako buldozer.

Paralelitu přitom nejde, má-li to být efektivní a nenáchylné k chybám, našít do jazyka jako knihovnu. Musí to být přímo součástí jazyka. Dosud byl trend blbných programovacích jazyků umějících co nejméně, a vše ostatní se našije knihovnami. Extrémem v retardovanosti a slunci tohoto trendu bylo C a Java. To je ale teď úzkým hrdlem.

Jinak řečeno, hardware, procesory, elektornika je tak o 20-30 let napřed před vývojem programovacích jazyků. Je tu velice mnoho prostoru pro nový jazyk.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 21:15:32
Citace
Znovu opakuji, že nejsem a priori proti výjimkám. Zabalení informace o chybovém stavu do objektu je perfektní, jednotné chybové rozhraní taky, ale ta separace místa vzniku od místa řešení mi prostě nevoní. A v praxi co vídám se mi nelíbí už vůbec - v jednom programu se něco řeší přes návratové hodnoty, něco zase přes výjimky, ošetření chyb končívá o několik pater výš zachycením výjimky "něco se stalo"... Opakuji asi potřetí, že v kritizovaných článcích byly konkrétní příklady kódu, jež označujete za chybné/nevhodné použití výjimek. Tak mi ukažte konkrétní, modelový kus kódu, který má řádně ošetřeny běžné chybové stavy (ne parity-error kvůli poškozené RAMce) pomocí výjimek. Jeden příklad je lepší než dlouhé teoretizování.

Výjimky nejsou nutně objektové. V řadě jazyků jsou výjimku neobjektové.

Separace místa řešení od vzniku existovalo dříve, než byl stvořen první programovací jazyk. Jakmile bylo poprvé vynalezeno přerušení programu, měl jste přesně tuto věc na stole.

Přehlednost programu, tedy i ošetřování chyb pomocí libovolné metody, nemá smysl ukazovat na pár řádcích. Úhelným kamenem, kde se oddělují zrna od plev, jsou středně velké a velké programy. Řekněme od 30 000 řádků kódu výše, a ideální ve více vývojářích, plus nutnost kód udržovat po řadu let a implementovat nové vlastnosti podle přání zákazníků.

Mám teorii, že programátor je hochštaplerem přesně do doby, než mu spadne na hlavu projekt s alespoň 100 000 řádky, kterému se pak musí 2 roky věnovat, a všechny problémy padají na jeho hlavu. Do té doby jednoduše nikoho nepřesvědčíte, že programování není o tom napsat hello world nebo něco kapánek složitějšího. Celé softwarové inženýrství je o udržitelnosti, testovatelnosti, spolehlivosti a rozumně nízkých nákladech vývoje u praktických projektů, nikoli modelových příkladů. Kdo psal jen kraťoučké programy, které nebyly prověřeny drsnou praxí - ten si může dovolit i "levičácké názory", tedy různá dogmata a pózy, které nejsou prověřeny pořádným hurikánem.


Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 30. 08. 2018, 21:27:39


Ne tak zhurta. Scénářů použití programů je mnohem více.

To, co se dnes řeší, a kde je díra na trhu, je programovací jazyk, který by levou zadní zvládal multithreading, paralelní programování, a masivní komunikaci mezi thready, procesy, sítí.

prej ne tak zhurta a hned na to takova bomba

 je docela mozne, ze levou zadni zvladat "multithreading, paralelní programování, a masivní komunikaci mezi thready" tak moc nejde, neodpustim si, ze presne na tohle se pouziva Java. Ono je to tak nejak by default slozite. Neco jako "chtel bych system rizeni spolecnosti, kde muze kazdy blb ridit oddeleni o 50-ti lidech levou zadni". Ja bych to chtel taky, ne, ze ne. Zastavam nazor, ze vytvorenim noveho jazyka se tato vize neuskutecni. Mozna se mylim.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 30. 08. 2018, 21:42:47
Citace
je docela mozne, ze levou zadni zvladat "multithreading, paralelní programování, a masivní komunikaci mezi thready" tak moc nejde, neodpustim si, ze presne na tohle se pouziva Java. Ono je to tak nejak by default slozite. Neco jako "chtel bych system rizeni spolecnosti, kde muze kazdy blb ridit oddeleni o 50-ti lidech levou zadni". Ja bych to chtel taky, ne, ze ne. Zastavam nazor, ze vytvorenim noveho jazyka se tato vize neuskutecni. Mozna se mylim.

Paralelní programování je by default složité. A proto se nedá efektivně (všimněte si slova efektivně) dělat na jazycích, které mají koncept jako java nebo c nebo ...

Paralelní jazyky existují už dlouhou řadu let a pár jsem jich vidě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.

Paralelní programovací jazyky mají především programové konstrukce podporující paralelismus. Kompilátor tak dostává informaci přímo ze zdrojového kódu, co vlastně paralelně kutíte. Můžete to zkontrolovat, optimalizovat, oprostit vás od práce pro vraha zvané "synchronizujeme pomocí low level objektů z knihovny". Analýzou zjistí, kde lze synchronizaci vypustit, protože ke konfliktu nedojde, nebo to zkompiluje tak, aby se konfliktu vyhl - a tak drasticky zvýší výkon.

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.

Paralelní programování je by default složité. A pokud programovací jazyk je by default single thread a pak na to více méně dlabe, je to práce pro vraha. Řadu věcí lze přenést na kompilátor.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 30. 08. 2018, 21:46:49
prave jste velice hezky popsal JIT optimalizaci JVM u dlouhodobe beziciho procesu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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í.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 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



Název: Re:Proč ten hype okolo Go?
Přispěvatel: Blb 30. 08. 2018, 23:16:06
Blub programmer ?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.









Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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ě.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: armabeton 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).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: uetoyo 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/
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 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)?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: P.T. Barnum 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.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 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ší...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 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í).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: mmm 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 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í  ;)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.


Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Xxxxxx 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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á.


Název: Re:Proč ten hype okolo Go?
Přispěvatel: Xxxxxx 31. 08. 2018, 18:26:39
Kam dale s os: plan9, planB, amoeba, L4 a nadstavby, hurd.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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.



Název: Re:Proč ten hype okolo Go?
Přispěvatel: armabeton 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? :-)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 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."
Název: Re:Proč ten hype okolo Go?
Přispěvatel: armabeton 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?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kiwi 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.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 20:17:44
Citace
takže slušná řádka=Ada? Chapel je starej 9 let, ne 20. To už spíš CAF ne?

Nejsem encyklopedie a nepotřebné věci vypouštím z hlavy. Neúplný a zmatený seznam najdete třeba přes Google: https://en.wikipedia.org/wiki/List_of_concurrent_and_parallel_programming_languages

Stejně jako si už přesně nepamatuji názvy většiny spolužáků z té doby, tak si nepamatuji ani názvy jazyků. Většina jazyků z té doby, co uměla nějak konkurenční/paralelní programování měla buď pascalovskou syntaxi (a model rendez-vous) nebo lispovskou syntaxi.

Nakonec doporučená kniha pro zkoušku na mé univerzitě (už hodně dávno) byla "Programovací jazyky pro sytémy reálného času" (nebo tak nějak).

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 20:21:27
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á.

Pokud se bavíme o historickém fortranu, tak to žádný zázrak nebyl. Pamatuji začátek PC, a konce Fortranu nikdo nelitoval. Ten jazyk nic moc neuměl - v podstatě všechno se psalo jako operace s maticemi - a jelikož tam nešlo moc co vymýšlet, tak to bylo rychlé, ale nijak pohodlné.

Cčko je vylepšený assembler určený na psaní systémových věcí - tedy na úplně jiný use case než Fortran, a tam se prosadil, ačkoliv mraky věcí by se daly vymyslet lépe (z dnešního pohledu). Berte v úvahu výkon tehdejších strojů a velikost RAM, kam se musel vejít překladač a alespoň kus překládaného kódu. Co jsem slyšel, tak Fortran měl 7průchodový překladač, Cčko 4, Pascal jednoprůchodový. Pro mašiny na kterých to běželo bylo Cčko přesně to, co bylo potřeba. A jelikož platí, že první bere téměř vše, tak i když už pak přišly lepší jazyky, nebyly o tolik lepší aby obrátily směr v IT. IT je neskutečně konzervativní - a co jednou funguje se používá dokud nepřijde něco generačně jiného.

Když už jsme u těch optimalizací - myslím si, že svět jde jinam - dnes rozšířené implementace překladačů sdílí kód, takže je jedno jestli kód napíši v C, ve Fortranu, v Adě - kompilátor je výsledku jeden. U těch vědeckých výpočtů dneska hraje prim využití GPU - nikoliv kvalita překladače.

Mám pocit, že v této diskuzi trochu zapadá fakt, že programátoři jsou a budou lidé. Můžete mít špičkový jazyk nebo paradigma, ale pokud jej bude umět použít pouze pár lidí, tak zapadne. Prosadí se jazyky, prostředí, které jsou pro použití jednodušší než předchozí generace. Java byl původně jednoduchý jazyk pro pračky, myčky a sliboval výrazně jednodušší programování (a bezproblémovou přenositelnost) než C++. C++ byla zase na začátku evoluce Cčka. Nic komplikovaného, bez ohledu na efektivitu nemůže fungovat. 
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 20:31:37
Citace
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.

Ono je to daleko jednodušší. Kolik myslíte, že bylo v domácnosti počítačů, které by uchodily nějaký operační systém v 70. letech? Jaké si myslíte, že byly ceny těch počítačů? Mohl si je běžný smrtelník dovolit?

Když máte na světě pár (výkonnějších a shcopenějších) počítačů, tak existuje jen několik málo lidí, co určují trendy.

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

Odborníci už z vyjetých kolejí dávno vyjeli. Ostatně, jak už jsem psal, i tvůrce unixu sám napsal knihu, co se na unixu nepovedlo. Ale laici si neustále mohou přečíst všude, včetně na wikipedii, že nejgeniálnější je to, jak to vymyslel unix/linux. Nikdo nemá tolik času opravovat články ve wikipedii na prounixové PR jako má mnohohlavá linuxová komunita.

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

Těch operačních systémů je velice mnoho. Mezitím se vymyslelo mnoho věcí, které unix neměl či dosud nemá. Řada operačních systémů je úspěšných - většinou v robotice, elektronice, letadlech, naváděných bombách a raketách, jako řídící systémy elektráren, atd. atd. atd.

Máte vymyšlené mikrojádro, distribuované systémy, systémy schopné se zregenerovat z chyb, systémy reálného času.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Fernet 31. 08. 2018, 20:32:46
Třeba erlang má už přes 30 let.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 20:34:57
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.

V momentě, kdy je nějaký produkt dostatečně dobrý, tak jeho vývoj zamrzne - celkem přirozeně. Změny jsou drahé, a mají smysl jen pokud za nimi stojí nějaká hodnota. Progres z 8bitů na 16, 32, 64 byl zřejmý. Z CPMky na MSDOS, Windows, Linux, nebo NT .. každé dva roky se vám vyplatilo přejít. Od určitého momentu přechod na novou technologii je dražší než přínos nové technologie - a v ten moment se trh zakonzervuje.

Ti lidé v 60tých letech byli vážně dobří - měli špičkové podmínky ke své práci, a svou práci udělali hodně dobře. Vývoj se samozřejmě nezastaví - v 80 letech se navrhovalo GUI, v 90 letech web a internet, po roce 2000 mobilní technologie - ale co chcete vymýšlet na konceptu proudů, souborů, ... jednoduché funkční. Letadla už skorem 90 let vypadají pořád stejně.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 20:48:07
Citace
Pokud se bavíme o historickém fortranu, tak to žádný zázrak nebyl. Pamatuji začátek PC, a konce Fortranu nikdo nelitoval. Ten jazyk nic moc neuměl - v podstatě všechno se psalo jako operace s maticemi - a jelikož tam nešlo moc co vymýšlet, tak to bylo rychlé, ale nijak pohodlné.

Fortran se vyvíjel a měl řadu verzí. Nicméně byl to jazyk pro vědecké výpočty. A ty uměl optimalizovat excelentně od první prehistorické verze.

Citace
Cčko je vylepšený assembler určený na psaní systémových věcí - tedy na úplně jiný use case než Fortran, a tam se prosadil, ačkoliv mraky věcí by se daly vymyslet lépe (z dnešního pohledu).

Proč se v něm tedy píší mraky projektů, na které C není vůbec vhodné? Například GCC?

Citace
Když už jsme u těch optimalizací - myslím si, že svět jde jinam - dnes rozšířené implementace překladačů sdílí kód, takže je jedno jestli kód napíši v C, ve Fortranu, v Adě - kompilátor je výsledku jeden. U těch vědeckých výpočtů dneska hraje prim využití GPU - nikoliv kvalita překladače.

To si pletete programovací jazyk s backendem kompilátoru, který zpracovává mezikód.

Zapomínáte, že než dojde na mezikód, tak se programovací jazyky zpracovávají odlišně. Než to dojde do toho backendu, tak se provede velice mnoho optimalizací a akcí.

Pořád platí, že informace, které nejsou ve zdrojovém kódu, prostě pro optimalizaci nepoužijete. A pořád platí, že i s tím společným backendem budou výpočtu ve Fortranu rychlejší než v C. A pořád platí, že paralelní/konkurenční programování bude ve větším programu v Adě lepší než v C.

Různé jazyky pošlou do backendu různé mezikódy. Například C rozloží výraz sin(deg2rad(30)) jako volání dvou funkcí, a tak se také objeví v mezikódu. Fortran tentýž výraz spočítá a do mezikódu dá pouze konstantu 0,5. Bankground s tím už nijak nehne a nijak to nezoptimalizuje.

Citace
Prosadí se jazyky, prostředí, které jsou pro použití jednodušší než předchozí generace. Java byl původně jednoduchý jazyk pro pračky, myčky a sliboval výrazně jednodušší programování (a bezproblémovou přenositelnost) než C++. C++ byla zase na začátku evoluce Cčka. Nic komplikovaného, bez ohledu na efektivitu nemůže fungovat.

Škoda, že fakta vám odporují:

1) Jazyky můžete zjednodušovat jen do určité míry - pak už neplní svůj účel. Jsme právě v lokálním minimum tak blbých jazyků, že to vygenerovalo potřebu kvalitnější jazyků.

2) Jendoduchý jazyk C už se téměř v IT nepoužívá (kromě hw), protože je sice jednoduchý, ale plodí to obrovské náklady na vývoj proti třeba i tomu C++ a dalším. A ekonomika je víc určující než jendoduchost jazyka.

3) Java ustupuje kromě enterprise. Jednoduchost syntaxe a jazyka vygenerovalo nutnost zalepit to obrovskou složitostí v metodice, framworcích a mnohém dalším.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: fortranista 31. 08. 2018, 20:58:25
Mno Fortran je v nečem strašně fajn, například v tom, že dneska 65 letý atrofyzik vytáhne svoje materiály, na kterých dělal někdy okolo revoluce a ono to poběží (pořád ještě existuje podpora pro F66 a F77).

Ale tu legendární rychlost Fortranu bych zase nepřeháněl :-) U vektorů/matic jo, ale jinak...
https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/ifc-gpp.html

Podotýkám že, intelí překladač Fortranu je považován za poměrně kvalitní.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 20:59:58
Citace
V momentě, kdy je nějaký produkt dostatečně dobrý, tak jeho vývoj zamrzne - celkem přirozeně. Změny jsou drahé, a mají smysl jen pokud za nimi stojí nějaká hodnota. Progres z 8bitů na 16, 32, 64 byl zřejmý. Z CPMky na MSDOS, Windows, Linux, nebo NT .. každé dva roky se vám vyplatilo přejít. Od určitého momentu přechod na novou technologii je dražší než přínos nové technologie - a v ten moment se trh zakonzervuje.

Vidíte dál než ke své klávesnici a desktopu PC?

Víte třeba mimochodem, že daleko nejvíce procesorů se prodá do embedded krabiček, nikoli do samotných počítačů? Víte, jak funguje vývoj tam? Víte, že je tam daleko více peněz a zisků, než v tom PC?

Nebo máte pocit, že se nevyvíjelo mnoho s tím? Máte Unicode, máte thready, máte výjimky, máte lepší sysétmy souborů - umí třeba transakce, jsou odolné proti závadám. Dnešní systém souborů se čím dál více začíná podobat databázím než tehdejšímu konceptu. Systém proudů se vylepšil - už to nejsou nutně jen binární data. Od těch dob už pokročila doba od předpokladu, že textový znak je ekvivalentem jednoho bajtu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: fortranista 31. 08. 2018, 21:00:26

Citace
Prosadí se jazyky, prostředí, které jsou pro použití jednodušší než předchozí generace. Java byl původně jednoduchý jazyk pro pračky, myčky a sliboval výrazně jednodušší programování (a bezproblémovou přenositelnost) než C++. C++ byla zase na začátku evoluce Cčka. Nic komplikovaného, bez ohledu na efektivitu nemůže fungovat.

Škoda, že fakta vám odporují:

1) Jazyky můžete zjednodušovat jen do určité míry - pak už neplní svůj účel. Jsme právě v lokálním minimum tak blbých jazyků, že to vygenerovalo potřebu kvalitnější jazyků.

2) Jendoduchý jazyk C už se téměř v IT nepoužívá (kromě hw), protože je sice jednoduchý, ale plodí to obrovské náklady na vývoj proti třeba i tomu C++ a dalším. A ekonomika je víc určující než jendoduchost jazyka.

3) Java ustupuje kromě enterprise. Jednoduchost syntaxe a jazyka vygenerovalo nutnost zalepit to obrovskou složitostí v metodice, framworcích a mnohém dalším.

Fakta, fakta, fakta: https://www.tiobe.com/tiobe-index/
(sám nemám tyto statistiky moc v lásce ale například náš management na to dává při plánování...)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 21:04:28
Škoda, že fakta vám odporují:

1) Jazyky můžete zjednodušovat jen do určité míry - pak už neplní svůj účel. Jsme právě v lokálním minimum tak blbých jazyků, že to vygenerovalo potřebu kvalitnější jazyků.

2) Jendoduchý jazyk C už se téměř v IT nepoužívá (kromě hw), protože je sice jednoduchý, ale plodí to obrovské náklady na vývoj proti třeba i tomu C++ a dalším. A ekonomika je víc určující než jendoduchost jazyka.

3) Java ustupuje kromě enterprise. Jednoduchost syntaxe a jazyka vygenerovalo nutnost zalepit to obrovskou složitostí v metodice, framworcích a mnohém dalším.

Nové jazyky vznikají neustále - jsem v IT 30 let a nepamatuji rok, kdyby někdo nepřišel s novým jazykem - nebo zásadním vylepšením stávajícího. A zrovna tak si nevzpomínám, že by se nějaký komplikovaný jazyk nebo komplikovanější paradigma prosadil(o). Což není určitě tím, že by nebylo schopných autorů, nebo že by nebylo co vymýšlet - jen ty nové vlastnosti nejsou pro ten hlavní trh programovacích jazyků (pro programátory) stravitelné.

V Cčku je stále napsána většina systémového sw - Linux, NTčka, Postgres, .. gcc, .. Prostě náklady na přepis - zvlášť u takovýchto velkých projektů jsou výrazně vyšší než benefit. A i v barokních jazycích typu C++ nebo C# jedna základní rada je používat pouze doporučené konstrukce, patterny, atd. Takže i když máte relativně hodně komplikované jazyky, tak drtivá většina programátorů je používá jako Visual Basic, a silně redukují použité prostředky.

Můžete vymýšlet komplikovanější jazyky, ale lidi nevylepšíte. Možná je ještě v republice pár Ponkráců, kteří umějí slušně C++ a mají praxi (a umí přemýšlet do hloubky), ale programátorů jsou desítky tisíc. Je zajímá doména - jak co nejjednodušeji vyřešit problém (a pokud možno v jednoduchém jazyce, aby kód mohli sdílet ve firmě).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 21:08:21
Citace
Ale tu legendární rychlost Fortranu bych zase nepřeháněl :-) U vektorů/matic jo, ale jinak... Podotýkám že, intelí překladač Fortranu je považován za poměrně kvalitní.

Já jsem zase viděl benchmarky dokladující, že Java je rychlejší než C, C++ a asm. A lidé to brali vážně přesně do doby, než jsem se tomu veřejně vychechtal a vysmál, a poděkoval za odkaz Josepha Goebbelse.

Udělat dobrý benchmark je dřina. Znamená to napsat program v obou jazycích machrem na každý z těch jazyků. Což se v benchmarcích většinou neděje, a tím je předurčeno co má vyjít. Javista napíše optimální zdroják v Javě a neoptimální v C++, a je dokázáno.

Benchmarky, jako je ten v odkaze, kde chybí vůbec základní data. Jakými verzemi kompilátoru? Jakými nastaveními? Kdy - datum a čas? Nemám moc důvěru ve "fakta", které rovnou nasmaží "výsledky".
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 21:12:12
Citace
V momentě, kdy je nějaký produkt dostatečně dobrý, tak jeho vývoj zamrzne - celkem přirozeně. Změny jsou drahé, a mají smysl jen pokud za nimi stojí nějaká hodnota. Progres z 8bitů na 16, 32, 64 byl zřejmý. Z CPMky na MSDOS, Windows, Linux, nebo NT .. každé dva roky se vám vyplatilo přejít. Od určitého momentu přechod na novou technologii je dražší než přínos nové technologie - a v ten moment se trh zakonzervuje.

Vidíte dál než ke své klávesnici a desktopu PC?

Víte třeba mimochodem, že daleko nejvíce procesorů se prodá do embedded krabiček, nikoli do samotných počítačů? Víte, jak funguje vývoj tam? Víte, že je tam daleko více peněz a zisků, než v tom PC?

Nebo máte pocit, že se nevyvíjelo mnoho s tím? Máte Unicode, máte thready, máte výjimky, máte lepší sysétmy souborů - umí třeba transakce, jsou odolné proti závadám. Dnešní systém souborů se čím dál více začíná podobat databázím než tehdejšímu konceptu. Systém proudů se vylepšil - už to nejsou nutně jen binární data. Od těch dob už pokročila doba od předpokladu, že textový znak je ekvivalentem jednoho bajtu.

Pokud mluvíme o konceptech, které vznikly v 60, 70 letech, tak se toho zas až tolik nezměnilo. Samozřejmě jsou tu nové koncepty, které vznikly později, a určitě vzniknou další. Netvrdím, že někde není vývoj - tak jak jej nevnímám na PC a na internetu, tak jej vidím na mobilních platformách, a i když to není moje parketa, tak jsem si všiml, že jednočipy už dávno nejsou 8bitové, a dají se programovat i jinak než v assembleru. A možná se časem budou programovat i v té Javě, jak se v 90letech uvažovalo.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 21:14:27
Citace
Nové jazyky vznikají neustále - jsem v IT 30 let a nepamatuji rok, kdyby někdo nepřišel s novým jazykem - nebo zásadním vylepšením stávajícího. A zrovna tak si nevzpomínám, že by se nějaký komplikovaný jazyk nebo komplikovanější paradigma prosadil(o). Což není určitě tím, že by nebylo schopných autorů, nebo že by nebylo co vymýšlet - jen ty nové vlastnosti nejsou pro ten hlavní trh programovacích jazyků (pro programátory) stravitelné.

Nevím proč mi k vašim příspěvkům opakovaně zní otázka, jestli jste někdy zvedl hlavu a vystrčil nos od svého PC.

Citace
V Cčku je stále napsána většina systémového sw - Linux, NTčka, Postgres, .. gcc, .. Prostě náklady na přepis - zvlášť u takovýchto velkých projektů jsou výrazně vyšší než benefit. A i v barokních jazycích typu C++ nebo C# jedna základní rada je používat pouze doporučené konstrukce, patterny, atd. Takže i když máte relativně hodně komplikované jazyky, tak drtivá většina programátorů je používá jako Visual Basic, a silně redukují použité prostředky.

Uvádíte příkladu projektů starých jako Metuzalém. Je jasné, že sw z doby, kdy se adorovalo C bude používat C.

To je problém, když diskutujeme na linuxovém serveru. Linux je řemeslně dobře naprogramovaný operační systém, který v zásadě zkopíroval i s chlupama všechno ze 70. let. Není proto divu, že bude používat mnoho zastaralého.

Citace
Je zajímá doména - jak co nejjednodušeji vyřešit problém (a pokud možno v jednoduchém jazyce, aby kód mohli sdílet ve firmě).

Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.





Název: Re:Proč ten hype okolo Go?
Přispěvatel: fortranista 31. 08. 2018, 21:15:45
Citace
Ale tu legendární rychlost Fortranu bych zase nepřeháněl :-) U vektorů/matic jo, ale jinak... Podotýkám že, intelí překladač Fortranu je považován za poměrně kvalitní.

Já jsem zase viděl benchmarky dokladující, že Java je rychlejší než C, C++ a asm. A lidé to brali vážně přesně do doby, než jsem se tomu veřejně vychechtal a vysmál, a poděkoval za odkaz Josepha Goebbelse.

Udělat dobrý benchmark je dřina. Znamená to napsat program v obou jazycích machrem na každý z těch jazyků. Což se v benchmarcích většinou neděje, a tím je předurčeno co má vyjít. Javista napíše optimální zdroják v Javě a neoptimální v C++, a je dokázáno.

No přesně! Proto ty stránky s benchmarky existují, aby ti nejlepší machři dokázali z překladače a jazyka získat maximum. Ty programy nepsali třeba javisti, kteří (třeba podvědomě) napíšou Fortraní část blbě. Protože se toho chopí někdo jinej a benchmark přepíše.

Benchmarky, jako je ten v odkaze, kde chybí vůbec základní data. Jakými verzemi kompilátoru? Jakými nastaveními? Kdy - datum a čas? Nemám moc důvěru ve "fakta", které rovnou nasmaží "výsledky".

Rozklikl sis vůbec ten benchmark?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-ifc-6.html

Úplně na konci - řekl bych že fakta zapsaná mají, žádnej Gobbels
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Miloslav Ponkrác 31. 08. 2018, 21:23:00
Citace
Pokud mluvíme o konceptech, které vznikly v 60, 70 letech, tak se toho zas až tolik nezměnilo. Samozřejmě jsou tu nové koncepty, které vznikly později, a určitě vzniknou další. Netvrdím, že někde není vývoj - tak jak jej nevnímám na PC a na internetu, tak jej vidím na mobilních platformách, a i když to není moje parketa, tak jsem si všiml, že jednočipy už dávno nejsou 8bitové, a dají se programovat i jinak než v assembleru. A možná se časem budou programovat i v té Javě, jak se v 90letech uvažovalo.

Já zase vidím obrovský posun. Z těch konceptů 70. let nezůstalo v původní podobě prakticky nic.

Jednočipy se daly programovat v jakémkoli programovacím jazyce už od svého vzniku. Na tom se nic nezměnilo už mnoho desetiletí. A také běžně různé embedded a hw věci staré 20-25 let programované ve vyšších jazycích najdete.

32bitový jednočip přišel mimochodem už tak dávno, že to ani nepamatuji.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 21:28:46
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.

Určitě netvrdím, že žádný nový programovací jazyk nebude, i když jsem docela pesimista. Pokud nový jazyk vznikne, pak pravděpodobně pro hodně odlišnou platformu, hw než máme dnes. Nebo úplně jiné programovací paradigma. Jinak nové originální věci budou pořád na univerzitách s dosahem několika desítek lidí, případně u některých exotických produktů pro některé specifické trhy. Nicméně průmysl, armáda, tam jsou snad ještě větší konzervy než v IT - používají se prověřené technologie z 80 let a ochota jít do rizika s novým sw se limitně blíží 0.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: v 31. 08. 2018, 21:35:05
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 21:45:12
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

Swift je apple only a reakcí na C# .. v podstatě klasický jazyk. F# přiznám se, že neznám nikoho v ČR, kdo by jej použil. Scala .. dejme tomu -- má svoji doménu, která sama o sobě je malá a nikde jinde se neprosazuje .. a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Zat 31. 08. 2018, 21:46:51
Clojure
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Zat 31. 08. 2018, 21:49:31
Clojure
Sakra, musím sledovat tu diskusi pečlivěji :)
Samozřejmě, že clojure je jen lisp a tedy nic nového :)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 31. 08. 2018, 21:56:15
Clojure
Sakra, musím sledovat tu diskusi pečlivěji :)
Samozřejmě, že clojure je jen lisp a tedy nic nového :)

Clojure byl hodně inovativní jazyk. Lispovská syntax je jen detail.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 31. 08. 2018, 21:58:07
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.

Tak to přidej...
Desítky to budou jenom na patře, kde pracuju. Třeba když chceš použít Spark, tak máš jen dvě rozumné možnosti a jednou z nich je Scala.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 21:59:42
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.

Tak to přidej...
Desítky to budou jenom na patře, kde pracuju. Třeba když chceš použít Spark, tak máš jen dvě rozumné možnosti a jednou z nich je Scala.

Používá se to k něčemu jinému, než se Sparcem?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: v 31. 08. 2018, 22:00:09
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

Swift je apple only a reakcí na C# .. v podstatě klasický jazyk. F# přiznám se, že neznám nikoho v ČR, kdo by jej použil. Scala .. dejme tomu -- má svoji doménu, která sama o sobě je malá a nikde jinde se neprosazuje .. a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.
Swift myslím apple-only (už) není a technologicky je docela zajímavý, rozhodně to není prostá napodobenina C#, ad F# - vím přinejším o tomhle https://twitter.com/RProvaznik :D , je to .net, takže hádám, že bude dost používaný, ale nevim, Scalu jsem jenom tak plácnul a zapoměl jsem na Rust
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Olda 31. 08. 2018, 22:02:50
ja se priklanim k nazorum, ktere tady prezentoval pan Stehule. Ve zkratce jsem to uz nekolikrat slysel asi takhle:
- mame zde 'prumysl 4.0' ale porad v nem pracuji 'lide 1.0'

Zrovna tak jako pan Stehule jsem zazil mnozstvi progr. jazyku. Prichazely a odchazely a kazdy ten novy mel  umoznit efektivni praci bez chyb. Ale jak praxe ukazala, efektivita se nekonala a nekona a programy padaji dodnes. Pan Ponkrac tvrdi, ze z konceptu 70. let nic nezbylo a registruje bourlivy vyvoj. Nevim jaky, ja jsem ten vyvoj ocekaval tak, jak ho predpokladali tvurci unixu a C - a tento vyvoj se nestal.

Ritchie uz kolem roku 1975 vysvetloval, k cemu C je dobre. Totiz k psani nastroju, ktere maji umoznovat vytvaret domenove specificke nastroje - ta predstava te doby byla takova, ze ze 30 let bude kazdy bezny technicky vzdelany vysokoskolak ovladat informatiku do te miry, ze za pomoci lexu a yaccu si za par chvil vytvori vlastni jazyk, ktery bude treba pote pouzivat v konstrukci pri automatizaci kontrukcnich praci.

Unix a C byl koncipovan jako nastroj k tvorbe nastroju. Jenomze lide budto neumi cist a nebo nedokazou porozumnet psanemu textu. Opravdovi programatori to dokazi - Torvalds napr. ve sve knizce vypravi, jak byl fascinovan tou myslenkou Unix+C .... rikal: 'staci open, close, read, write a select a tim udelam vsechno. To je genialni.' Linus to zjevne pochopil.

Ja, kdyz jsem psal muj prvni C-program, nekdy v roce 1984, tak jsem jako vyuceny fortranista hledal ten prikaz, kterym se otevre soubor pro sekvencni cteni. A muj kolega, jiz tenkrat C specialista mi rikal - 'vy jste pane kolego asi ten princip C nepochopil, ze ano?' - a vysvetlil mi, ze to prevratne je v tom 'udelej si sam'. A skutecne nechapu, v cem je tento princip prekonany? 
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 31. 08. 2018, 22:06:55
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.

Tak to přidej...
Desítky to budou jenom na patře, kde pracuju. Třeba když chceš použít Spark, tak máš jen dvě rozumné možnosti a jednou z nich je Scala.

Používá se to k něčemu jinému, než se Sparcem?

Ano. Třeba jako "lepší Java" pro RESTy. Pro implementaci testů.

Mimo fabriku jsem zahlédl třebas různá DSLka.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 31. 08. 2018, 22:09:26
Swift myslím apple-only (už) není a technologicky je docela zajímavý, rozhodně to není prostá napodobenina C#, ad F# - vím přinejším o tomhle https://twitter.com/RProvaznik :D , je to .net, takže hádám, že bude dost používaný, ale nevim, Scalu jsem jenom tak plácnul a zapoměl jsem na Rust
Rust je jazyk, který je nový, originální, ambiciózní a netriviální - mohu se mýlit, ale nemyslím si, že by se nějak masivně rozšířil - pro svou netriviálnost - aktuálně se určitě nedá brát jako rozšířený a etablovaný programovací jazyk.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: pave 31. 08. 2018, 22:31:31

Já zase vidím obrovský posun. Z těch konceptů 70. let nezůstalo v původní podobě prakticky nic.


no právě že pořád máme tu starou (dobrou) von Neumanovskou architekturu - ALU, k tomu pár registrů, nějaké ty ALU instrukce, adresovací režimy, jeden PC, podmínky, skoky, podprogram, zásobník. A na to krásně pasuje Cčko. Toto se nezměnilo snad už od dob IBM 360. Trošku se na to nalepily další technologie, ale povětšinou je to jen malé vylepšení (SSE). Příchod multiprocessingu si kupodivu vyžádal snad jen dvě nové instrukce.

Staro-nová by byla třeba data flow architektura, možná návrat transputerů. Ale kde nic tu nic, pořád nám ta stará architektura jednoduše stačí a navíc je krásně univerzální.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 31. 08. 2018, 22:32:05
Swift myslím apple-only (už) není a technologicky je docela zajímavý, rozhodně to není prostá napodobenina C#, ad F# - vím přinejším o tomhle https://twitter.com/RProvaznik :D , je to .net, takže hádám, že bude dost používaný, ale nevim, Scalu jsem jenom tak plácnul a zapoměl jsem na Rust
Rust je jazyk, který je nový, originální, ambiciózní a netriviální - mohu se mýlit, ale nemyslím si, že by se nějak masivně rozšířil - pro svou netriviálnost - aktuálně se určitě nedá brát jako rozšířený a etablovaný programovací jazyk.

Jazyk nedokážu zhodnotit, ale jako uživatel narážím stále častěji na SW napsaný v Rustu. Používám ripgrep, protože je to nejrychlejší vyhledávací nástroj. Firefox je postupně přepisován do Rustu. Coreutils implementované v Rustu jsou nejrychlejší implementace.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: rustik 01. 09. 2018, 11:46:35
https://github.com/paritytech/parity-ethereum (https://github.com/paritytech/parity-ethereum)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 01. 09. 2018, 12:04:58
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

Swift je apple only a reakcí na C# .. v podstatě klasický jazyk. F# přiznám se, že neznám nikoho v ČR, kdo by jej použil. Scala .. dejme tomu -- má svoji doménu, která sama o sobě je malá a nikde jinde se neprosazuje .. a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.
Swift myslím apple-only (už) není a technologicky je docela zajímavý, rozhodně to není prostá napodobenina C#
Na Linuxu je to pořád víceméně alfa verze. Což je škoda, protože má mnoho zajímavých a v kontextu OO jazyků unikátních vlastností.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 01. 09. 2018, 13:54:09
Já zase vidím obrovský posun. Z těch konceptů 70. let nezůstalo v původní podobě prakticky nic.

no právě že pořád máme tu starou (dobrou) von Neumanovskou architekturu - ALU, k tomu pár registrů, nějaké ty ALU instrukce, adresovací režimy, jeden PC, podmínky, skoky, podprogram, zásobník. A na to krásně pasuje Cčko. Toto se nezměnilo snad už od dob IBM 360. Trošku se na to nalepily další technologie, ale povětšinou je to jen malé vylepšení (SSE). Příchod multiprocessingu si kupodivu vyžádal snad jen dvě nové instrukce.

Stále víc se znovu prosazuje i Harvardská architektura, která má mnoho významných benefitů.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: zoro 01. 09. 2018, 14:13:17
Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.
Který nový netriviální jazyk se uchytil za posledních 10let? Posledních 20? Pokud bychom se bavili alespoň o desítkách programátorů v ČR, a stovkách celosvětově.
F#, Swift, Scala?

Swift je apple only a reakcí na C# .. v podstatě klasický jazyk. F# přiznám se, že neznám nikoho v ČR, kdo by jej použil. Scala .. dejme tomu -- má svoji doménu, která sama o sobě je malá a nikde jinde se neprosazuje .. a myslím si, že počet lidí, kteří tady aktivně používají Scalu .. možná to jsou ty desítky.
Swift myslím apple-only (už) není a technologicky je docela zajímavý, rozhodně to není prostá napodobenina C#
Na Linuxu je to pořád víceméně alfa verze. Což je škoda, protože má mnoho zajímavých a v kontextu OO jazyků unikátních vlastností.
Ano, o některých jsi psal např. tady: https://blog.root.cz/babel/
Název: Re:Proč ten hype okolo Go?
Přispěvatel: pave 01. 09. 2018, 14:53:06
Já zase vidím obrovský posun. Z těch konceptů 70. let nezůstalo v původní podobě prakticky nic.

no právě že pořád máme tu starou (dobrou) von Neumanovskou architekturu - ALU, k tomu pár registrů, nějaké ty ALU instrukce, adresovací režimy, jeden PC, podmínky, skoky, podprogram, zásobník. A na to krásně pasuje Cčko. Toto se nezměnilo snad už od dob IBM 360. Trošku se na to nalepily další technologie, ale povětšinou je to jen malé vylepšení (SSE). Příchod multiprocessingu si kupodivu vyžádal snad jen dvě nové instrukce.

Stále víc se znovu prosazuje i Harvardská architektura, která má mnoho významných benefitů.

No to je z hlediska programatora uplne jedno, protoze i dnes se bezne procesory v ringu, ve kterym bezny programator pracuje, chovaji jako Harvardska architektura (v DOSu ne, ale vsude jinde jo :-). A cecku to vyhovuje naprosto stejne, jako von Neumann. Ja mel na mysli neco zcela jinyho, napriklad data-flow architektury, neco na zpusob CM nebo i ty transputery.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Linus 01. 09. 2018, 14:54:41
Pekne se k C++ vyjadril Linus:

https://lwn.net/Articles/249460/

(ale uz trosku zmenil nazor, rekl bych)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 01. 09. 2018, 15:45:43
Pekne se k C++ vyjadril Linus:

https://lwn.net/Articles/249460/

(ale uz trosku zmenil nazor, rekl bych)
On schválně přehání. Nehledě na to, že zde nejde o C++, ale Go.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 02. 09. 2018, 02:48:37
Z téhle diskuse mám dobrý dojem.

Pokud bylo Go schopno vytvořit 260 příspěvků, je zjevné, že už to dávno není nějaký hype jazyk, ale že velké množství lidí "sere" (asi mají strach, že přijdou o práci) a budoucnost má zjištěnu.

Dobrá zpráva.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: bigfoot 02. 09. 2018, 03:02:59
260 příspěvků s přehledem vygeneruje i diskuze o PHP. Kvůli jeho nedostižným kvalitám to ale obávám se nebude...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 08:31:36
Navic 80% prispevku neni o GO, ale budto o C vs CPP, C/CPP vs Java. Pripadne o hypotetickem novem dokonalem jazyku vyuzivajici dokonaly OS v uplne novem programovacim, vyvojovem a pracovne-organizacnim paradigmatu, ktery neexustuje, ale za par desitek let by mozna mohl. Drive se rikalo, ze vrcholem optimismu je, kdyz si dva teplousi koupi kocarek - nejspis proto, ze dvojice stavitelu vzdusnych zamku Ponkrac&Silhavy zatim nedosahla zaslouzeneho vehlasu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: golang2 02. 09. 2018, 08:40:08
http://www.abclinuxu.cz/zpravicky/gophercon-2018-predbezny-koncept-go-2 (http://www.abclinuxu.cz/zpravicky/gophercon-2018-predbezny-koncept-go-2)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Linus 02. 09. 2018, 08:51:09
Navic 80% prispevku neni o GO, ale budto o C vs CPP, C/CPP vs Java. Pripadne o hypotetickem novem dokonalem jazyku vyuzivajici dokonaly OS v uplne novem programovacim, vyvojovem a pracovne-organizacnim paradigmatu, ktery neexustuje, ale za par desitek let by mozna mohl. Drive se rikalo, ze vrcholem optimismu je, kdyz si dva teplousi koupi kocarek - nejspis proto, ze dvojice stavitelu vzdusnych zamku Ponkrac&Silhavy zatim nedosahla zaslouzeneho vehlasu.

Presne, ale zase jsme se dozvedeli treba ze "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ě."

Zitra to musim ocitovat v praci :)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: n 02. 09. 2018, 09:36:53
Různé jazyky pošlou do backendu různé mezikódy. Například C rozloží výraz sin(deg2rad(30)) jako volání dvou funkcí, a tak se také objeví v mezikódu. Fortran tentýž výraz spočítá a do mezikódu dá pouze konstantu 0,5. Bankground s tím už nijak nehne a nijak to nezoptimalizuje.

Jen detail, vy to urcite vite, ale pro ostatni, dneska uz C++ tenhle vyraz spocita v compile timu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 02. 09. 2018, 09:54:45
Z téhle diskuse mám dobrý dojem.

Pokud bylo Go schopno vytvořit 260 příspěvků, je zjevné, že už to dávno není nějaký hype jazyk, ale že velké množství lidí "sere" (asi mají strach, že přijdou o práci) a budoucnost má zjištěnu.

Dobrá zpráva.
Prave to, ze tu je 90% prispvkov o Jave, C++, nepochopeni vnimiek... ja som bol fakt zvedavi len na Go.

Imho k tomu, neostrovaniu chyb z navratovou hodnotou a bez.
Dva male priklady:

zahodenie chyby v Go:
Kód: [Vybrat]
file := os.Open("/path/to/file.txt")

zahodenie v chyby s vynimkami
Kód: [Vybrat]
try
{
  file = File.Open("/path/to/file.txt");
}
catch(Exception)
{
}

Dufam, ze je s toho jasne preco je spracovavanie chyby navratovimi hodnotami zastarale.
Pisete tu ze Go vynimky ma, to je sice pekne, ale ked ich nevyuziva standrade api je to nanic.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 02. 09. 2018, 10:35:38
Z téhle diskuse mám dobrý dojem.

Pokud bylo Go schopno vytvořit 260 příspěvků, je zjevné, že už to dávno není nějaký hype jazyk, ale že velké množství lidí "sere" (asi mají strach, že přijdou o práci) a budoucnost má zjištěnu.

Dobrá zpráva.
Prave to, ze tu je 90% prispvkov o Jave, C++, nepochopeni vnimiek... ja som bol fakt zvedavi len na Go.

Imho k tomu, neostrovaniu chyb z navratovou hodnotou a bez.
Dva male priklady:

zahodenie chyby v Go:
Kód: [Vybrat]
file := os.Open("/path/to/file.txt")

zahodenie v chyby s vynimkami
Kód: [Vybrat]
try
{
  file = File.Open("/path/to/file.txt");
}
catch(Exception)
{
}

Dufam, ze je s toho jasne preco je spracovavanie chyby navratovimi hodnotami zastarale.
Pisete tu ze Go vynimky ma, to je sice pekne, ale ked ich nevyuziva standrade api je to nanic.

řekl bych, že ten příklad pro Go nepřeložíte. U Go je snaha o explicitní ošetření chyb co nejblíže vzniku, anebo explicitní ignorování.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 02. 09. 2018, 12:30:49
Imho k tomu, neostrovaniu chyb z navratovou hodnotou a bez.
Dva male priklady:

zahodenie chyby v Go:
Kód: [Vybrat]
file := os.Open("/path/to/file.txt")
To se nepřeloží, zoušej si kód před postnutím, ať nejsi za vola.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 02. 09. 2018, 13:10:30
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit
Název: Re:Proč ten hype okolo Go?
Přispěvatel: BoneFlute 02. 09. 2018, 13:36:01
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 16:34:23
https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md (https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md)

Error handling v go nedotazeny. Puvodne jsem chtel napsat jake vyhody poskytuje nejen try{}catch{} block, ale predevsim throws klausule v Jave a jak toho prakticky vyuzivam, zvlaste pri kocirovani hejna junioru s vysokou flucktuaci a rozlicnym potencialem, ale tohle tema by melo byt o go.

a gorutines nejsou odpovedi na vsechno.

Pristi verze go, tedy go2 bude zjevne o dost jina jak v syntaxy, tak filosofii pouziti jazyka a to zdaleka ne jenom v pripade odchytavani vyjimek.

Takze osud jako Python? Go2 bude nekompatibilni s Go1.4 nebo kolik je ted aktualni? Kdyz hledate neco o pythonu, tak je to peklo, protoze jak vetev 2.7, tak vetev 3.0 si jede vlastnim zivotem. Co budeme zadavat do google go2lang nebo golang2?

Nikdo sam, rad a dobrovolne rozhodne nezacal prepisovat veskery python 2.7 do pythonu 3.0. Vzhledem k tomu, ze v go neni zatim napsano skoro nic (nebo je?), tak to nebude takovy problem?

Nedavno jsem si stahnul stary kod, ktery jsem psal v roce 2003 pro tehdy aktualni javu. Bez jedine upravy jsem ho prelozil v java8 a casti copy+paste zakomponoval do soucasne aplikace. Watch and learn golang hipsters with your castles made of sand on the beach with high tide.

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 02. 09. 2018, 16:50:23

Pristi verze go, tedy go2 bude zjevne o dost jina jak v syntaxy, tak filosofii pouziti jazyka a to zdaleka ne jenom v pripade odchytavani vyjimek.

Takze osud jako Python? Go2 bude nekompatibilni s Go1.4 nebo kolik je ted aktualni?


Kde jste na to přišel - pokud se podíváte na prezentace o Go2, tak tam explicitně upozorňují, že nedojde k porušení zpětné kompatibility - určitě se nemění filozofie, a rozšíření není nijak zásadní. To máte tolik strach o Javu, že tu takhle vyšilujete?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 16:57:05
Ty si fakt kaspar. Java tu bude davno po tom, co ty uz davno budes prdet do hliny. A co takhle neco k GO bys tam nemel? Ja si muzu vysilovat nebo nevysilovat jak se mi zachce, ty potouchlej, zakomplexovanej, nekonstruktivni paznechte:) napis neco o Go a jak si ho zkousel, dej nejakej zajimavej odkaz. Jak resis ty error handling? v cem vidis plusy a minusy.

A ted vyskoc.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 02. 09. 2018, 17:17:17
Ty si fakt kaspar. Java tu bude davno po tom, co ty uz davno budes prdet do hliny. A co takhle neco k GO bys tam nemel? Ja si muzu vysilovat nebo nevysilovat jak se mi zachce, ty potouchlej, zakomplexovanej, nekonstruktivni paznechte:) napis neco o Go a jak si ho zkousel, dej nejakej zajimavej odkaz. Jak resis ty error handling? v cem vidis plusy a minusy.

A ted vyskoc.

https://github.com/search?l=Go&q=golang&type=Repositories

článků o error handling najdete tunu - oblíbené téma. Plusy jsou zřejmé, chyby ošetřujete explicitně velice blízko vzniku nebo explicitně ignorujete. je tím vynucený hodně defenzivní styl programu - což někomu může vyhovovat, jelikož je ošetření chyb zdůrazněné, nebo zase někomu vyhovovat nemusí - bo se může ztrácet původní myšlenka - nicméně by se nemělo stávat, že by neošetřená chyba probublala někam výš, což se u výjimek stát může a bere se i jako záměr. Tím se fixuje kód - nemáte tam tolik stupňů volnosti. Go je nízkoúrovňový jazyk - styl programování je jiný než u Javy. Berte to jako pohodlnější verzi Cčka - a většina kódu, který vzniká v Go by se programoval v C nebo v C++.





 
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 17:48:05
Rozumím tomu, co píšete ale nerozumím tomu "Proč". Pokud má být GO náhradou za C, tak je moc pomalé, protože GC. Pokud to má být jazyk na složité backendy (myslím, že i v GO dokumenatci se píše, že je to na backend), tak potom nedosahuje kvalit Javy, protože možnost nechat handling errorru na vyšší vrstvě  programu pomoci "throws" je killer feature exception systému. Mám pocit, ze vkládali moc velké naděje do gorutines, které se ukázaly jako mylné. Jednoduchý backend je tak nějak protimluv. Od backendu se očekává, že bude robustní a promyšlený a budou se k němu připojovat klienti, už z hlediska bezpečnosti a konzistence je většina zodpovědnosti na backendu.

A go je o dost pomalejší než Java a než C.

Takže se vlastně točíme v kruhu...

Vy řeknete : Go je nízkoúrovňový jazyk.
Já řeknu: Oproti C je to (strašně moc)pomalé.

Vy řeknete: Go je jazyk na bakcend s garbage collectorem.
Já řeknu: Java je kvalitnější, ozkoušená, rychlejší a má lepší garbage collector.

Vy řeknete: Go je pro "začínající" programátory.
Já řeknu: Má to pointery a pokud správně nastavíte prostředí a donutíte všechny "juniory" používat pouze throws místo try{}catch{} tak je i ta java vlastně jednodušší.

Vy řeknete (to už fabuluju): je to pro začínající osamělé autistické programátory bez kamarádů, co by jim nastavili prostředí.
Já řeknu: Freepascal + Lazarus IDE. Pascal byl vyvinut někdy dávno, když jsem byl ještě malé trollítko právě na učení se programovat.

Prostě mám pocit, že se snazíte zastrčit (minimálně argumentačně) příliš tlustou štangly do příliš malého otvoru. Může se to procpat penězi od google, možná, já osobně tomu nevěřím. viz https://www.youtube.com/watch?v=H9ZAPab3kpA (https://www.youtube.com/watch?v=H9ZAPab3kpA)

Název: Re:Proč ten hype okolo Go?
Přispěvatel: Pavel Stěhule 02. 09. 2018, 18:52:58
Rozumím tomu, co píšete ale nerozumím tomu "Proč". Pokud má být GO náhradou za C, tak je moc pomalé, protože GC. Pokud to má být jazyk na složité backendy (myslím, že i v GO dokumenatci se píše, že je to na backend), tak potom nedosahuje kvalit Javy, protože možnost nechat handling errorru na vyšší vrstvě  programu pomoci "throws" je killer feature exception systému. Mám pocit, ze vkládali moc velké naděje do gorutines, které se ukázaly jako mylné. Jednoduchý backend je tak nějak protimluv. Od backendu se očekává, že bude robustní a promyšlený a budou se k němu připojovat klienti, už z hlediska bezpečnosti a konzistence je většina zodpovědnosti na backendu.

A go je o dost pomalejší než Java a než C.

Takže se vlastně točíme v kruhu...

Vy řeknete : Go je nízkoúrovňový jazyk.
Já řeknu: Oproti C je to (strašně moc)pomalé.

Vy řeknete: Go je jazyk na bakcend s garbage collectorem.
Já řeknu: Java je kvalitnější, ozkoušená, rychlejší a má lepší garbage collector.

Vy řeknete: Go je pro "začínající" programátory.
Já řeknu: Má to pointery a pokud správně nastavíte prostředí a donutíte všechny "juniory" používat pouze throws místo try{}catch{} tak je i ta java vlastně jednodušší.

Vy řeknete (to už fabuluju): je to pro začínající osamělé autistické programátory bez kamarádů, co by jim nastavili prostředí.
Já řeknu: Freepascal + Lazarus IDE. Pascal byl vyvinut někdy dávno, když jsem byl ještě malé trollítko právě na učení se programovat.

Prostě mám pocit, že se snazíte zastrčit (minimálně argumentačně) příliš tlustou štangly do příliš malého otvoru. Může se to procpat penězi od google, možná, já osobně tomu nevěřím. viz https://www.youtube.com/watch?v=H9ZAPab3kpA (https://www.youtube.com/watch?v=H9ZAPab3kpA)

Dokud se na Go budete dívat optikou Javy, tak to nepochopíte. Go je reakce na Javu a C++, dělat věci jednoduše a jinak. Můžete s tím souhlasit nebo nesouhlasit.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 20:11:55
jasně alternativci... tak jo. vlasy nafialovo a pero dopr%dele. your way.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: BoneFlute 02. 09. 2018, 20:38:05
jasně alternativci... tak jo. vlasy nafialovo a pero dopr%dele. your way.

Otázka offtopic - proč jsi tak vulgární?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Inkvizitor 02. 09. 2018, 20:50:41
Dokud se na Go budete dívat optikou Javy, tak to nepochopíte. Go je reakce na Javu a C++, dělat věci jednoduše a jinak. Můžete s tím souhlasit nebo nesouhlasit.

Spíš bych řekl, že to je reakce na (z jistého pohledu) pomalý Python v rámci ekosystému Google. Já se na to třeba dívám optikou ostatních "moderních" programovacích jazyků a (Nim, Julia, Rust...) a Go mi přijde jako dost odbytá záležitost. Jasně, je turingovsky kompletní, jasně, mohlo to dopadnout hůř. Zajímal jsem se o něj poměrně brzy po vypuštění a některé veci fakt byly strašné (ta úchylná konvence pojmenování binárky kompilátoru podle architektury třeba). Pak samozřejmě špatné a nedopečené featury vyzdvihované jako klady (jasný znak sektářského myšlení, nevyhne se tomu ale žádný jazyk) - absence podpory verzování, absence generik... Ano, Go je (v něčem) lepší C, ale Google snad měl na víc.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 21:05:52
jasně alternativci... tak jo. vlasy nafialovo a pero dopr%dele. your way.

Otázka offtopic - proč jsi tak vulgární?

Protože zaprvé je to nejlepší vyjádření frustrace nad neschopností protistrany formulovat racionální argument. Neměl byste to ovšem vnímat jako urážku, ale jako výzvu k diskusi na jiné úrovni, neboť je zjevné, že protistrana má určitou agendu, kterou sleduje a mě zajímá, kde se skrývá jádro pudla ve výroku "chceme to dělat jinak, protože to chceme dělat jinak".
Mohl bych se ohánět tím, že protistrana mě k tomu přímo vyzývá, neboť tvrdí, že "pokud se na to budete dívat z pozice javy", kterou bychom mohli archetypálně definovat jako "otce", tak se snažím vyvolat diskusi jinými prostředky. Nenechte se zmást, ale i na diskusi plné vulgárních jednočlených vět je možné se leččemus přiučit, ostatně čím jiným jsou současné internetové diskuse. Pouze to nikdo takto, až skoro Jungovksy nepojímá, ačkoli do toho všichni čumíme.
A mě zajímá, zdali se za to adolescentní pózou negace současné nezpochybnitelné reality nezkrývá nějaké to zlato, které je možné vytěžit z emociálního, bezpředmětného, iracionálního, ale přesto svěžího mládí. Protože kdo není schopen naslouchat novým trendům je mrtev, doslova.
A já jim naslouchat chci a pochopil jsem že golang je vnímán spíše emocionálně než racionálně a nenapadá mě lepší způsob, jak excitovat emoce jinak než vulgaritami.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 21:20:09
Spíš bych řekl, že to je reakce na (z jistého pohledu) pomalý Python v rámci ekosystému Google.

hmm occam's razor. it sux, but it sux less than python (so far). That's a good point. lets see how golang2 and golang1 gets along.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Linus 02. 09. 2018, 21:43:50
jasně alternativci... tak jo. vlasy nafialovo a pero dopr%dele. your way.

Otázka offtopic - proč jsi tak vulgární?

A mě zajímá, zdali se za to adolescentní pózou negace současné nezpochybnitelné reality nezkrývá nějaké to zlato, které je možné vytěžit z emociálního, bezpředmětného, iracionálního, ale přesto svěžího mládí. Protože kdo není schopen naslouchat novým trendům je mrtev, doslova.
A já jim naslouchat chci a pochopil jsem že golang je vnímán spíše emocionálně než racionálně a nenapadá mě lepší způsob, jak excitovat emoce jinak než vulgaritami.

To na jednu stranu chápu, ale Pavel S. má pravdu v tom, že pokud se na Go budeš dívat z pozice Javy, tak prostě dřív či později zjistíš, že Go není a nikdy nebude Java. Trošku to zavání Blub paradoxem, ale fakt doporučuju si sesumírovat problémy, které vidíš na Go (také je vidím, a dost, jeden z nich je NIH syndrom a nepoužití LLVM, možná proto, že to je od Apple?) a potom se podívat na https://golang.org/doc/faq, kde je přímo názor tvůrců na většinu podobných dotazů (generika, aserce, chyby, gorutiny, GC), se kterými můžeme ale samozřejmě nemusíme souhlasit.

Já osobně nasazení Go vidím v podobné oblasti jako Erlang - masivnější MP, síťování. A Go je pro dost lidí stravitelnější (njn. prostě máme juniory a těm se nedá předhodit například tady taky zmiňované C++, to by dopadlo dost bledě).
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 02. 09. 2018, 21:56:19
https://github.com/search?l=Go&q=golang&type=Repositories

článků o error handling najdete tunu - oblíbené téma. Plusy jsou zřejmé, chyby ošetřujete explicitně velice blízko vzniku nebo explicitně ignorujete. je tím vynucený hodně defenzivní styl programu - což někomu může vyhovovat, jelikož je ošetření chyb zdůrazněné, nebo zase někomu vyhovovat nemusí - bo se může ztrácet původní myšlenka - nicméně by se nemělo stávat, že by neošetřená chyba probublala někam výš, což se u výjimek stát může a bere se i jako záměr. Tím se fixuje kód - nemáte tam tolik stupňů volnosti. Go je nízkoúrovňový jazyk - styl programování je jiný než u Javy. Berte to jako pohodlnější verzi Cčka - a většina kódu, který vzniká v Go by se programoval v C nebo v C++.

Když jsem programoval v C, tak mi dost vadilo, že funkce v mnoha případech nevrací returnem hodnotu, ale chybový stav. Dokonce mnoho funkcí vrací obojí a rozlišuje se to znaménkem.

V PHP to bylo zpočátku podobné, ale aspoň se nemusel returnem vracet jen int. Stringy, vektory i složitější struktury se nemusely vracet přes parametry. Později byly zavedeny výjimky, které mi zpočátku vadily, ale zvykl jsem si na ně tak, že chybové stavy jinak nevracím.

Oba způsoby neobsahovaly návrat více hodnot returnem, ale PHP na tom bylo o něco lépe - navíc s konstruktem list(). Golang to pojal jako základní vlastnost a chybové stavy se k tomu přidaly skoro samy - nejsou vlastností jazyka, ale obyčejné hodnoty. Z pohledu Javy či PHP se jedná o krok zpět, ale směrem od C zase významný krok kupředu. Skoro jako kdyby to naznačovalo, že Java či PHP nejdou úplně správným směrem.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 22:04:02
Skoro jako kdyby to naznačovalo, že Java či PHP nejdou úplně správným směrem.

To je hodně předčasné  a ničím nepodložené tvrzení. Naopak to podle design papers na golang2 vypadá, že golang je ten, kdo dohání ztrátu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Xxxxxx 02. 09. 2018, 22:06:04
Nemam rad excepsny, obalite velky blok do try a nevite kde se vyjimka vzala.
v c++ je dokonce optimalizace noexcept, ze funkce nevyhodi vyjimku a kompilace se zoptimalizuje. Takze se mi libi kdyz chybovou hodnotu vraci kazda funkce, ale je fakt, ze to osetreni by se mohlo vymyslet lepe nez pomoci if.
Ale go2 to uz ma v navrhu reseni.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 22:09:58
To na jednu stranu chápu, ale Pavel S. má pravdu v tom, že pokud se na Go budeš dívat z pozice Javy, tak prostě dřív či později zjistíš, že Go není a nikdy nebude Java.

golang nejenže musí "být java" naopak musí být lepší než java. A ve všem, v čem není java musí nebýt java jenom za účelem aby byl lepší než java. A to bych byl rád.

Z mého nevzdělaného pohledu to vypadá tak, že "uděláme to jinak protože to chceme jinak" a vymysleli pascal s garbage collectorem.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Krysa11 02. 09. 2018, 22:17:39
Nemam rad excepsny, obalite velky blok do try a nevite kde se vyjimka vzala.

jako diky za input, ale pokud si obalis velky block do try, tak sis ho tam obalil ty a nikdo jinej. Tak si pak neztezuj.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 00:05:26
Nemam rad excepsny, obalite velky blok do try a nevite kde se vyjimka vzala.

Možná používáme každý jiné výjimky. Naopak velice přesne lokalizuji odkud se ta výjimka vzala i s podrobným popisem kontextu.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 03. 09. 2018, 00:55:10
Ja mam Go celkem rad, neco jsem uz v nem napsal, ale delalo se mi v nem celkem nepohodlne.

Nejvic mi chybi prave exceptions, pak collections aspon na urovni Jawy, LINQ nebo stream se neodvazuju doufat.
Namodelovat v GO jnom trosku slozitejsi datovou strukturu, naco ve stylu HashMap<String, Bean>, kde Bean muze obsahovat atrbut Set<String>, je nebetycny oser, kde spoustu inheritnich kontrol musim ozelet,  zatimco v Jawe trivka. Typicky treba object binding pro SOAP. Navic zpusob zapisu slices je tak debilni, ze musim mit neustale otevrne google okno, abych byl schopen je nadefinovat.
Co se tyce exception, v Jawe jsem napsal hromadu utilit, kdy libovolna chyba zpusobi prosty vypis e.getMessage() a konec programu. V Jawe trivka, o chyby se proste nestaram krome trybloku v mainu.
GO error struktura je silne inferiorni, v Jawe dosahnu tehoz, kdyz budu vracet bean s atributy retval a errval. Ale k cemu takove zoufalstvi, kdyz muzu mit luxusni vyjimky, do jejichz objektu si naseru kontext informaci cely kybl.
A nevede to k zoufastvi typu if(func()==-2) { return -4}

Chapu, ze GO ma byt nahradou C, ale jdou na to IMHO blbe.
Jediny prinos Go vidim v channelech a gorutinach a ve vyslednem nativnim exaci.

Pokud se do Javy dodelaji kanaly a korutiny, nevidim pro Go moc zivotniho prostoru.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 03. 09. 2018, 11:14:31
zrovna HashMap<String, Bean> se dela jednoduse (kdyz je Bean interface)

var m map[string]Bean
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 11:57:08
zrovna HashMap<String, Bean> se dela jednoduse (kdyz je Bean interface)

var m map[string]Bean
On se tak daleko ještě nedostal, zatím jen kritizuje, učit se bude až pak.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 11:59:01
Namodelovat v GO jnom trosku slozitejsi datovou strukturu, naco ve stylu HashMap<String, Bean>, kde Bean muze obsahovat atrbut Set<String>, je nebetycny oser
Zrovna tohle jde úplně stejně jako v Javě.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 12:08:48
Namodelovat v GO jnom trosku slozitejsi datovou strukturu, naco ve stylu HashMap<String, Bean>, kde Bean muze obsahovat atrbut Set<String>, je nebetycny oser
Zrovna tohle jde úplně stejně jako v Javě.

Technicky vzato ano. Ale kdyz misto HashMap chces treba TreeMap, tak mas smolika.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Phi 03. 09. 2018, 13:05:34
Na druhou stranu, stačí se podívat jak vypadaly první verze Javy, to je ve zpětném pohledu taky na prostřelení si hlavy, obzvlášť před 1.5. - a to říkám jako někdo, kdo si myslí, že Java má budoucnost na příští dekádu jistou a pokud bude dál pokračovat ve vyzobavání třešínek z ostatních jazyků, tak umřu dřív já než ona. Takže na Golang2 se docela těším, fakt mne zajímá, jak pojmou chyby a generika lépe a radostněji.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 13:18:08
Na druhou stranu, stačí se podívat jak vypadaly první verze Javy, to je ve zpětném pohledu taky na prostřelení si hlavy, obzvlášť před 1.5. - a to říkám jako někdo, kdo si myslí, že Java má budoucnost na příští dekádu jistou a pokud bude dál pokračovat ve vyzobavání třešínek z ostatních jazyků, tak umřu dřív já než ona. Takže na Golang2 se docela těším, fakt mne zajímá, jak pojmou chyby a generika lépe a radostněji.

Ano, Java se podstatne zlepsila. A to same preju i Go. Konecne i programatori Go budou mit sanci zazit pokrokovost myslenek osmdesatych let minuleho stoleti.

Ale nema smysl se tvarit, ze ten puvodni stav byl nejaky zazrak, jako se tu gofanboys snazi.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 03. 09. 2018, 13:22:15
Tahle diskuse je celkem bezpředmětná, protože ať si každý programuje v tom co se mu líbí. A používání lží, nesmyslů nebo vlastních, nijak neověřených tvrzení, jako argumentů v diskusi je sice znakem doby, ale prozrazuje to malé sebevědomí a nedůvěru ve vlastní názory (viď krysáku). A sprostá mluva jen potvrzuje diagnózu.

Ale chtěl jsi nějaké argumenty, tak ti 2 dám (byť je to házení perel sviním). Linuxové kontejnery (LXC) jsou v jádře už 10 let a dlouhou dobu byly víceméně popelkou (ačkoliv na jiných systémech - BSD nebo Solaris) se jejich ekvivalenty hojně používaly. A kdyby měl být Docker nebo Kubernetes napsán v C/C++, čekali bychom na ně ještě drahnou dobu. A kdyby měly být napsány v Jawě, tak by člověk pro jejich spuštění potřeboval 64GB RAM. Tak proto.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 13:28:50
A používání lží, nesmyslů nebo vlastních, nijak neověřených tvrzení, jako argumentů v diskusi je sice znakem doby, ale prozrazuje to malé sebevědomí a nedůvěru ve vlastní názory (viď krysáku).

A kdyby měly být napsány v Jawě, tak by člověk pro jejich spuštění potřeboval 64GB RAM. Tak proto.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: . 03. 09. 2018, 14:01:40
A používání lží, nesmyslů nebo vlastních, nijak neověřených tvrzení, jako argumentů v diskusi je sice znakem doby, ale prozrazuje to malé sebevědomí a nedůvěru ve vlastní názory (viď krysáku).

A kdyby měly být napsány v Jawě, tak by člověk pro jejich spuštění potřeboval 64GB RAM. Tak proto.
Děkuji za upozornění, ve svém odhadu jsem vycházel z porovnání paměťových nároků dokumentovaných třeba na Benchmarks Game a vlastních zkušeností se systémy jako Elastic Search, Apache Spark/Hive a dalších.

Nakonec není to tak dávno, co tady nějaký Jawa developer chtěl doporučit notebook se 64GB RAM, protože mu už 32GB nestačí.

A tu Jawu mi snad odpustíte. :) Pokud ne, tak vám pár vašich nekorektností taky najdu...:P
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 14:19:18
Nakonec není to tak dávno, co tady nějaký Jawa developer chtěl doporučit notebook se 64GB RAM, protože mu už 32GB nestačí.
Tak paměť je levná, stejně jako CPU, proč (se učit) psát efektivní programy a používat efektivní jazyk, když drazí jsou akorát vývojáři, že? Stačí koupit 128 jader a 256 GB paměti a netřeba řešit výkon.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Inkvizitor 03. 09. 2018, 14:25:40
Nakonec není to tak dávno, co tady nějaký Jawa developer chtěl doporučit notebook se 64GB RAM, protože mu už 32GB nestačí.
Tak paměť je levná, stejně jako CPU, proč (se učit) psát efektivní programy a používat efektivní jazyk, když drazí jsou akorát vývojáři, že? Stačí koupit 128 jader a 256 GB paměti a netřeba řešit výkon.

Sorry, ale tohle ma byt k veci?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 03. 09. 2018, 16:46:27
Namodelovat v GO jnom trosku slozitejsi datovou strukturu, naco ve stylu HashMap<String, Bean>, kde Bean muze obsahovat atrbut Set<String>, je nebetycny oser
Zrovna tohle jde úplně stejně jako v Javě.

Technicky vzato ano. Ale kdyz misto HashMap chces treba TreeMap, tak mas smolika.

Presne, hned jsem si uvedomil, ze zrovna holy HashMap jde (stejne jako v drevnim perlu, mimochodem)
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
GO mapy maji dokonce pro iteraci forced randomness (iteration order je schvalne nahodny, to aby prej programatori na to omylem nespolihali) coz dokonce znatelne snizuje vykon iterace pres mapu.

Kdyz nekdo prechazi na GO z Cecka, je celkem unesen. Kdo je zvykly na moznosti Jawy, C#, citi se dost nepohodlne.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 17:01:30
GO mapy maji dokonce pro iteraci forced randomness (iteration order je schvalne nahodny, to aby prej programatori na to omylem nespolihali) coz dokonce znatelne snizuje vykon iterace pres mapu.
Nesnižuje.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 17:02:54
Kdyz nekdo prechazi na GO z Cecka, je celkem unesen. Kdo je zvykly na moznosti Jawy, C#, citi se dost nepohodlne.
Pro ty druhé je tu třeba Rust, ten má všechen ten fancy stuff.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 18:38:55
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.

K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 18:45:14
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: optimizer 03. 09. 2018, 19:00:39
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?

je to dobré, když potřebuješ odmazávat staré prvky.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 19:02:12
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.

Fanboys gonna fan.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 03. 09. 2018, 19:04:36
Ono v Go je sakra velky problem spravit si vlastnu kolekciu, dalsia z jeho super vyhod.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 19:05:37
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
Fanboys gonna fan.
Říká hater...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 03. 09. 2018, 19:06:33
kdyz neco chybi, tak to vetsinou uz nekdo naprogramoval
treba tu treemapu jsem nasel tady
https://github.com/emirpasic/gods#treemap

ano, vetsinou je oser vybirat z vice knihoven ruznych kvalit:)

kdyz uz se go porovnava s javou, tak me nejvic zarazi ze java nema vubec zadnou spravu verzi. clovek si kvuli tomu musi stahovat externi programy. to same webovej server, ten ktery je soucasti javy je nepouzitelnej s prisernym api ... ale jo, pobavilo me to tu jak nekteri chtej po go to co ve svem oblibenem jazyce rozhodne nemaj
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 19:09:03
kdyz neco chybi, tak to vetsinou uz nekdo naprogramoval
treba tu treemapu jsem nasel tady
https://github.com/emirpasic/gods#treemap


Jenomže tohle doprogramovat nemůžeš, protože ti chybějí generika/parametrizované typy.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 03. 09. 2018, 19:11:51
kdyz neco chybi, tak to vetsinou uz nekdo naprogramoval
treba tu treemapu jsem nasel tady
https://github.com/emirpasic/gods#treemap


Jenomže tohle doprogramovat nemůžeš, protože ti chybějí generika/parametrizované typy.

a prece to nekdo naprogramoval, vystaci si s interfacema
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 19:12:26
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
Fanboys gonna fan.
Říká hater...

Mně nevadí Go per se, nehatuji ho.

Vadí mi to, že to je polotovar, kde autoři oignorovali desítky let vývoje programovacích jazyků a s výmluvou "neumíme to" nedodali základy. A fanboyové nad tím hýkají.

Je možné, že Go 2 bude OK.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 19:25:10
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
Fanboys gonna fan.
Říká hater...

Mně nevadí Go per se, nehatuji ho.

Vadí mi to, že to je polotovar, kde autoři oignorovali desítky let vývoje programovacích jazyků a s výmluvou "neumíme to" nedodali základy. A fanboyové nad tím hýkají.

Je možné, že Go 2 bude OK.
Na Go 2 si ještě počkáme. Jinak jak říkám, nikdo ho nikomu nenutí, Rust je třeba docela dobrá alternativa.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 20:26:18
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
je to dobré, když potřebuješ odmazávat staré prvky.

Existuje víc možností, jak takovou cache (nebo co to má být) implementovat lépe než přes LinkedHashMap. Nejjednodušeji tak, že si najdu příslušnou knihovnu na GitHubu :)
Název: Re:Proč ten hype okolo Go?
Přispěvatel: optimizer 03. 09. 2018, 20:30:52
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
je to dobré, když potřebuješ odmazávat staré prvky.

Existuje víc možností, jak takovou cache (nebo co to má být) implementovat lépe než přes LinkedHashMap. Nejjednodušeji tak, že si najdu příslušnou knihovnu na GitHubu :)

knihovnu, která implementuje linkedhashmap.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 20:49:15
Existuje víc možností, jak takovou cache (nebo co to má být) implementovat lépe než přes LinkedHashMap. Nejjednodušeji tak, že si najdu příslušnou knihovnu na GitHubu :)
knihovnu, která implementuje linkedhashmap.

Zrovna u cache je víc možností, jak efektivně odmazávat staré položky - nemusí to nutně být ty nejstarší.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 03. 09. 2018, 21:06:31
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: optimizer 03. 09. 2018, 21:18:09
Zrovna u cache je víc možností, jak efektivně odmazávat staré položky - nemusí to nutně být ty nejstarší.

ptal jsi se

K čemu je to dobré?

dal jsem ti příklad. O situacích, kdy to není dobré, jsem ńic nepsal.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: surovec 03. 09. 2018, 21:27:25
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
Je to dobré k nadávání na Go.
Fanboys gonna fan.
Říká hater...
Říká pan chytrák, který plevelí každou diskuzi, protože má ještě letní prázdniny.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Bacsa 03. 09. 2018, 21:52:34
Říká pan chytrák, který plevelí každou diskuzi, protože má ještě letní prázdniny.
Hele, uetoyo/kiki/zoro/surovče/kriple, vykašli se na trolení a napiš něco k věci.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 22:05:08
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.

Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně. Pokud je těch položek víc, můžeš použít třeba SQLite, který je na takové přístupy stavěný.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 03. 09. 2018, 22:40:23
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.

Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně.

Aneb proč to nenaprasit...

Máš nějaký odpor proti nejpřirozenějšímu řešení s vhodnou mírou abstrakce? Jak ta tvoje iterace prospěje čitelnosti kódu?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: ooooop 03. 09. 2018, 23:00:05
Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně. Pokud je těch položek víc, můžeš použít třeba SQLite, který je na takové přístupy stavěný.

Aneb PHP řešení na všechno ;D Dodnes si vždy zpomenu na legendární:
Citace
No tak si to dej do databáze.

To bylo totiž řešení na všechno.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: optimizer 03. 09. 2018, 23:07:41
Aneb PHP řešení na všechno ;D Dodnes si vždy zpomenu na legendární:

pole v PHP je LinkedHashMap.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 23:09:13
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.
Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně.
Aneb proč to nenaprasit...

Máš nějaký odpor proti nejpřirozenějšímu řešení s vhodnou mírou abstrakce? Jak ta tvoje iterace prospěje čitelnosti kódu?

Spíš mi vadí, že se někdo snaží přetahovat řešení z jednoho jazyka do druhého. V zadání není nic o odstranění nejstarší položky.

Také bych se mohl pozastavovat nad tím, proč to má Java tak složitě přes třídu, když v PHP je použití ještě přirozenější.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 03. 09. 2018, 23:13:41
Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně. Pokud je těch položek víc, můžeš použít třeba SQLite, který je na takové přístupy stavěný.
Aneb PHP řešení na všechno ;D Dodnes si vždy zpomenu na legendární:
Citace
No tak si to dej do databáze.
To bylo totiž řešení na všechno.

Budeš se divit, ale stále je dost vývojářů, kteří nejprve vytáhnou data z databáze a teprve pak se je snaží řadit v aplikaci.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 03. 09. 2018, 23:14:02
Casto ale treba potrebuju LinkedHashMap za ucelem udrzeni poradi vlozeni entries, - tady uz zacina s GO oser. Pak se to matla stylem, ze mam slice udrzujici ordered keys do hashmapy a podobne zoufalstvi.
K čemu je to dobré? Potřebuješ přímý nebo sekvenční přístup?
LinkedHashMap<String, String> jsem potreboval naposledy vcera, kdyz jsem psal backing bean pro JSF2 combobox, konkretne Primefaces OneSelectMenu widget. Potrebuju sekvencni iteraci pres ordered map, aby se combobox vypisoval v mnou urcenem poradi, zaroven potrebuju primy pristup, abych mohl prekladat key na value.
Denni chleba, nechapu, jak se nekdo muze nad takovou trivialitou pozastavovat.

Přímý přístup u pěti položek není třeba dělat hashmapou, to projdeš i sekvenčně. Pokud je těch položek víc, můžeš použít třeba SQLite, který je na takové přístupy stavěný.

Konkretne v danem pripade se to ma tak:
- po zalogovani usera v @PostConstruct spring session beanu reknu hibernatovi, at mi nacte z postgresa ciselnik cca 300 polozek, hibernate vrati List<RowBean>. Na onen list postvu stream() a toMap() collector, vysledek prelozeny do LinkedHashMap<String,String> ulozim jako atribut session beanu - cela transformace na jednom radku kodu.
- na tenhle atribut povesim Primefaces widget, ktery mi udela luxusni skinovatelny ajaxovy combobox s naseptavacem pres fulltext search, to je prakticky jediny zpusob, jak udelat lidsky pouzitelny combobox se stovkami polozek.
 
A protoze se pracuje pouze s predzvykanymi daty v session,je to pekelne rychle a nezatezuje CPU serveru, pamet zere, ale to je Jawy standard.

Hotovo na nekolika krasne citelnych radcich kodu.

Samozrejme, ze je blbost neco takoveho chtit po GO, ale aspon neco jako kolekce s Object polozkami v podani jawy 1.4 by se siklo.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 04. 09. 2018, 00:16:23
Samozrejme, ze je blbost neco takoveho chtit po GO, ale aspon neco jako kolekce s Object polozkami v podani jawy 1.4 by se siklo.
ale mlho, na to uz ste odpoved dostal:)

kdyz neco chybi, tak to vetsinou uz nekdo naprogramoval
treba tu treemapu jsem nasel tady
https://github.com/emirpasic/gods#treemap

je to potreba hejtovat i to s cim neni problem
v tomhle je oproti jave jedinej rozdil a to ten ze to neni soucasti standartni knihovny, ale to v jinych jazycich taky nemate.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 00:22:14
Konkretne v danem pripade se to ma tak:
- po zalogovani usera v @PostConstruct spring session beanu reknu hibernatovi, at mi nacte z postgresa ciselnik cca 300 polozek, hibernate vrati List<RowBean>. Na onen list postvu stream() a toMap() collector, vysledek prelozeny do LinkedHashMap<String,String> ulozim jako atribut session beanu - cela transformace na jednom radku kodu.
- na tenhle atribut povesim Primefaces widget, ktery mi udela luxusni skinovatelny ajaxovy combobox s naseptavacem pres fulltext search, to je prakticky jediny zpusob, jak udelat lidsky pouzitelny combobox se stovkami polozek.
 
A protoze se pracuje pouze s predzvykanymi daty v session,je to pekelne rychle a nezatezuje CPU serveru, pamet zere, ale to je Jawy standard.

Hotovo na nekolika krasne citelnych radcich kodu.

Samozrejme, ze je blbost neco takoveho chtit po GO, ale aspon neco jako kolekce s Object polozkami v podani jawy 1.4 by se siklo.

V Javě je na to knihovna s třídou LinkedHashMap. Zkoušel jsi najít podobně hotovou alternativu v Go? Pokud jsi nenašel a napsal sis ji sám, zveřejnil jsi ji?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: bakakaika 04. 09. 2018, 00:37:15
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.

No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane? Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 04. 09. 2018, 00:45:17
V Javě je na to knihovna s třídou LinkedHashMap. Zkoušel jsi najít podobně hotovou alternativu v Go? Pokud jsi nenašel a napsal sis ji sám, zveřejnil jsi ji?

nemel jsem potrebu to zatim hledat:)) ale kupodivu google LinkedHashMap v go najde
https://godoc.org/github.com/jabong/florest-core/src/common/collections/maps/linkedhashmap

budes muset najit jinou javy tridu ktera v go udelat nejde:(
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 04. 09. 2018, 00:56:48
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.

No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane? Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,

vrati chybu kterou zahodis a v ty promenny file bude nil, s cim nekde dal musis pocitat
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 01:23:32
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")
No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane? Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
vrati chybu kterou zahodis a v ty promenny file bude nil, s cim nekde dal musis pocitat

Nevýhodou tohoto přístupu je, že se už nedozví, proč se ten soubor nepodařilo otevřít.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Youda 04. 09. 2018, 07:53:58
Pekne hosi, tak jste mi tu nasli dokonce dve naprosto ruzne implemnetace LinkedHashMap.
Oba pripady jsou one-man-show na githubu, na jeden z nich se 2 roky nesahlo.

Sorac, ale tyhle naproste zaklady MUSI byt soucasti stdlib, uz z toho prosteho duvodu, se se tyto datove struktury pouzivaji pro predavani dat mezi knihovnimi komponentami.
Kdyz nekdo pro GO napise libovolnou knihovnu, asi tezko svoje API postavi kolem jednomuzneho projektiku z Githubu.
Ten prvni odkaz podporuje JSON serializaci, to ma asi "resit" tenhle problem. JSON, ktery poztraci informace o typu a za se  jim spolehlive prenest prakticky pouze string, cislo a datum.

C++ stdlib (STL) tohle resi od pocatku veku - http://www.cplusplus.com/reference/map/map/
A prijde mi pomerne tristni vyvinout novy jazyk, a neresit tyhle zaklady.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: MarSik 04. 09. 2018, 09:14:54
a prece to nekdo naprogramoval, vystaci si s interfacema

Což je ekvivalent Javy 1.4, kde všechny kolekce vracely Object a pro použití hodnoty se pak muselo přetypovávat. Všichni co znám jsme to svorně nenáviděli.

Java zavedla generika v Java 5, tj. rok 2004. Takové C++ mělo šablony už v roce 1990 (nebo 1998 pokud za bernou minci berete až ISO).
Go je zrovna v tomto ohledu dvě dekády pozadu. Nic nad čím bychom měli jásat. I Go má totiž svoje silné a slabé stránky a poukazovat na ty slabé není nic špatného.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 09:55:19
Občas tu přece někdo doporučuje jako výhodné předávat data netypovaným asociativním polem/hashmapou :-)

Tyhle "fígle" z legacy kódu vyhazujeme roky. A pořád občas narážím na ukládání různých nekompatibilních typů do jedné kolekce a následné rozhodování dle instanceof.... peklo.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 04. 09. 2018, 10:15:32
Sorac, ale tyhle naproste zaklady MUSI byt soucasti stdlib, uz z toho prosteho duvodu, se se tyto datove struktury pouzivaji pro predavani dat mezi knihovnimi komponentami.

není důvod, aby defaultní mapa neudržovala i pořadí prvků. Skoro nic to nestojí. Můžete mít různé implementace mapy, které implementují stejné rozhraní. Knihovna by neměla vyžadovat konkrétní typ.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 04. 09. 2018, 10:24:43
Občas tu přece někdo doporučuje jako výhodné předávat data netypovaným asociativním polem/hashmapou :-)

je to dobrá praktika v jazycích bez keyword argumentů.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 04. 09. 2018, 10:28:57
Pekne hosi, tak jste mi tu nasli dokonce dve naprosto ruzne implemnetace LinkedHashMap.
Oba pripady jsou one-man-show na githubu, na jeden z nich se 2 roky nesahlo.

Sorac, ale tyhle naproste zaklady MUSI byt soucasti stdlib, uz z toho prosteho duvodu, se se tyto datove struktury pouzivaji pro predavani dat mezi knihovnimi komponentami.
Kdyz nekdo pro GO napise libovolnou knihovnu, asi tezko svoje API postavi kolem jednomuzneho projektiku z Githubu.
Ten prvni odkaz podporuje JSON serializaci, to ma asi "resit" tenhle problem. JSON, ktery poztraci informace o typu a za se  jim spolehlive prenest prakticky pouze string, cislo a datum.

C++ stdlib (STL) tohle resi od pocatku veku - http://www.cplusplus.com/reference/map/map/
A prijde mi pomerne tristni vyvinout novy jazyk, a neresit tyhle zaklady.

tak ono se na naky implementaci mapy musi kazdej tejden neco menit. ale to snad ne;)
aby to mohli pouzivat knihovny napric, staci aby pouzivali stejne nazvy metod. v tom je rozdil od javy, tam se musi primo rict co objekt implmentuje.

jako jo, bylo by hezky mit par interfacu a implementaci jako soucast standartni knihovny, ale jak uz sem psal, vsechny jazyky to taky nemaj.

a c++ bych jako vzor radsi nedaval, tech 50 ruznych implentaci stringu na jednom projektu me jeste ted strasi:))
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 10:30:47
Občas tu přece někdo doporučuje jako výhodné předávat data netypovaným asociativním polem/hashmapou :-)

Tyhle "fígle" z legacy kódu vyhazujeme roky. A pořád občas narážím na ukládání různých nekompatibilních typů do jedné kolekce a následné rozhodování dle instanceof.... peklo.

Pokud místo hodnot různých typů uložíš do kolekce polymorfní objekty, tak máš vystaráno.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 10:36:36
Občas tu přece někdo doporučuje jako výhodné předávat data netypovaným asociativním polem/hashmapou :-)
je to dobrá praktika v jazycích bez keyword argumentů.

Tohle používám docela běžně a jsem za to kritizován, protože to prý není typově korektní řešení. Jako alternativa mi bývá nabídnuta nějaká obluda, nejčastěji v podobě frameworku.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 11:25:01
Pokud místo hodnot různých typů uložíš do kolekce polymorfní objekty, tak máš vystaráno.

No samozřejmě, objekty implementující nějaký interface. Jak v tom PHP víš, který interface zrovna daná hashmapa nese, když nemáš něco jako generika?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 11:27:09
je to dobrá praktika v jazycích bez keyword argumentů.

IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 11:49:33
Pokud místo hodnot různých typů uložíš do kolekce polymorfní objekty, tak máš vystaráno.
No samozřejmě, objekty implementující nějaký interface. Jak v tom PHP víš, který interface zrovna daná hashmapa nese, když nemáš něco jako generika?

Třeba tak, že to mám ve stejné třídě a navenek to nijak neprezentuji.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 11:55:23
Hm, a v té třídě to víš tak, že to prostě víš.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 04. 09. 2018, 12:05:30
Tyhle "fígle" z legacy kódu vyhazujeme roky. A pořád občas narážím na ukládání různých nekompatibilních typů do jedné kolekce a následné rozhodování dle instanceof.... peklo.

IDE umí určit typ z instanceof podmínky. Ve větvi pod instanceof vám nedovolí tu proměnnou použít špatným způsobem.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: gll 04. 09. 2018, 12:12:42
je to dobrá praktika v jazycích bez keyword argumentů.

IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.

zabrání to přehození pořadí parametrů, což je horší chyba než nedodržení formátu slovníku.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 12:35:07
je to dobrá praktika v jazycích bez keyword argumentů.
IMO to není dobrá praktika nikdy. Jen z nouze ctnost, když nemám typově bezpečnější způsob.
zabrání to přehození pořadí parametrů, což je horší chyba než nedodržení formátu slovníku.

Nejen jejich pořadí, ale pokud je těch parametrů 4 a více, tak se stejně musí do něčeho zabalit. Nabízí se objekty nebo kolekce. Typová bezpečnost je stejně v objektových jazycích jen vlhkým snem.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: vv 04. 09. 2018, 12:37:04
a prece to nekdo naprogramoval, vystaci si s interfacema

Což je ekvivalent Javy 1.4, kde všechny kolekce vracely Object a pro použití hodnoty se pak muselo přetypovávat. Všichni co znám jsme to svorně nenáviděli.

Java zavedla generika v Java 5, tj. rok 2004. Takové C++ mělo šablony už v roce 1990 (nebo 1998 pokud za bernou minci berete až ISO).
Go je zrovna v tomto ohledu dvě dekády pozadu. Nic nad čím bychom měli jásat. I Go má totiž svoje silné a slabé stránky a poukazovat na ty slabé není nic špatného.

a neslo o to ze bych hajil neexistenci generik, diskutujici tvrdil ze nejde udelat mapu;)
a kdyz uz se to toci u ty javy, tak java zavedla generika v roce 2004 ale jeste predloni jsem musel na jednom projektu pozivat javu 1.3, to u go je zavadeni novinek do projektu rychlejsi:D
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 13:01:24
Nabízí se objekty nebo kolekce.

U typovaných jazyků se kolekce/mapa pro předávání různých parametrů standardně nenabízí, to je čuňárna, jejíž použití musí být v daném případě hodně ospravedlněné. O tom snad není potřeba diskutovat...

Hodně užitečné jsou pojmenované parametry s defaultní hodnotou ala python, ale samozřejmě s explicitním typem (generiko, interface, třída, něco), který se nějakým způsobem kontroluje ještě před spuštěním a nekorektní nelze spustit (kompilátor, něco). Ty mi v javě chybí dost. A mraky dalších užitečných věcí. Ale přílišná typová svázanost mezi nimi rozhodně není.

Citace
Typová bezpečnost je stejně v objektových jazycích jen vlhkým snem.

??
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 13:25:54
Nabízí se objekty nebo kolekce.
U typovaných jazyků se kolekce/mapa pro předávání různých parametrů standardně nenabízí, to je čuňárna, jejíž použití musí být v daném případě hodně ospravedlněné. O tom snad není potřeba diskutovat...

Zajímavé, předávání kolekcí vidím velmi často a ještě jsou na to jejich autoři hrdí, jak jsou objektoví. Asi jako já :) Je totiž důležité umět s těmi kolekcemi pracovat. Tupé nahrazování datovými objekty s hromadou getterů a setterů není to, co bychom v OOP chtěli.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 14:04:18
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 14:22:57
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...

Java přece nemá žádné nedostatky...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 14:24:43
Ty si dělej co chceš, v mnou spravovaném kódu takové neudržovatelné prasárny nebudou. Bohatě stačí ta spousta workaroundů kvůli nedostatkům javy...

Ty nepoužíváš JSON ani XML? Jejich deserializací vznikne kolekce.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 14:25:44
Java přece nemá žádné nedostatky...

Kdybys ji používal, věděl bys o nich...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 14:34:59
Java přece nemá žádné nedostatky...
Kdybys ji používal, věděl bys o nich...

Kdybys chápal ironii...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 14:48:15
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Kit 04. 09. 2018, 15:00:13
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...

To je právě nevýhoda IDE, že podporuje jen "jeden správný" styl programování, což způsobuje příliš velkou provázanost mezi komponentami a tím zvyšuje složitost. Ve Vimu mě ani nenapadne používat čtyřnásobnou dědičnost a protected atributy. IDE tyto nežádoucí postupy podporuje.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: dustin 04. 09. 2018, 15:01:07
Nechám tě při tom, hodně štěstí...
Název: Re:Proč ten hype okolo Go?
Přispěvatel: bakakaika 04. 09. 2018, 15:36:17
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...

To je právě nevýhoda IDE, že podporuje jen "jeden správný" styl programování, což způsobuje příliš velkou provázanost mezi komponentami a tím zvyšuje složitost. Ve Vimu mě ani nenapadne používat čtyřnásobnou dědičnost a protected atributy. IDE tyto nežádoucí postupy podporuje.

Plácáte s prominutím nesmysly
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Ondra Satai Nekola 04. 09. 2018, 16:03:12
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...

To je právě nevýhoda IDE, že podporuje jen "jeden správný" styl programování, což způsobuje příliš velkou provázanost mezi komponentami a tím zvyšuje složitost. Ve Vimu mě ani nenapadne používat čtyřnásobnou dědičnost a protected atributy. IDE tyto nežádoucí postupy podporuje.

Neblabol.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: Zlatovlaska 07. 09. 2018, 13:59:49
Jen se neboj, já ji chápu. Myslel jsem to zcela vážně, kdybys javu používal, věděl bys, čeho se vyvarovat. A rozhodně bys tu netlačil mapu/dokonce kolekci pro předávání parametrů. I když ve vimu by to asi vyšlo nastejno...

To je právě nevýhoda IDE, že podporuje jen "jeden správný" styl programování, což způsobuje příliš velkou provázanost mezi komponentami a tím zvyšuje složitost. Ve Vimu mě ani nenapadne používat čtyřnásobnou dědičnost a protected atributy. IDE tyto nežádoucí postupy podporuje.

Neblabol.
Blabol
Název: Re:Proč ten hype okolo Go?
Přispěvatel: BoneFlute 07. 09. 2018, 19:23:51
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")
No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane? Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
vrati chybu kterou zahodis a v ty promenny file bude nil, s cim nekde dal musis pocitat

Nevýhodou tohoto přístupu je, že se už nedozví, proč se ten soubor nepodařilo otevřít.

Neřešíme tu skutečnost, že když chybu zahodíš, tak se nedozvíš, proč se nepodařilo soubor otevřít.

Bavíme se tu o tom, že způsob, jak s chybou pracuje Go a jak třeba Java je v určitých ohledech stejný.
Název: Re:Proč ten hype okolo Go?
Přispěvatel: BoneFlute 07. 09. 2018, 19:28:12
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.

No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane?
To samé, jako když v java-like napíšeš:
Kód: [Vybrat]
try {
   file = os.Open("/path/to/file.txt")
}
catch (Exception e) {}

Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
Co konkrétně by si tomu vytknul?
Název: Re:Proč ten hype okolo Go?
Přispěvatel: oss 08. 09. 2018, 09:06:10
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.

No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane?
To samé, jako když v java-like napíšeš:
Kód: [Vybrat]
try {
   file = os.Open("/path/to/file.txt")
}
catch (Exception e) {}

Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
Co konkrétně by si tomu vytknul?


Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit
Název: Re:Proč ten hype okolo Go?
Přispěvatel: BoneFlute 08. 09. 2018, 13:52:11
Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

To podtržítko považuji právě za tu aktivní snahu ignorovat chybu.

Bloky try-catch jsou spíše k seskupení chyb, aby si nemusel odchytávat každou jednu. Nepolemizuji nad tím, zda je to dobře nebo špatně.

No a když tedy tento kód použijeme a funkce open() vrátí chybový stav, co se stane?
To samé, jako když v java-like napíšeš:
Kód: [Vybrat]
try {
   file = os.Open("/path/to/file.txt")
}
catch (Exception e) {}

Já v go nikdy nic nepsal, ale naprvní pohled mi tento přístup přijde pozadu oproti tomu jak to dělá Rust nebo i oproti klasickým vyjimkam,
Co konkrétně by si tomu vytknul?


Je to psuedokod, ale aby ste boli spokojni
Kód: [Vybrat]
file, _ := os.Open("/path/to/file.txt")

Proste ide o to, ze pri vynimkach musite pre ignoraciu chyby nieco aktivne urobit

Takže to podtržítko není dostatečný projev aktivity? OK, pro někoho může být.