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 - Wavelet

Stran: 1 ... 3 4 [5] 6 7 ... 15
61
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 23:16:38 »
před rokem jsem téměř neznal ... (moderní) Adu (ta zajímavě kombinuje statické a dynamické typování), kde jsou taky lahůdky.
Chceš to rozvést?
Ani ne, furt ji moc neznám (tu nejnovější verzi), takže bych nerad psal blbosti. Nicméně jde o to, že Ada je poměrně přísně staticky typovaná, ale má (verze 2012, podle definice) závislostní typy, které jsou ale implementované pomocí tzv. predikátů, z nichž některé můžou být dynamické. Takže jestli jsem to dobře pochopil, částečně se chová jako třeba Julia s jejím existenciálním typovým kvantifikátorem. Právě čtu Ada 2012 rationale, ale je to bichle a mám i jiné věci, takže mi to jde jak psovi pastva.

Nejsem tedy znalec typových systémů, ale Ada jsem drtil 10let zpátky tzn. že 2012 jsem ještě chytil. Co jsem tenkrát pochopil, tak velká energie se dávala do té podmnožiny která se jmenuje SPARK. Problém Ady je stejný jako byl u Fortranu, tzn. málo dostupných knihoven. Ale jazyk je to pěkný. Zde na rootu někdo občas přispěl komentářem, protože v něm měli produkční software. A to jsem jim záviděl :D

62
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 20:57:52 »
@BoneFlute
Tak většinou s čím přicházíš, s tím také odcházíš. Přijdeš všem vysvětlit důležitost typů i těm co o nich vědí víc než ty (Idris). Pak se ptáš na triviality a odcházíš se stejným světonázorem.  V pořádku, svět je dost velký pro nás všechny. 8) ;D

63
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 08:40:41 »
A což o to. S tím nemám problém. Určitě je lepší dynamický jazyk, než žádný.

http://bracha.org/pluggable-types.pdf

- Type Systems are subtle and hard
- Relying on them is dangerous

 8)

Hele, jak dlouho jsme se tu přetahovali o tom, že kategorie silný/slabý typy je zbytná. Teď se tu budeme přetahovat o tom, že static/dynamic typy znamená hlavně compiletime/runtime? Asi jsem unaven. Tím spíše, že je to co půl roku znova, a nic z toho.

Jediný, kdo se o něčem neustále hádá jsi ty. Nevšiml jsem si, že by tu někdo kromě tebe psal hodnotící soudy o  dynamickém/statickém/silném/slabém typování. Jen se vypíchly nějaké výhody a nevýhody a případně přidal odkaz.
Je spousta lidí co jsou schopni psát v Clojure i Scala nebo Python, Haskell, Rust a nedělají z toho takové drama jako ty.
Teď to pár let bude holt Rust. Já se o Rust zajímal od doby vzniku, koment z roku 2016, ale už dřív jsem se tu po něm pídil v diskuzích: https://www.root.cz/clanky/programovaci-jazyk-rust-nahrada-c-nebo-slepa-cesta/nazory/vlakno/7/. Ale zdá se mi, že kolem něj roste skupina lidí, co budou zase slepě tlačit Rust všude, jeho typový systém je to nejlepší na světě... ehhh to už tu bylo s C++ , Java a atd. Ano, škoda ztrácet čas diskuzí.

64
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 01:16:33 »
A což o to. S tím nemám problém. Určitě je lepší dynamický jazyk, než žádný.

http://bracha.org/pluggable-types.pdf

- Type Systems are subtle and hard
- Relying on them is dangerous

 8)

65
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 26. 01. 2022, 01:14:53 »
Zvláštní je, že k těm rigidním statickým silně typovaným jazykům vůbec netíhnou matematici.

66
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 17:55:30 »
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á.

67
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 17:40:40 »
Tohle je ale obecný problém. Mám tři parametry typu int, prohodím je a sčítám hrušky s jablky.
Proto se mi líbí jazyky s pojmenovanými argumenty funkcí (kde je jméno součástí signatury).

Třeba v Pythonu se vždy snažím je uvádět i při volání. Je to jeden ze způsobů jak se vyhnout problémům.
 

68
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 17:25:52 »
Tak spousta věcí už dnes jde dobře i v tom Pythonu ošetřit. Třeba zmiňovaný problém s parametry funkce (např. 2-krát int) ve skutečnosti málo kdy nastává. Většinou to jsou dva jiné typy např. váha, výška. Pro to se dá v Pythonu udělat buď alespoň typový alias nebo zcela nový typ (namedtuple, dataclasses atd). Jednoduché, ale přesto se to musí pořád někde připomínat, protože maintreamové jazyky jako Java a dnes už i Python k tomu přirozeně nevedou. Ostatně celý Domain Driven Design se mnohem lépe implementuje např. v F# než v C# nebo dokonce Idris https://github.com/andorp/order-taking :D (zdravím Idrise)

Jinak souhlasím, že silné/slabé typování je sice dosti vágní rozdělení, ale mnohem důležitější než dynamické/statické.
Spousta dynamických jazyků se dá nějak staticky zkontrolovat, pokud k tomu mají aspoň nějak zpracvaný typový aparát.

“Dynamic typing is but a special case of static typing, one
that limits, rather than liberates, one that shuts down
opportunities, rather than opening up new vistas. Need I
say it?” — Bob Harper

69
Vývoj / Re:Jak validovat DTO v dynamicky typovaném jazyce?
« kdy: 25. 01. 2022, 12:04:43 »
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.

70
Software / Re:Jak monitorujete tok dokumentů?
« kdy: 05. 01. 2022, 22:29:34 »
Problém opravdu nastává, pokud je to nějaký heterogenní systém. Musíš být schopný buď ty jednotlivé procesy (tasky) obalit a koordinovat skrze jiný systém (viz ty BPM) nebo do každého toho programu nějak zakomponovat aby po dokončení publikovali nějakou zprávu na kterou zas jiná část systému může reagovat. Já myslím, že řešíš problém za které si hodně firem nechá draze platit, protože tohle zavádět do existujícího komplexního enterprise  řešení, právě jak ty píšeš, je těžké.

71
Vývoj / Re:Chování seznamu v Pythonu
« kdy: 05. 01. 2022, 17:53:53 »
Děkuji Ink a uetoyo za relevantní odpovědi.
našel jsem stránku kde je to srozumitelně vysvětleno:
https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747

Není zač. V tomto videu Chris Lattner vysvětluje rozdíl mezi Pythonem a Swiftem.
Zmiňuje tam právě i tento problém. A ano, toto chování je často hodně problematické.

https://www.youtube.com/watch?v=UTFFR61xVbs&ab_channel=LexClips

(třetí minuta)
Swift je divnej :)

Škoda že zařízli ten projekt Swift/TensorFlow a celý ten ekosystém kolem https://github.com/apple/swift/blob/main/docs/DifferentiableProgramming.md. Já ho aktivně používat nemůžu, ale jazyk je to pěkný. Ale snad nás od Pythonu zachrání Julia :)

72
Vývoj / Re:Chování seznamu v Pythonu
« kdy: 05. 01. 2022, 15:21:55 »
Děkuji Ink a uetoyo za relevantní odpovědi.
našel jsem stránku kde je to srozumitelně vysvětleno:
https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747

Není zač. V tomto videu Chris Lattner vysvětluje rozdíl mezi Pythonem a Swiftem.
Zmiňuje tam právě i tento problém. A ano, toto chování je často hodně problematické.

https://www.youtube.com/watch?v=UTFFR61xVbs&ab_channel=LexClips

(třetí minuta)

73
Software / Re:Jak monitorujete tok dokumentů?
« kdy: 05. 01. 2022, 13:16:37 »
Obecně asi pomocí zasílání/publikování zpráv. Co třeba Kafka nebo něco podobného? Myslím, že tohle řeší spousta lidí řešením na míru konkrétnímu procesu, ale rád se si vyslechnu názory ostatních.

74
Vývoj / Re:Chování seznamu v Pythonu
« kdy: 05. 01. 2022, 11:44:23 »
Proč se v c nevytvoří seznam s hodnotami [[1],[2]] ale instance a a b?

Protože takové je chování Pythonu, přesněji řečeno seznam spadá do mutable collection. Jde o referenci a jak odkazoval předřečník, vše je jasně vysvětlěné hned na začátku: "Assignment statements in Python do not copy objects, they create bindings between a target and an object. For collections that are mutable or contain mutable items, a copy is sometimes needed so one can change one copy without changing the other. "

Jsou jazyky, které to tak nemají, tak možná tvá poznámka o "normálnosti", tě k nim přirozeně navede.

75
uetoyo: pokud chceš podobnej systém s virtuálníma prostředíma pro linux, tak na to je dobře použitelná Anaconda.

Tak Anaconda snad funguje na všech OS stejně, právě proto se rozšířila. Možná právě kvůli dřívějším problémům s kompilovanými knihovnami pro Windows. Nicméně mi přijde stále méně nutná. Já sám jsem přešel, od doby kdy je modul `venv` v základní knihovně na jednoduché workflow. V každém projektu, nebo pro skupinu projektů, mám virtuální prostředí. Anakonda je dle mého názoru, další systém, který se musí člověk učit a vidím k němu v méně méně důvodů.

Ale souhlasím s Vámi, že pokud chci nyní stejné startovní prostředí na všech OS, Anaconda nebo Miniconda je ta cesta.

Stran: 1 ... 3 4 [5] 6 7 ... 15