Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: 1 ... 13 14 [15] 16 17 ... 133
211
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 00:21:56 »
Když mi spadne aplikace na nějaké výjimce,  za běhu, u klienta, tak je mi to k prdu
Jenže o to vůbec nejde, důležité je, že to vůbec jde nějak ošetřit. U toho druhého typu jazyků to prostě nejde z principu, protože ta typová informace chybí a runtime nemá jak tu chybu vůbec rozpoznat. To je snad jasné jak facka, ne?
Tou druhou skupinou myslíš ty slabě typované? Ty, o nichž se celou dobu bavím a tvrdím, že defakto neexistují? Takže ta argumentace je taková, že silně/slabě typované je důležitější než staticky/dynamicky, protože když by nějaký slabě typovaný jazyk existoval, tak by to bylo špatně? To si ze mě děláš legraci, že jo.
C++
Hele, můj dědeček, budiž mu země lehká, programoval ve Zlíně pro velkou modrou, ještě před děrnými štítky.
Hezký. Ale C++ se ještě používá a tudíž evidentně existuje. Možná se ti víc pozdává Pascal jako alternativní příklad.

Ne, nepozdává. Pokud archeologie, tak Indiana Jones.

Hele, dokavad nepřišel Rust, tak bych možná váhal. Ale nyní jsem přesvědčen, že se úspěšně vyhnu práci dělat v C++. Zrovna třeba ten projekt, který jsem zmiňoval, tak jsem původně zkoušel psát v C++. Chvilku jsem se s tím pral a strašně fňukal. Pak jsem se na to vykašlal. Prostě historie, dinosauři, pravěk, finito, ok?!

Někde se ta čára udělat musí. Já jí mám nad C++. Přijmi to. Bavit se se mnou nemusíš.

212
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 00:12:36 »
Když mi spadne aplikace na nějaké výjimce,  za běhu, u klienta, tak je mi to k prdu
Jenže o to vůbec nejde, důležité je, že to vůbec jde nějak ošetřit. U toho druhého typu jazyků to prostě nejde z principu, protože ta typová informace chybí a runtime nemá jak tu chybu vůbec rozpoznat. To je snad jasné jak facka, ne?
Tou druhou skupinou myslíš ty slabě typované? Ty, o nichž se celou dobu bavím a tvrdím, že defakto neexistují? Takže ta argumentace je taková, že silně/slabě typované je důležitější než staticky/dynamicky, protože když by nějaký slabě typovaný jazyk existoval, tak by to bylo špatně? To si ze mě děláš legraci, že jo.
C++

Hele, můj dědeček, budiž mu země lehká, programoval ve Zlíně pro velkou modrou, ještě před děrnými štítky. Zkusíme to porovnat s nějakým šikovným programovací jazykem? Já nevím, co třeba Idris?

Protože on mi vyprávěl, jak je strašně podstatné, aby ty kolíky byly kulatý, a ne čtvercoví. Protože pak se to tolik netrhá. A to musíš uznat, že je podstatný rozdíl. Určitě podstatnější, než nějaké silné/slabé typování (natož statika/dynamika).

213
Sítě / Re:Kde je ajťákův ráj na venkově?
« kdy: 26. 01. 2022, 00:09:11 »
Bydlím na vesnici. Jsem městský kluk, který se bez problému stěhuje, nemám rád hodně velká města (Praha). Takže pro mě nebyl problém se přestěhovat na vesnici (80 obyvatel). Pět kilometrů větší obec (4 000 obyvatel). 20 km město (30 000 obyvatel). Jižné čechy. Kolem baráku pole, les pár set metrů.

Lidi se tu spolu celkem baví, i když nějaké ty hádky tu jsou. Dobré se nepřidávat na žádnou stranu.

Internet bezdrát od Starnetu. Sem tam výpadek, párkrát do roka, ale jinak v pohodě i na vzdálenou plochu. Pevná IP za kilo.

Máme velkou zahradu, a to je příjemné. V létě si vytáhnem stoleček a židličky a obědváme venku.

Klasický problém, kterému se asi normálně bohatý člověk nevyhne, je, že na baráku je vždycky co dělat.

Výlety do okolí jsou super, ale nakonec je neprovozuju tak často jak jsem si představoval.

Do města bych se možná vrátil, možná ne; paní určitě ne.

214
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 23:45:45 »
Když mi spadne aplikace na nějaké výjimce,  za běhu, u klienta, tak je mi to k prdu
Jenže o to vůbec nejde, důležité je, že to vůbec jde nějak ošetřit. U toho druhého typu jazyků to prostě nejde z principu, protože ta typová informace chybí a runtime nemá jak tu chybu vůbec rozpoznat. To je snad jasné jak facka, ne?
Tou druhou skupinou myslíš ty slabě typované? Ty, o nichž se celou dobu bavím a tvrdím, že defakto neexistují? Takže ta argumentace je taková, že silně/slabě typované je důležitější než staticky/dynamicky, protože když by nějaký slabě typovaný jazyk existoval, tak by to bylo špatně? To si ze mě děláš legraci, že jo.

215
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 23:14:01 »
Tady je skvělá definice silného/slabého typování: http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html :)
Ano. Defakto píše: nebavte se o tom, taková klasifikace je blbost. :-D Co mi to jen...

216
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 23:08:29 »
Jak jsem ukazoval, to i taková Java ignoruje deklarované typy. [...] při běhu už je všechno jedno. To už se jenom modlíš.
[...] Pokud není jazyk staticky typovaný, žádné další buzzwordy ho už nezachrání.
To není pravda (a nechápu, co je na tom tak těžké k pochopení), Java, Go apod. za běhu typ kontrulují a chybně typované volání nebo přístup se dá odchytit (výjimka nebo zotavitelný panic). Statické typování (nebo jeho absence) tohle nijak neovlivňuje.
Když mi spadne aplikace na nějaké výjimce,  za běhu, u klienta, tak je mi to k prdu. (A nechápu, co je na tom tak těžkého k pochopení. :-P)

Je fajn, že to ten runtime hlídá, je super, když to mohu odchytit, a vůbec, o tom žádná. Ale je to porovnávání: typy verzus žádné typy. Nikoliv silné typování verzus slabé (protože všechny "normální" jazyky co znám jsou dle tvé definice silně typované.) A už vůbec ne dynamické verzus statické, protože dynamické v oblasti typů nic zajímavého proti statickým nepřináší. Proto na pojmu silného/slabého typování není co řešit, protože defakto ten problém neexistuje (jo, ta automatická konverze, já vím).

Pokud není jazyk staticky typovaný, žádné další buzzwordy ho už nezachrání.

Tak to jestli je ve "výchozím stavu" staticky/dynamicky typovaný je dle mého ne až tak podstatná věc.
Takový Erlang je velmi důležitý dynamicky typovaný jazyk, který nezvládli staticky otypovat ani Wadler a Marlow. Přímo si na tom vylámaly zuby. Přitom ten jazyk má hmatatelný výsledky co neokecáš žádnou teorií.  Ale pokud máš takovou preferenci nic proti. Jen je dobré si připomínat, že to o kvalitě jazyka to nic neříká.
Erlang je skvělý jazyk, a má hmatatelné výsledky. Protože je lepší mít jazyk s dynamickým typováním, než ho nemít vůbec.


Pokud není jazyk staticky typovaný, žádné další buzzwordy ho už nezachrání.
Tak to jestli je ve "výchozím stavu" staticky/dynamicky typovaný je dle mého ne až tak podstatná věc.
Pravda
Nesmysl :-D

217
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 17:27:03 »
Evidentně jsem měl na mysli jinou definici silné vs. slabé (je jich několik a žádná “závazná”). Já mám zažitou tu o typovém runtimu.
Můžeš to ještě jednou, pro pořádek, shrnout?
Vyšel jsem z té přísnější definice, že slabě typovaný je jazyk, který za běhu vůbec na typy nehledí a špatné explicitní přetypování vede do pekel (segfault nebo tak něco).
Jak jsem ukazoval, to i taková Java ignoruje deklarované typy. A jak jsem se pokoušel vyjádřit, při běhu už je všechno jedno. To už se jenom modlíš.


Pokud upřednostňuješ tu definici s implicitním přetypováním — proti gustu žádný dišputát —
A já měl pocit, že jsem se vyjádřil tak jasně: pro mě dělení na slabě a silně typované je pod mojí rozlišovací schopnost. Pokud není jazyk staticky typovaný, žádné další buzzwordy ho už nezachrání.

218
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 16:56:24 »
Ale Idris tady tvrdil, že než statické verzus dynamické, to je mnohem zásadnějším rozdílem silné verzus slabé. […]
Tak jak teda?
Je teda silné verzus slabé "jen" o vhodném/nevhodném samo konvertování, nebo je v tom víc?
Evidentně jsem měl na mysli jinou definici silné vs. slabé (je jich několik a žádná “závazná”). Já mám zažitou tu o typovém runtimu.
Můžeš to ještě jednou, pro pořádek, shrnout?


zvlášť když se někdo odmítá bavit o C/C++ :)
To skutečně odmítám.


Pokud je tohle jen "programátorský prožitek", tak se všechny výpočetně úplné jazyky liší jen v tom prožitku. Ty kategorie silný/slabý jsou samozřejmě neostré, ale to je jakákoliv klasifikace.

Jestli je důležitější rozdíl silný/slabý nebo statický/dynamický netuším. Obojí přináší dost znatelné důsledky. A ano, esence toho slabého typování jsou IMO ty automatické konverze.
Já nemám absolutně nic proti tomu sprostě řvát na autory jazyků, aby je dělali s maximálním uživatelským prožitkem = bez automatické konverze.

A ano, esence toho slabého typování jsou IMO ty automatické konverze.
Děkuji za odpověď. Budu tě nadále všude citovat ;-)

219
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 15:07:20 »
Tedy zpět k otázce. Které jazyky jsou vlastně ty slabě typované, vůči kterým se ty silně typované vyhrazují?

Tak často se uvádí třeba, že neprovádí za zády žádná taková "zvěrstva".
 >>> True + 1
2
Otázka je, jestli to lze Pythonu vyčítat, když má ten typ implementovanou metodu, která toto přesně umožní. Pokud chci takové chování můžu ve spoustě jazycích použít extension methods. Skoro by se dalo říct, že to je moje "algebraická" neznalost, protože ten typ na to má prostě operaci. Být tebou mrknu se pro zajímavost na Scala 3 a Julia. Ty mají dle mého názoru zajímavý typový systém a mému srdci jsou bližší než např. Rust.
Já třeba vidím zásadní rozdíl v tom, jestli nějakému stringu můžu dát metodu append co bere int (nebo i nějakou generickou verzi) a v tom, že ten int na string zkouší konvertovat překladač.
V prvním případě dá programátor takové všežravé operace jen tam, kde dávají smysl. Ve druhém případě to překladač zkouší všude. Je zásadní rozdíl, pokud se taková konverze děje při konkatenaci stringů, nebo třeba při otevírání souboru.

Implicitní konverze mají nepříjemnou tendenci dít se tam, kde je nikdo nečeká. Respektive čeká je jen guru daného jazyka, kterého už X-krát nepříjemně překvapily.

OK, jenže v tom vidím určitý problém. Jak jsem psal zde: "Skutečnost, že se mi Javascript snaží automaticky konvertovat cokoliv podobného číslu na číslo má sice vliv na programátorský prožitek, ale že by z toho musela být extra kategorie si nemyslím."

Můžete oprávněně namítnout, že mám nízké požadavky a dám vám za pravdu. Ale Idris tady tvrdil, že než statické verzus dynamické, to je mnohem zásadnějším rozdílem silné verzus slabé. A to mi přijde moc divokej matroš.

Tak jak teda?

Je teda silné verzus slabé "jen" o vhodném/nevhodném samo konvertování, nebo je v tom víc?

220
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 05:54:25 »
Citace: BoneFlute link=topic=25768.msg365402#msg365402
Trochu odbočím — koukals pak ještě někdy na záv. typy? Mám teď čerstvou zkušenost s jejich výukou, tak kdyby byl zájem ;)

Nijak zvlášť. Aktuálně většinu svého volného času věnuju Rustu a realizaci konkrétního projektu. Takže k teorii se vrátím někdy později. Snad.

Ale od posledka a zvláště od vysvětlování forall se mi honí hlavou takové dojmy, že:
- zbytečně se zahodili výjimky, protože se autoři jazyků vykašlali na rozlišování checked/unchecked a nahradili se Option/Maybe.
- místo řešení rozhraní a tříd jako typových omezení, se používá forall, který je sice matematicky čistější, ale programátorsky neintuitivní
- navzdory mé antipatii k Pythonu (ano, typy), tak je mi na něm extrémně sympatická idea, že jazyk by měl programátorovi umožňovat jasně a srozumitelně vyjádřit co chce, a nekomplikovat mu to nějakou ideologií (OOP, FP, typy, etc)

Uvidím co si budu myslet, až se seznámím se Scalou a Idrisem.

PS: Zájem určitě bude, píšu si :) a předem díky za ochotu.

221
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 05:42:56 »
Co se týče Javy a Go, tak mi to stále nedochází. Obecně v každém okamžiku prvky znají svůj typ. Že ten typ je Object nebo Any, no to je tvoje volba, ne omezení/vlastnost jazyka.
Typ objektu je to, co je za new, ne deklarovaný typ proměnné.
Kód: [Vybrat]
test(x) {
    print("type: {x.type}")
}
Deklarace je nezajímavá. New je relikt. Prvek může vzniknout parsováním, přetypováním, deserializací, etc.

Tedy zpět k otázce. Které jazyky jsou vlastně ty slabě typované, vůči kterým se ty silně typované vyhrazují? (Nebudeme-li se bavit o C/C++.)

222
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 24. 01. 2022, 20:19:52 »
tak jsem nabyl dojem, že zásadní problém je v tom, že slabě typovaný jazyk (= ve smyslu jazyka, kde by prostředí v daném okamžiku nevědělo jakého je ten který prvek typu […]) možná ani neexistuje. Tudíž klauzule, že jazyk XY je silně typovaný je jen tak pro parádu.
Tohle mi nedá spát :) Myšlenkový experiment: Rozhodnu se v různých jazycích explicitně neuvádět typy proměnných, takže v C++ budou všechny pointery void*, v Javě bude všechno Object, v Go vše, jak jinak, interface{}, v Rustu Any apod. Při použití (volání metody, přístup k datům) musím vždy explicitně přetypovat. Kterépak jazyky ustojí chybu v typu a kde nastane segfault nebo něco podobně nedefinovaného a destruktivního? To jen tak k zamyšlení..
Obávám se, že mi nedochází co tím chceš demonstrovat.
Že C++ je slabě typované, přinejmenším typy bez RTTI. V Javě nebo Go se dá z takové chyby zotavit.

Toho jsem se obával. OK, můžeme se za účelem kvality diskuse vyhnout prehistorii v podobě jazyků C/C++?

Co se týče Javy a Go, tak mi to stále nedochází. Obecně v každém okamžiku prvky znají svůj typ. Že ten typ je Object nebo Any, no to je tvoje volba, ne omezení/vlastnost jazyka.

OK, jinak:
Jsou jazyky Java, Go, Rust, C#, Javascript, Python, Lua, VisualBasic, podle tebe, slabě typované? Pokud ano, tak proč?

223
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 24. 01. 2022, 19:23:26 »
tak jsem nabyl dojem, že zásadní problém je v tom, že slabě typovaný jazyk (= ve smyslu jazyka, kde by prostředí v daném okamžiku nevědělo jakého je ten který prvek typu […]) možná ani neexistuje. Tudíž klauzule, že jazyk XY je silně typovaný je jen tak pro parádu.
Tohle mi nedá spát :) Myšlenkový experiment: Rozhodnu se v různých jazycích explicitně neuvádět typy proměnných, takže v C++ budou všechny pointery void*, v Javě bude všechno Object, v Go vše, jak jinak, interface{}, v Rustu Any apod. Při použití (volání metody, přístup k datům) musím vždy explicitně přetypovat. Kterépak jazyky ustojí chybu v typu a kde nastane segfault nebo něco podobně nedefinovaného a destruktivního? To jen tak k zamyšlení..

Obávám se, že mi nedochází co tím chceš demonstrovat.

224
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 24. 01. 2022, 16:57:05 »
Jinak souhlas, že validace s typovými schopnostmi jazyka v mainstreamových jazycích moc nesouvisí, pokaždé se validuje ručně psaným kódem (ať už ho napsal kdokoli).

Jakto doprcic zase ze s tim nesouvisi. V Jave DTO + tabulka v Relacni db se zakladnimi constrains mi zakladni validaci udela. To snad neni validace, ze ti v JSONu muzou prijit jen predem dane fieldy, a ze kdyz ve First Name bude 1GB string tak ze to Relacni db odmitne kdyz tam dam VARCHAR(20)?

Dyť jo. Jenže ty DTO a tabulky se sami nenapíšou, že jo. Dále viz: https://forum.root.cz/index.php?topic=25768.msg365337#msg365337

225
Vývoj / Re:Ruby v roku 2022 (je mrtve?)
« kdy: 24. 01. 2022, 05:30:33 »
P.S. nakoniec som teda vybral naozaj to Go, nestazoval sa na to nikdo.
:) ;) :D ;D To uz si v Go aj napisal ten program aj v pohode vsade bezi a vsetci su spokojni ?
Vzdaj to, nebudem to pisat v niecom co potrebuje JVM. :) Co mas proti Go?
Taky by to šlo napsat v Go a pak transpilovat do Javy ;)
https://github.com/elazarl/go-java ?
Jo, to dává smysl :) Ještě chybí Rust nad JVM a transpiler Agdy do Cobolu. Transpiler Ruby do Fortranu už máme…
To dáme.

Stran: 1 ... 13 14 [15] 16 17 ... 133