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

Stran: 1 ... 13 14 [15] 16 17 ... 25
211
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 13:10:59 »
Dynamické jazyky na to nekašlou, dynamické jazyky mají jiný koncept. A ano, jsou díky tomu více flexibilní a jsou proto pohodlnější na používání, proto také čím dál tím více oblíbené s tím, jak roste výkon počítačů a to jejich plýtvání zdroji je čím dál tím více marginální.
Subjektivní hodnocení - nuda.

Globální statistika, málo co může být objektivnější. Samozřejmě o příčinách se můžeme hádat. Já sázím na peníze, dynamické jazyky nabízí vyšší produktivitu a jsou v řadě oblastí ekonomicky výhodnější.

212
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 13:04:45 »
Není, ukazatel v C je pojmenovaný ukazatel do paměti, který se nijak nestará o datový typ objektu, na který ukazuje. V principu je to stejné, jen je to více low level, programátor si to musí přetypovat explicitně a musí si sám pohlídat paměť.

Srovnáváš jazyk s vyspělým typovým systémem, který rozumí kontextu a vyšší assembler, který umožňuje dělat jenom low level věci, protože je jednoduchý a moc lepších možností nemá.

Srovnávám statické a dynamické typy obecně. Jakékoliv vaše obecné tvrzení o statických typech musí být platné pro všechny staticky typované jazyky. Pokud není, znamená to, že to, že se mýlíte, že se jedná o omyl (nebo argumentační faul), kdy statickým typům přisuzujete individuální vlastnosti nějakého konkrétního jazyku.

V souvislosti s tím bych rád upozornil, že jazyk C je dle žebříčku TIOBE stalé druhý nejoblíbenější jazyk. Používá se hodně a používám ho i já. Můžeme se tu bavit i o akademických jazycích, ale mě víc zajímá praxe, jsem pragmatický. Ergo každé platné tvrzení o statických typech musí být v souladu i s druhým nejoblíbenějším jazykem se statickými typy.

213
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 12:52:30 »
To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.
Což platí i u staticky typovaných jazyků :-).
Neplatí  ;) U statických jazyků něco jako neošetřená větev (ideově samozřejmě) neexistuje.

To máš zásadně chybné ideje. Tohle je běžný omyl statických myslících programátorů, že když jim program projde statickou kontrolou, že ho mají ošetřený. Statické typy mají jediný smysl, umožňují výkonovou optimalizaci. Co se týče chybovosti, nejsou zárukou ničeho a to ani u ADY. Naopak typový systém je sám o sobě zdrojem dalších chyb v programu a to tím větší, čím je tento typový systém komplexnější.

214
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 12:42:47 »
Já ti neříkám, že to umím, to je zcela podružné. Já ti říkám, jak to je, dynamické jazyky jsou o jiném způsobu myšlení. Jestli to pochopíš nebo ne je už na tobě.
Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy). U dynamického programování se nic takového nekonalo, protože tam na pochopení nic není. Pointa je v tom, že já ti v tom, že "dynamické jazyky jsou o jiném způsobu myšlení" jednoduše nevěřím. Takhle je to jednoduché. Přeji dobrou noc.

Takže jsme zpátky na začátku, akorát jsme si vyjasnili, že esoterika, tedy pardon, víra, je na tvé straně.

Ne ne ne :-P Když by si řekl, že věříš, že dynamické jazyky jsou lepší, tak bych neřekl ani popel. Na místo toho jsi se pustil do posuzování toho, co jsem či nejsem schopen pochopit. Víš, tomu, co tu předvádíš, se říká svatá kráva.

Já dál věřím, že přijde někdo, kdo bude zastáncem dynamických jazyků, a ukáže mi, že to není jen ezoterika, ale že je to skutečně o jiném způsobu myšlení. A já třeba dospěju k závěru, že mi to stejně nic neříká, ale alespoň si budu moct odškrtnout jeden mýtus.

Obelháváš sám sebe. Já nepřišel s tvrzením co jsi nebo nejsi schopen pochopit, já přišel s tvrzením, že nechápeš, že dynamické jazyky nejsou jenom o nepsaní typových anotací. Dovol abych ti to připomenul:

Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.

Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá.  A nechápeš to proto, že prostě neumíš myslet v dynamicky typovaném jazyku, neumíš myslet dynamicky. Proto ti v něm chybí statické typy, bez nich neumíš dobře programovat a naopak neumíš využít výhod jazyku dynamického.

A jestli máš pocit, že se mýlím a ty to chápeš, pak nevím, co tady řešíš.

Já zase nevěřím, že to pochopíš, protože ty to pochopit nechceš, ty chceš hlavně sám sebe přesvědčit o tom, že o nic nepřicházíš, když dynamické jazyky nechápeš. Stejně tak můžeš věřit v to, že se objeví někdo, kdo ti ukáže že bůh je nebo není, podle toho v co věříš. Není to na ostatních, je to na tobě. Jsi jako ateista, který se bojí že bůh je a on se dostane do pekla, nebo jako věřící, který se bojí, že bůh není a on celý život žije v omylu.

215
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:59:25 »
Já ti neříkám, že to umím, to je zcela podružné. Já ti říkám, jak to je, dynamické jazyky jsou o jiném způsobu myšlení. Jestli to pochopíš nebo ne je už na tobě.

Pochopil jsem spoustu věcí (Prolog, Scheme, Smalltalk, OOP, FP). A když jsem to nepochopil, tak jsem alespoň cítil, že jsem si šáhl na hranice svých schopností (Haskell, závislostní typy). U dynamického programování se nic takového nekonalo, protože tam na pochopení nic není. Pointa je v tom, že já ti v tom, že "dynamické jazyky jsou o jiném způsobu myšlení" jednoduše nevěřím. Takhle je to jednoduché. Přeji dobrou noc.

Takže jsme zpátky na začátku, akorát jsme si vyjasnili, že esoterika, tedy pardon, víra, je na tvé straně.

216
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:57:11 »
To není žádná novinka, už v C máš ukazatele a můžeš přetypovávat proměnné. V dynamickém jazyku je to paradigma ale z podstaty jiné, datový typ není vlastností proměnné, ale samotných dat. Jinak samozřejmě statické jazyky se snaží a snaží se napodobovat dynamické jazyky a co nejvíc se jim přiblížit, byť to není dokonalé. Ale to jen potvrzuje sílu dynamických jazyků a toho, jakým způsobem mění pohled na programování. Dynamické jazyky jako Javascript a Python velmi rychle rostou, statickým nezbývá, než se přizpůsobit, pokud se nechtějí stát okrajovým jevem.

Co to, clovece, - s prominutim - meles? Ukazatel v C je diametralne jina zalezitost. V tom mem prikladu je videt, ze "promenna" ve statickych a dynamickych jazycich neni nutne zase tak odlisny koncept. V tech statickych kompilator samozrejme potrebuje vedet typ dat (ne "promenne") v dobe prekladu, aby mohl zkontrolovat, ze program je validni a hlavne mohl optimalne zpracovat alokaci pameti a dalsi operace. Dynamicke jazyky na to kaslou, plytvaji prostredky v dobe behu a ano, clovek v nich muze vice "prasit" a spousta veci tak nejak funguje, kdyz neprasis moc. To je casto pohodlne a umoznuje to veci resit "intuitivne", ale u vetsich projektu to je dost kontraproduktivni a neni nahodou, ze vznikl prave TypeScript nebo ze Python ma volitelne anotace typu.

To prasení IMHO znamená, že jde spustit i kód, který na nějaké konkrétní neošetřené větvy spadne. Víc v tom podle všeho není.
Což platí i u staticky typovaných jazyků :-).

217
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:55:22 »
To není žádná novinka, už v C máš ukazatele a můžeš přetypovávat proměnné. V dynamickém jazyku je to paradigma ale z podstaty jiné, datový typ není vlastností proměnné, ale samotných dat. Jinak samozřejmě statické jazyky se snaží a snaží se napodobovat dynamické jazyky a co nejvíc se jim přiblížit, byť to není dokonalé. Ale to jen potvrzuje sílu dynamických jazyků a toho, jakým způsobem mění pohled na programování. Dynamické jazyky jako Javascript a Python velmi rychle rostou, statickým nezbývá, než se přizpůsobit, pokud se nechtějí stát okrajovým jevem.

Co to, clovece, - s prominutim - meles? Ukazatel v C je diametralne jina zalezitost. V tom mem prikladu je videt, ze "promenna" ve statickych a dynamickych jazycich neni nutne zase tak odlisny koncept. V tech statickych kompilator samozrejme potrebuje vedet typ dat (ne "promenne") v dobe prekladu, aby mohl zkontrolovat, ze program je validni a hlavne mohl optimalne zpracovat alokaci pameti a dalsi operace. Dynamicke jazyky na to kaslou, plytvaji prostredky v dobe behu a ano, clovek v nich muze vice "prasit" a spousta veci tak nejak funguje, kdyz neprasis moc. To je casto pohodlne a umoznuje to veci resit "intuitivne", ale u vetsich projektu to je dost kontraproduktivni a neni nahodou, ze vznikl prave TypeScript nebo ze Python ma volitelne anotace typu.

Není, ukazatel v C je pojmenovaný ukazatel do paměti, který se nijak nestará o datový typ objektu, na který ukazuje. V principu je to stejné, jen je to více low level, programátor si to musí přetypovat explicitně a musí si sám pohlídat paměť. Dynamické jazyky na to nekašlou, dynamické jazyky mají jiný koncept. A ano, jsou díky tomu více flexibilní a jsou proto pohodlnější na používání, proto také čím dál tím více oblíbené s tím, jak roste výkon počítačů a to jejich plýtvání zdroji je čím dál tím více marginální. Ostatně, garbage kolektor je zrovna tak plýtvání zdroji za cenu pohodlí programátora, virtuální stroje také, ale to ti asi nevadí, že? Lidské zdroje jsou cennější než hardware, produktivita programátora je ve většině případů důležitější než efektivita programu.

218
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:23:36 »
Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.
Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá. 
Ukaž příklad, jinak se o tom nemá smysl bavit.

Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

Výborně. Konečně jsem dostal z dynamicky uvažujícího programátora konkrétní materiál.

Pokud to chápu dobře, tak tebe zásadně omezuje skutečnost, že za účelem čitelnosti kódu (tak chápu tu motivaci) potřebuješ možnost měnit typ té proměnné row. Správně? Je tam ještě něco, nebo to je všechno?

Jak zásadně omezující, nebo naopak tvé řešení výhodnější je toto:
Kód: [Vybrat]
row = '1, 2, 3, 4, 5'
   .split(',')
   .map(\i, x -> i * int(x))
print(sum(row))

Nechápeš to dobře. Já typ proměnné neměním, to je tvůj způsob statického uvažování. Další chyba je, že to nechápeš jako demonstrativní ukázku, která ukazuje princip, nikoliv konkrétní úkol. Zkus si to představit  jako program, který má 10 000 řádků, větvení a vícenásobné použití dat. Pořád to budeš chtít napsat jako jeden oneliner? Jestli jo, myslíš, že to bude přehlednější? A jak to budeš třeba logovat nebo krokovat a debugovat? V reálném programu také nebudeš mít data staticky deklarovaná ve zdrojovém kódu, ale obdržíš ho z nějakého vstupu, to je u mě ten první řádek, u tebe tento krok chybí, a kdybys ho aplikoval, už tam nepřiřadíš zpracovaná data. No ale nejhůř si vysvětluješ tu motivaci. Motivací je vyšší abstrakce, tedy způsob myšlení bližší normálnímu lidskému uvažování. Řádek je prostě řádek, je jedno jaký má datový formát a je lidsky naprosto nesmyslné pro to mít tři různé proměnné. Je zbytečné se o to starat, stejně jako se uživatelé vyšších programovacích jazyků už dávno nestarají o instrukční sady procesorů.
Nic z toho není problém v některém z mejch oblíbenejch staticky typovanech jazyků.

Přestaň se vztekat, a máš-li na to ponožky, tak uveď jinej, lepší příklad.


Můžu ti tisíckrát říct, že jde o způsob myšlení, stejně to nepochopíš.

Ano. Tím, že budeš tisíckrát psát, že ty to umíš, ale mě to prostě neřekneš, tak tímto způsobem to skutečně nemám šanci pochopit.

Já ti neříkám, že to umím, to je zcela podružné. Já ti říkám, jak to je, dynamické jazyky jsou o jiném způsobu myšlení. Jestli to pochopíš nebo ne je už na tobě. Stejně tak ti mohu říct, že rychlost světla je konstantní kdežto čas relativní, byť tvé smysly a tvůj selský rozum ti tvrdí opak. Jestli se dokážeš vymanit z omezení selského rozumu a dokážeš pochopit  prostoročas nebo dynamické jazyky je už na tobě. Obojí od tebe bude vyžadovat projít procesem změny myšlení. To je tvá zodpovědnost, nikoliv moje.

Co se týče mého příkladu, není potřeba sem dávat jiný. Pro toho kdo chce, je dostatečný, aby pochopil paradigma a smysl dynamických jazyků. Těm, kdo to nechtějí pochopit a chtějí sami sebe přesvědčit, že dynamické jazyky jsou na nic, nepomůže ani tisíc příkladů.

219
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 29. 03. 2020, 00:05:15 »
Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

No a ted si predstav, ze ve staticky typovanem Rustu muzes psat neco jako:

Kód: [Vybrat]
fn main() {
    let v = "Ahoj Douglasi";
    println!("{:?}", v);
    let v = 42;
    println!("{:?}", v);
}

A vis, proc tomu tak je? Protoze "v" je jenom jmeno, ktere odkazuje na konkretni hodnotu. A kompilator rozumi kontextu - tedy tomu, ze kdyz dam kdykoli v prubehu dalsi "let v", ze jsem se rozhodl, ze uz to puvodni "v" pouzivat nebudu a tak ho "zastinim" uplne jinym "v". To neni nic "dynamickeho", jde o to, ze inteligentni kompilator tuhle situaci umi resit a netrva na tom, ze "v" je jednou provzdy &str.

To není žádná novinka, už v C máš ukazatele a můžeš přetypovávat proměnné. V dynamickém jazyku je to paradigma ale z podstaty jiné, datový typ není vlastností proměnné, ale samotných dat. Jinak samozřejmě statické jazyky se snaží a snaží se napodobovat dynamické jazyky a co nejvíc se jim přiblížit, byť to není dokonalé. Ale to jen potvrzuje sílu dynamických jazyků a toho, jakým způsobem mění pohled na programování. Dynamické jazyky jako Javascript a Python velmi rychle rostou, statickým nezbývá, než se přizpůsobit, pokud se nechtějí stát okrajovým jevem.

220
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 23:51:37 »
Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.
Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá. 
Ukaž příklad, jinak se o tom nemá smysl bavit.

Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

Výborně. Konečně jsem dostal z dynamicky uvažujícího programátora konkrétní materiál.

Pokud to chápu dobře, tak tebe zásadně omezuje skutečnost, že za účelem čitelnosti kódu (tak chápu tu motivaci) potřebuješ možnost měnit typ té proměnné row. Správně? Je tam ještě něco, nebo to je všechno?

Jak zásadně omezující, nebo naopak tvé řešení výhodnější je toto:
Kód: [Vybrat]
row = '1, 2, 3, 4, 5'
   .split(',')
   .map(\i, x -> i * int(x))
print(sum(row))

Nechápeš to dobře. Já typ proměnné neměním, to je tvůj způsob statického uvažování. Další chyba je, že to nechápeš jako demonstrativní ukázku, která ukazuje princip, nikoliv konkrétní úkol. Zkus si to představit  jako program, který má 10 000 řádků, větvení a vícenásobné použití dat. Pořád to budeš chtít napsat jako jeden oneliner? Jestli jo, myslíš, že to bude přehlednější? A jak to budeš třeba logovat nebo krokovat a debugovat? V reálném programu také nebudeš mít data staticky deklarovaná ve zdrojovém kódu, ale obdržíš ho z nějakého vstupu, to je u mě ten první řádek, u tebe tento krok chybí, a kdybys ho aplikoval, už tam nepřiřadíš zpracovaná data. No ale nejhůř si vysvětluješ tu motivaci. Motivací je vyšší abstrakce, tedy způsob myšlení bližší normálnímu lidskému uvažování. Výslovně jsem to uvedl jako základní princip, ale bohužel jsi to nepochopil. Tak znovu. Řádek je prostě řádek, je jedno jaký má datový formát a je lidsky naprosto nesmyslné pro to mít tři různé proměnné. Je zbytečný se o to starat, stejně jako se uživatelé vyšších programovacích jazyků už dávno běžně nestarají o instrukční sady procesorů. Můžu ti tisíckrát říct, že jde o způsob myšlení, stejně to nepochopíš.

221
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 23:38:58 »
Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.
Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá. 
Ukaž příklad, jinak se o tom nemá smysl bavit.

Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

Výborně. Konečně jsem dostal z dynamicky uvažujícího programátora konkrétní materiál.

Pokud to chápu dobře, tak tebe zásadně omezuje skutečnost, že za účelem čitelnosti kódu (tak chápu tu motivaci) potřebuješ možnost měnit typ té proměnné row. Správně? Je tam ještě něco, nebo to je všechno?

Jak zásadně omezující, nebo naopak tvé řešení výhodnější je toto:
Kód: [Vybrat]
row = '1, 2, 3, 4, 5'
   .split(',')
   .map(\i, x -> i * int(x))
print(sum(row))

Nechápeš to dobře. Já typ proměnné neměním, to je tvůj způsob statického uvažování. Další chyba je, že to nechápeš jako demonstrativní ukázku, která ukazuje princip, nikoliv konkrétní úkol. Zkus si to představit  jako program, který má 10 000 řádků, větvení a vícenásobné použití dat. Pořád to budeš chtít napsat jako jeden oneliner? Jestli jo, myslíš, že to bude přehlednější? A jak to budeš třeba logovat nebo krokovat a debugovat? V reálném programu také nebudeš mít data staticky deklarovaná ve zdrojovém kódu, ale obdržíš ho z nějakého vstupu, to je u mě ten první řádek, u tebe tento krok chybí, a kdybys ho aplikoval, už tam nepřiřadíš zpracovaná data. No ale nejhůř si vysvětluješ tu motivaci. Motivací je vyšší abstrakce, tedy způsob myšlení bližší normálnímu lidskému uvažování. Řádek je prostě řádek, je jedno jaký má datový formát a je lidsky naprosto nesmyslné pro to mít tři různé proměnné. Je zbytečné se o to starat, stejně jako se uživatelé vyšších programovacích jazyků už dávno nestarají o instrukční sady procesorů. Můžu ti tisíckrát říct, že jde o způsob myšlení, stejně to nepochopíš.

222
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 23:12:42 »
Jo, to je ta samá esoterika, jako když někdo neumí myslet ve scheme/haskellu, prologu nebo smalltalku, abychom vytáhli nějaké ikonické jazyky, zastupující různá paradigmata, tedy způsoby myšlení.
Ezoterika to není proto, že tak člověk musí umět myslet. Ezoterikou to nazývám proto, protože to neumíš vysvětlit.

Já to vysvětlit umím, je to záležitost způsobu myšlení. To je vysvětlení. Problém je, že to nedovedeš pochopit, protože je ti je buď cizí myšlenka, že jsou různé způsoby myšlení nebo ti nedochází důsledky. A je to platné obecně. Obecně platí, že způsob myšlení, na který jsi zvyklý a který je pro tebe proto komfortní determinuje tvé možnosti, omezuje tě.

Jak říkám, ezoterika. Úplně klasická. Nic o co by se dalo opřít. Jen spousta třpytek a nabubřelých frází.

Jsi jak malé děcko, když něco nechápeš, vyleješ si to na tom, koho nechápeš. Nepřekvapuje mě, že člověk neschopný myslet v dynamický jazycích, je omezený i v jiných směrech. Máš se o co opřít, jen to nevidíš. Zkus tohle https://wikisofia.cz/wiki/Pojet%C3%AD_my%C5%A1len%C3%AD_v_psychologii._Teorie_my%C5%A1len%C3%AD. Ale nedávám ti příliš velkou šanci. Dovolím si ocitovat jednu podstatnou informaci "Vyšší úrovně myšlení jsou úzce spjaty s jazykem." Zkus přemýšlet o důsledcích pro jazyky programovací.

223
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 22:52:22 »
Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40
“Hezkej” hovnokód  ::)

Zkus to tvrzení obhájit.

224
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 22:49:32 »
Jo, to je ta samá esoterika, jako když někdo neumí myslet ve scheme/haskellu, prologu nebo smalltalku, abychom vytáhli nějaké ikonické jazyky, zastupující různá paradigmata, tedy způsoby myšlení.

Ezoterika to není proto, že tak člověk musí umět myslet. Ezoterikou to nazývám proto, protože to neumíš vysvětlit.

Já to vysvětlit umím, je to záležitost způsobu myšlení. To je vysvětlení. Problém je, že to nedovedeš pochopit, protože je ti je buď cizí myšlenka, že jsou různé způsoby myšlení nebo ti nedochází důsledky. A je to platné obecně. Obecně platí, že způsob myšlení, na který jsi zvyklý a který je pro tebe proto komfortní determinuje tvé možnosti, omezuje tě.

225
Vývoj / Re:Zkušenosti s TypeScriptem
« kdy: 28. 03. 2020, 22:43:53 »
Nestalo se mi, že by mě obtěžovalo napsání Typové signatury. Zato se mi bolestně běžně stává, že mi absence typů schází. Čímž se kruhem dostáváme k tomu, že někdy to fakt záleží na preferencích. Pro někoho napsání těch několika málo typů může být stopka.
Nechápeš to. Nejde jen o to, že musíš napsat anotaci, ale že tě statické typy hrubě omezují v návrhu programu. Je to neflexibilní, a jakákoliv snaha dostat do návrhu flexibilitu je těžkopádná  a zkostnatělá. 
Ukaž příklad, jinak se o tom nemá smysl bavit.

Základní princip je, že s proměnnými pracuji abstraktně. V následujícím příkladu pracuji se třemi prvky, řádkem, elementem řádku a indexem. Proto používám tři tomu odpovídající proměnné.

Kód: [Vybrat]
>>> row = '1, 2, 3, 4, 5'
>>> row = row.split(',')
>>> row = [int(elm) for elm in row]
>>> for idx, elm in enumerate(row):
...     row[idx] = idx * elm
...
>>> print(sum(row))
40

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