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 ... 87 88 [89] 90 91 ... 133
1321
Vývoj / Re:Typový system versus unittesty
« kdy: 25. 06. 2018, 16:38:46 »
Ale mám za to, že jsme se tu všichni shodli, že typová kontrola nemůže nahradit jednotkové testy ani naopak
Tak na to ať si udělá názor každý sám :-)

1322
Vývoj / Re:Typový system versus unittesty
« kdy: 25. 06. 2018, 16:28:45 »
Akorát teda pak zápis těch podmínek nebude moc připomínat typování, spíš nějaký lambda kalkul.
Ale hlavně se tomu nesmí říkat unit-testy... že?  ;D

A tak já proti unittestů zas v zásadě nic nemám. Ale tobě to přijde jako unittest?

1323
Vývoj / Re:Typový system versus unittesty
« kdy: 25. 06. 2018, 15:07:01 »
To samozřejmě jde, měl jsem na mysli aparát, ve kterém se nadefinuje, co je prvočíslo, co je iracionální číslo a jak se odmocňuje. Možná jsem zvolil špatný příklad.

Jasně.

Právě, že v tom nevidím rozdíl. Pro mě jsou ty typy právě takový aparát.

Napadlo mě něco takového:
Kód: [Vybrat]
Person = {
    name: String 1 50
    surname: String 1 100
    birth: Date * now
    sex: Male | Female
    spouse: Person | None
} where [
    if spouse == Person:
       sex != spouse.sex
       birth < Now - (18 * year)
]

Ale považuji to také za typový systém.

1324
Vývoj / Re:Typový system versus unittesty
« kdy: 25. 06. 2018, 14:25:29 »
vedle typování a jednotkových testů se někdy taky používá obecné dokazování korektnosti při překladu, vývojář napíše podmínky v nějaké deklarativní notaci, které pak překladač vyhodnotí, než vygeneruje kód. Formálně to je jen zobecnění typové kontroly, ale za použití neomezené logiky. Například si můžu “staticky” vyžádat, že odmocnina prvočísla je vždy iracionální apod.

Uniká mi v čem se to liší od typů. Já pomocí typu nemůžu "říct", že odmocnina z prvočísla je vždy iracionální?
Kód: [Vybrat]
nthRoot = x : PrimeNum -> IrrationalNum

1325
Vývoj / Re:Typový system versus unittesty
« kdy: 25. 06. 2018, 13:47:51 »
Ta "vyšší objektovost" je ale spíš nevýhoda, ne?
Objektovost bych jí nevyčítal.
Metatabulky jsou perfektní věc. Daj se pak děla i ty type-tagy. Akorát tedy nejde přiřadit meta ke scaláru.

Jedna věc, která mi přijde tak nějak navíc jsou eventy. Díky tomu mám problém to nazvat funkcionální :-)

1326
Vývoj / Re:Typový system versus unittesty
« kdy: 23. 06. 2018, 23:57:45 »
Nevím, jestli je ta averze psát si vlastní jazyk opodstatněná. Elasticsearch má vlastní jazyk. Nevím, jak by to vyřešili s nějakou Luou...
Lua je skvělá. Malá, kompaktní, šikovná, rychlá. Ale není funkcionální a nepřekvapivě nemá žádné typy.

Když bych hledal nějaký jazyk, který bych chtěl zakomponovat do svého programu, tak zase tak moc na výběr není. (Nebo tedy já nebyl úspěšný.)

1327
Vývoj / Re:Kleisliho operátor
« kdy: 23. 06. 2018, 23:52:37 »
Co na tom nechapes?

Let 〈T, η, μ〉 be a monad over a category C. The Kleisli category of C is the category CT whose objects and morphisms are given by

Obj(CT) = Obj(C),
Hom_CT(X,Y) = Hom_C(X,TY)

Sorry jako, ale to jsou zcela trivialni pojmy.

Jak vidno, něco vysvětlit neumí každý.

1328
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 21:10:59 »
Aha. Takže když vytvořím instanci třídy Person s věkem -50, tak ti to je jedno, protože...
Ono hodně dělají zvyky z těch statických typu. Pro nás už jen představa existence nevalidního objektu je neprijatelná.

V případě netypovych jazyku kde to může kdykoliv kdekoliv chcipnout - to tolik neprozivaji.
To už je o zvyku a disciplíně bez ohledu na jazyk.
Před seznámením se z Haskellem jsem to psal proto, protože je to tak správně. Po seznámení s Haskellem jsem začal chápat proč.

Prasit jde i v Haskellu.
To mě zajímá. Ne, to, zda to jde, ale nějakou pěknou ukázku prasení v Haskellu.

1329
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 17:03:42 »
Aha. Takže když vytvořím instanci třídy Person s věkem -50, tak ti to je jedno, protože...

Ono hodně dělají zvyky z těch statických typu. Pro nás už jen představa existence nevalidního objektu je neprijatelná.

V případě netypovych jazyku kde to může kdykoliv kdekoliv chcipnout - to tolik neprozivaji.

1330
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 16:33:17 »
Jak kdy. Pokud potřebuji pozdní vazbu, tak nevím, co bych v tom konstruktoru testoval.
Hele, založ si vlastní vlákno!

1331
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 15:24:54 »
empatie by mohla pomoct, třeba tady SB, banda rádobychytrých pseudomatematiků se mu snaží nacpat, že nějaké conditional conformance burrito je lepší než to prostě napsat v pythonu

Mou jedinou otázkou (odpovídající původnímu dotazu), na kterou mě zajímala odpověď, bylo, zda se mi vyplatí budovat typové systémy, nebo mě vyjde jednodušeji a pružněji celý tento aparát odbourat a nechat to na oněch testech (kterým se možná stejně nevyhnu). Nechci se kvůli tomu hádat, každý si stejně vybere to svoje.
Šel jsem oběma cestama. A musím říct, že napsat aplikaci, kde spolehlivost bude stát jen na testech je peklo.
Psát aplikaci v Haskellu, kde mi vše drží typy mi přišla pohodlnější. Ale zase to jde ztuha, a ty IO monády - no člověk si musí hodně zvykat.

Za mě je ideální kompromis: co nejvíc typů, a teprve když to nejde tak pomoct testy.

A úplně největší peklo je Java.

1332
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 15:14:50 »
Obávám se, že ještě horší je, když někdo jenom zahlédne nějaký kousíček, a už má pocit, že to chápe. To je pak ten neznalý, který si ale navíc nenechá vysvětlit, že je neznalý.
Tak ona je taková dobrá zásada, když člověk něco zjišťuje, tak vyfiltrovat zdroje/lidi, které evidentně nejsou k užitku.

1333
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 14:58:26 »
Jen jsem volně citoval, nicméně asi skutečně existují lidé, co nechápou třeba jen funkce vyššího řádu. A i ti píšou komerční kód.
Tak to nechápou no. Tak přijde senior, řekne jim - to je tak a tak, voni na to - hmm, pomaleji... Zkusí to na malém příkladu, vyzkouší na části projektu, po pěti aplikacích (toho konceptu) budou tvrdit, že to znali vždycky.

Chci říct, samozřejmě souhlasím. Největší problém je ignorace. Ignorace na straně neznalých, že to je blbost, a ignorace na straně znalých, že není třeba to polopatě vysvětlit.

1334
Vývoj / Re:Typový system versus unittesty
« kdy: 21. 06. 2018, 14:51:41 »
Jinak čistě pragmaticky - v případě Swiftu proběhla diskuse, jestli podporovat HKT, protože "jsou moc složité a málokdo jim rozumí" (což je určitě pravda). Úplně stejnou věc debatovali tvůrci Rustu ("skoro nikdo to není schopen pochopit, takže se to nebude používat"). Haskellisti si tuto otázku nějak moc nekladli, pročež má teď Haskell nálepku esoterického a akademického jazyka, protože naučit se jej nad rámec povrchního seznámení se syntaxí zvládne jen zlomek lidí, co se považují za programátory (i když určitě by to dalo 100% teoretických fyziků například). V tomto vlákně se opět manifestuje staré známé "nejsem-li něco schopen pochopit, je to k ničemu". Aneb na co používat bagr, když mám lopatu...
No tak nemusím být ani nijak zvlášť inteligentní. Tak tomu prostě dám pár hodin navíc no.

Pamatuju si, jak jsem kolegovi vysvětloval, proč je jako docela fajn v konstruktoru testovat vstupní hodnoty; že jinak to balit do třídy nemá smysl. Strašně se kroutil. Je docela chytrý, ale celou svou inteligenci vyčerpal na to, aby mi dokázalmě uhádal, že to tak není.

1335
Studium a uplatnění / Re:Zajímavé firemní benefity
« kdy: 20. 06. 2018, 19:09:20 »
Nic ve zlym Vaclave, ale kdyby se vsechno bohatstvi rovnomerne rozdelili tak vsichni mame hovno. To bohatstvi je pro chude treba v US ten american dream - mit dum auto spoustu prahu za ktere si koupis cokoliv a kohokoliv. Prave to bohatstvi motivuje chude lidi k tomu aby sli makat do sve spatne placene prace a jednou mozna vydelali na to o cem sni. Kdyby meli vsichni hovno tak nikoho nebavi vstavat do prace.
Drahý Kkt, vidíš někde v tom, co jsem napsal, přání toho aby se vše rozdělilo rovnoměrně? Měl by sis trochu zlepšit schopnost porozumění psanému textu.

American dream je naopak největší neštěstí chudých američanů. Proč? Třeba i proto, že tolerují když je někdo ojebává, protože si představují jak budou časem na jeho místě a budou ojebávat podobné zoufalce zase oni. Ale oni se tam nikdy nedostanou...

Je přeci jen rozdíl mezi: "líní by za svou lenost měli platit" a "líní by na svou lenost měli umřít".
A podobně, je rozdíl mezi tím, když je někdo líný, a když je někdo neinteligentní.

Stran: 1 ... 87 88 [89] 90 91 ... 133