Typový system versus unittesty

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #870 kdy: 23. 10. 2018, 23:06:39 »
Každopádně mě ani nijak zvlášť nezajímá rozdíl mezi FP a OOP; ten je celkem jasný. Mě zajímá schopnost typů na úkor testů.

Důkaz sporem: Napiš jedinou netriviální aplikaci, kterou po úspěšné kompilaci předáš zákazníkovi jako hotovou. Nesmíš ji ani jednou spustit, ani žádnou její komponentu. Pokud to svedeš, tak ti pogratuluji, že ses vyhnul testům a že sis vystačil s typy.

Nemám zájem. Jak píšu, mě zajímá schopnost typů na úkor testů.


Kit

Re:Typový system versus unittesty
« Odpověď #871 kdy: 23. 10. 2018, 23:31:46 »
Každopádně mě ani nijak zvlášť nezajímá rozdíl mezi FP a OOP; ten je celkem jasný. Mě zajímá schopnost typů na úkor testů.

Důkaz sporem: Napiš jedinou netriviální aplikaci, kterou po úspěšné kompilaci předáš zákazníkovi jako hotovou. Nesmíš ji ani jednou spustit, ani žádnou její komponentu. Pokud to svedeš, tak ti pogratuluji, že ses vyhnul testům a že sis vystačil s typy.

Nemám zájem. Jak píšu, mě zajímá schopnost typů na úkor testů.

V tom případě je jasné, že testy jsou nenahraditelné. Typy z tohoto krajíce mohou něco ukousnout, ale větší díl zůstává na těch testech.

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #872 kdy: 24. 10. 2018, 00:14:20 »
V tom případě je jasné, že testy jsou nenahraditelné. Typy z tohoto krajíce mohou něco ukousnout, ale větší díl zůstává na těch testech.

V Haskellu se jednotkové testy používají ve velmi malé míře. Typový systém Haskellu je sice nadprůměrný, ale stále nevyčerpal teoretické možnosti. Toliko k tvému rozmáchlému tvrzení.

Nevím, jestli to řekl Evan Czaplicki nebo kdo, že typové systémy běžných jazyků jsou odfláklé, ne, že by to nešlo udělat líp.

Kit

Re:Typový system versus unittesty
« Odpověď #873 kdy: 24. 10. 2018, 00:23:48 »
V tom případě je jasné, že testy jsou nenahraditelné. Typy z tohoto krajíce mohou něco ukousnout, ale větší díl zůstává na těch testech.

V Haskellu se jednotkové testy používají ve velmi malé míře. Typový systém Haskellu je sice nadprůměrný, ale stále nevyčerpal teoretické možnosti. Toliko k tvému rozmáchlému tvrzení.

Tak mi to rozmáchlé tvrzení vyvrať nějakým důkazem. I v Haskellu je každá jednotka důkladně testována. Možná vývojáři nepoužívají automatizované testy, ale určitě si každou jednotku několikrát spustí, aby si ověřili, že dělá, co má dělat.

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #874 kdy: 24. 10. 2018, 00:49:59 »
V tom případě je jasné, že testy jsou nenahraditelné. Typy z tohoto krajíce mohou něco ukousnout, ale větší díl zůstává na těch testech.

V Haskellu se jednotkové testy používají ve velmi malé míře. Typový systém Haskellu je sice nadprůměrný, ale stále nevyčerpal teoretické možnosti. Toliko k tvému rozmáchlému tvrzení.

Tak mi to rozmáchlé tvrzení vyvrať nějakým důkazem.

To jsem právě udělal poznámkou o Haskellu.


I v Haskellu je každá jednotka důkladně testována. Možná vývojáři nepoužívají automatizované testy, ale určitě si každou jednotku několikrát spustí, aby si ověřili, že dělá, co má dělat.
Samozřejmě. Haskellisti moc nepíšou jednotkové testy, protože si "vystačí" s typy. Ale samozřejmě si vyzkouší, co stvořili a zda to dělá co má. V čem je problém? V čem vidíš "důkaz" svého tvrzení?


Kit

Re:Typový system versus unittesty
« Odpověď #875 kdy: 24. 10. 2018, 01:32:14 »
V Haskellu se jednotkové testy používají ve velmi malé míře. Typový systém Haskellu je sice nadprůměrný, ale stále nevyčerpal teoretické možnosti. Toliko k tvému rozmáchlému tvrzení.
Tak mi to rozmáchlé tvrzení vyvrať nějakým důkazem.
To jsem právě udělal poznámkou o Haskellu.

Poznámka není důkaz. Navíc tu svou poznámku v následujícím odstavci vyvracíš.

I v Haskellu je každá jednotka důkladně testována. Možná vývojáři nepoužívají automatizované testy, ale určitě si každou jednotku několikrát spustí, aby si ověřili, že dělá, co má dělat.
Samozřejmě. Haskellisti moc nepíšou jednotkové testy, protože si "vystačí" s typy. Ale samozřejmě si vyzkouší, co stvořili a zda to dělá co má. V čem je problém? V čem vidíš "důkaz" svého tvrzení?

Důkaz vidím tom, že každé takové vyzkoušení je testem. Je úplně jedno, zda je testem automatizovaným nebo manuálním. Bylo by lepší, kdyby místo holedbání, že testy nepotřebují, psali normální automatizované testy - třeba jen v omezené míře.

Jak bez testu ověříš, zda máš ve vyvíjeném modulu všechny požadované funkce a s potřebnými parametry?

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #876 kdy: 24. 10. 2018, 03:42:07 »
Důkaz vidím tom, že každé takové vyzkoušení je testem. Je úplně jedno, zda je testem automatizovaným nebo manuálním.

Ne, to není jedno. Toto vlákno je o nahrazení unit testů ve prospěch typování. O akceptačních testech, nebo ručním otestování není řeč. Tudíž, pokud chceš odvádět diskusi tímto směrem, nebudu ti sekundovat.
« Poslední změna: 24. 10. 2018, 03:46:18 od BoneFlute »

Kit

Re:Typový system versus unittesty
« Odpověď #877 kdy: 24. 10. 2018, 09:04:35 »
Důkaz vidím tom, že každé takové vyzkoušení je testem. Je úplně jedno, zda je testem automatizovaným nebo manuálním.

Ne, to není jedno. Toto vlákno je o nahrazení unit testů ve prospěch typování. O akceptačních testech, nebo ručním otestování není řeč. Tudíž, pokud chceš odvádět diskusi tímto směrem, nebudu ti sekundovat.

Tohle jsi vyhodil z citace:
Citace
Jak bez testu ověříš, zda máš ve vyvíjeném modulu všechny požadované funkce a s potřebnými parametry?
Tohle dělají právě jednotkové testy.

SB

Re:Typový system versus unittesty
« Odpověď #878 kdy: 24. 10. 2018, 12:56:52 »
V OOP se píší testy, ve FP se programy dokazují.
To určitě nelze takto generalizovat.

Typy nejsou v OOP důležité, jsou jen atributem objektu. FP je na typech postaveno.
To zcela jistě není pravda. Jak je takové Clojure postaveno na typech? Java bez interfaců by byla méně než poloviční.


Každopádně mě ani nijak zvlášť nezajímá rozdíl mezi FP a OOP; ten je celkem jasný. Mě zajímá schopnost typů na úkor testů.

Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.

Myslím, že typový systém a paradigma jazyku jsou oddělenými záležitostmi.

Bacsa

Re:Typový system versus unittesty
« Odpověď #879 kdy: 24. 10. 2018, 13:20:17 »
V OOP se píší testy, ve FP se programy dokazují.
To určitě nelze takto generalizovat.

Typy nejsou v OOP důležité, jsou jen atributem objektu. FP je na typech postaveno.
To zcela jistě není pravda. Jak je takové Clojure postaveno na typech? Java bez interfaců by byla méně než poloviční.


Každopádně mě ani nijak zvlášť nezajímá rozdíl mezi FP a OOP; ten je celkem jasný. Mě zajímá schopnost typů na úkor testů.

Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.

Myslím, že typový systém a paradigma jazyku jsou oddělenými záležitostmi.
Co je netypový interface?

Kit

Re:Typový system versus unittesty
« Odpověď #880 kdy: 24. 10. 2018, 13:37:56 »
Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.
Co je netypový interface?

Zřejmě má na mysli duck typing.

Bacsa

Re:Typový system versus unittesty
« Odpověď #881 kdy: 24. 10. 2018, 13:49:05 »
Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.
Co je netypový interface?
Zřejmě má na mysli duck typing.
Aha. Tak to pak jo. To byla ostatně, pokud se správně pamatuju, úplně první verze rozhraní.

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #882 kdy: 24. 10. 2018, 17:48:10 »
Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.
Co je netypový interface?
Zřejmě má na mysli duck typing.
Aha. Tak to pak jo. To byla ostatně, pokud se správně pamatuju, úplně první verze rozhraní.

A kde se to používalo? U Javy?

Kit

Re:Typový system versus unittesty
« Odpověď #883 kdy: 24. 10. 2018, 19:10:51 »
Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.
Co je netypový interface?
Zřejmě má na mysli duck typing.
Aha. Tak to pak jo. To byla ostatně, pokud se správně pamatuju, úplně první verze rozhraní.
A kde se to používalo? U Javy?

V Javě se to dá používat také, pokud do interface dáš typ Object. U jednodušších úloh je to docela praktické - do doby, než poprvé použiješ operátor instanceof.

Duck typing běžně používám při prototypování v PHP. Podobně to funguje i v Javascriptu a Pythonu.

BoneFlute

  • *****
  • 1 859
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #884 kdy: 24. 10. 2018, 19:19:14 »
Nikde není napsáno, že interface musí být typový. Nějaká Java není argumentem.
Co je netypový interface?
Zřejmě má na mysli duck typing.
Aha. Tak to pak jo. To byla ostatně, pokud se správně pamatuju, úplně první verze rozhraní.
A kde se to používalo? U Javy?

V Javě se to dá používat také, pokud do interface dáš typ Object. U jednodušších úloh je to docela praktické - do doby, než poprvé použiješ operátor instanceof.

Duck typing běžně používám při prototypování v PHP. Podobně to funguje i v Javascriptu a Pythonu.

Ale na to jsem se přece neptal!