Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: oksoft 24. 03. 2020, 11:55:30

Název: Zkušenosti s TypeScriptem
Přispěvatel: oksoft 24. 03. 2020, 11:55:30
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: jehovista2 24. 03. 2020, 12:39:29
Dobrou. Cini to z JS pouzitelny jazyk.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Cikáda 24. 03. 2020, 13:11:50
On se JavaScript nedá používat?  :)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Elephantik 24. 03. 2020, 13:17:01
Dobrou. Cini to z JS pouzitelny jazyk.
Naprostý souhlas. Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace a také bych řekl, že to programátora nutí k lepšímu designu (na vkusu každého).

Zárověň se jedná o nadmnožinu JavaScriptu (podle nastavených parametrů kompilace), takže to "sežere" i libovolný kus JS, pokud je potřeba.

Podpora je rozšířena napříč všemožnými prostředími/frameworky/build chainy. A asi též není náhodou, že leccos z typescriptu se dostalo do nových verzi ECMA Scriptu (pardon za argumentační faul).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: SB 25. 03. 2020, 11:55:56
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?

...také bych řekl, že to programátora nutí k lepšímu designu (na vkusu každého).

Nebo horšímu, protože spoléhá na to, že mu v bordelu pomůže hledat typová analýza?

Nechci se o tom hádat, já jen, že 1. se to tu řešilo několikrát, 2. je to částečně subjektivní záležitost.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Google CTCCTCGGCGGGCACGTAG 25. 03. 2020, 12:30:17
Pouzivam kvuli nekterym knihovnam, hlavne typeORM, ale nerad. Koncept postaveny na transpilaci je podle me spatne. Typove anotace lze psat do komentaru a nepotrebujete zadny specialni tooling mimo linteru.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 25. 03. 2020, 17:09:26
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?


...také bych řekl, že to programátora nutí k lepšímu designu (na vkusu každého).

Nebo horšímu, protože spoléhá na to, že mu v bordelu pomůže hledat typová analýza?

Nechci se o tom hádat, já jen, že 1. se to tu řešilo několikrát, 2. je to částečně subjektivní záležitost.
Osobně mám zkušenost, že Typy nutí uvažovat konkrétním způsobem - což by nemuselo být subjektivní. A ten konkrétní způsob je celkem ku prospěchu - to už bude subjektivní.


protože spoléhá na to, že mu v bordelu pomůže hledat typová analýza?

Není mi úplně jasné, co si mám pod tímto představit.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 25. 03. 2020, 18:55:49
Osobně mám zkušenost, že Typy nutí uvažovat konkrétním způsobem
To mě zaujalo. Jakým? Případně jaké typy, primitivní, generické, závislostní...? Že odchytnou většinu chyb je jasné, ale to specifické uvažování mě zajímá.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: hurvajs spejbl 25. 03. 2020, 19:05:33
za mě TS moc nemusím a to z několika důvodů:
1) založen na transpilaci kódu a to je z mého pohledu zhovadilost,
2) zavádí do JS OOP patten, což je taky kr*vina (ikdyž nový TS už umí FC),
3) pochází od M$

Neříkám, že je TS špatný, typovost je vždy dobrá (alespoň z mého pohledu), ale to co dělá TS umí třeba i Flow, což je jen  type checker a je pekelně rychlý. případné chyby nebrání vlastní kompilaci ES6.

Nehledě na to, že mám s TS špatné zkušenosti - většinou jsem viděl zneužívání typu
Kód: [Vybrat]
any a k tomu nepotřebuji mít TS. A když člověk zakáže použítí any, tak natypovat některé věci správně, je někdy krapet oříšek.

Osobně mi přijde, že TS je "moderní" záležitost. Přednosti, které jsou vychvalovány, stejně tak dobře pokreju Flow a Eslintem, že nevidím důvod používat TS. Nehledě na to, že TS ošetří jen vstupní data a property. Data která lezou např. ze služeb třetích stran nikdy neošetříte.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: listoper 25. 03. 2020, 19:25:43
Jaky je problem s tou transpilaci?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 25. 03. 2020, 19:36:35
Osobně mám zkušenost, že Typy nutí uvažovat konkrétním způsobem
To mě zaujalo. Jakým? Případně jaké typy, primitivní, generické, závislostní...? Že odchytnou většinu chyb je jasné, ale to specifické uvažování mě zajímá.

To sem si zase naběh'.

Nemám to tak promyšlené, takže prosím o shovívavost.

Když nemám typy, tak pracuju s chlívečkama. Sem dej tohle číslo, pak hoď sem, tam se s ním bude počítat. Vzniká kód ve stylu:
Kód: [Vybrat]
foo.title = "Mr"
if foo.sex:
  foo.title = "Ms"
foo.title += ": "
foo.title += name
foo.title += " "
foo.title += surname

Když mám typy, alespoň takové ty hodně blbé aka Java, C#, tak bude tendence to někam uklízet. Ale moc to nefunguje.

Když se přitlačí s imutabilitou, tak začne víc dekompozice na stromeček:
Kód: [Vybrat]
Foo(buildName(src1, src2), buildSurname(src1, src4))

když nemohu přetěžovat funkce/metody, tak píšu hodně switch:
Kód: [Vybrat]
function renderAny(x):
  switch (type(x)):
     case "Application":
       return renderApplication(x)
     case "Window"
       return renderWindow(x)
     default:
        error()

Pokud mám k dispozici imutabilitu, statické typování tak mám tendenci to stavět jako kompozici funkcí. (Pokud ne, tak taky, ale protože jsem už ovlivněnej.) Opírám se o to, že mi sem přijde typ Person. Zatímco když nemám typy, tak počítám s tím, že mi sem přijde struktura obsahující name, surname. S typem Person nemohu to co se strukturou.

Když mi přijde třída Renderable tak jí renderuju. Protože tak nějak uvažuju, že ty záruky se vztahují jen na Renderování. Zatímco když mám funkci render přijímající sturkturu, tak renderuju tu strukturu. A přirozeně i něco vypočítám navíc, něco si odložím, něco vytáhnu pokoutně...

Asi to nebude všechno, jen prvotní co mě napadlo.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 25. 03. 2020, 22:13:46
Osobně mám zkušenost, že Typy nutí uvažovat konkrétním způsobem
To mě zaujalo. Jakým? Případně jaké typy, primitivní, generické, závislostní...? Že odchytnou většinu chyb je jasné, ale to specifické uvažování mě zajímá.

To sem si zase naběh'.

Nemám to tak promyšlené, takže prosím o shovívavost.

Když nemám typy, tak pracuju s chlívečkama. Sem dej tohle číslo, pak hoď sem, tam se s ním bude počítat. Vzniká kód ve stylu:
Kód: [Vybrat]
foo.title = "Mr"
if foo.sex:
  foo.title = "Ms"
foo.title += ": "
foo.title += name
foo.title += " "
foo.title += surname

Když mám typy, alespoň takové ty hodně blbé aka Java, C#, tak bude tendence to někam uklízet. Ale moc to nefunguje.

Když se přitlačí s imutabilitou, tak začne víc dekompozice na stromeček:
Kód: [Vybrat]
Foo(buildName(src1, src2), buildSurname(src1, src4))

když nemohu přetěžovat funkce/metody, tak píšu hodně switch:
Kód: [Vybrat]
function renderAny(x):
  switch (type(x)):
     case "Application":
       return renderApplication(x)
     case "Window"
       return renderWindow(x)
     default:
        error()

Pokud mám k dispozici imutabilitu, statické typování tak mám tendenci to stavět jako kompozici funkcí. (Pokud ne, tak taky, ale protože jsem už ovlivněnej.) Opírám se o to, že mi sem přijde typ Person. Zatímco když nemám typy, tak počítám s tím, že mi sem přijde struktura obsahující name, surname. S typem Person nemohu to co se strukturou.

Když mi přijde třída Renderable tak jí renderuju. Protože tak nějak uvažuju, že ty záruky se vztahují jen na Renderování. Zatímco když mám funkci render přijímající sturkturu, tak renderuju tu strukturu. A přirozeně i něco vypočítám navíc, něco si odložím, něco vytáhnu pokoutně...

Asi to nebude všechno, jen prvotní co mě napadlo.
Mně vždy přišlo, že pokud se použije typová inference, tak se zdrojový kód staticky typovaný neliší od dynamicky typovaného. Některé jazyky to neumožňují u všech deklarací, ale teoreticky to jde a třeba v C++ už jde psát bez explicitních typů (s plnou kontrolou při překladu).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 26. 03. 2020, 00:05:12
Dobrou. Cini to z JS pouzitelny jazyk.
Naprostý souhlas. Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace a také bych řekl, že to programátora nutí k lepšímu designu (na vkusu každého).

Silné typy nevadí, ty má i Python, ale statické typy jsou svěrací kazajka.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 26. 03. 2020, 01:34:23
Mně vždy přišlo, že pokud se použije typová inference, tak se zdrojový kód staticky typovaný neliší od dynamicky typovaného. Některé jazyky to neumožňují u všech deklarací, ale teoreticky to jde a třeba v C++ už jde psát bez explicitních typů (s plnou kontrolou při překladu).

Může být.

Když si vybavím kód v Javascriptu, Pythonu - tak vidím jiný druh práce s kódem, než třeba v Haskellu. Haskell sice má typovou inferenci, takže je ukecanej stejně málo jako Python, ale ty typy tam cítíš. Opíráš se o ně. Stavíš na nich. To mi v Pythonu nebo Javascriptu nepřijde. Tam typy, respektive třídy používáš jako konstrukční nástroje, kdy dědíš (a mixuješ) do bezvědomí.

Další věc je, ale to už je dost specialita statického typování - tak u Haskellu máš "buď a nebo". Ten kód je takovej jakože ultimátní. Když do toho pustíš data, tak ti to buď správně sežere, nebo ti to vyhodí chybu. U Pythonu je to větší sázka do loterie.  Ale to je asi známá věc.

PS:
Mluvím o kódu, se kterým přicházím do styku. Samozřejmě pak ještě záleží na rukou.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 26. 03. 2020, 01:50:04
Mně vždy přišlo, že pokud se použije typová inference, tak se zdrojový kód staticky typovaný neliší od dynamicky typovaného. Některé jazyky to neumožňují u všech deklarací, ale teoreticky to jde a třeba v C++ už jde psát bez explicitních typů (s plnou kontrolou při překladu).

Může být.

Když si vybavím kód v Javascriptu, Pythonu - tak vidím jiný druh práce s kódem, než třeba v Haskellu. Haskell sice má typovou inferenci, takže je ukecanej stejně málo jako Python, ale ty typy tam cítíš. Opíráš se o ně. Stavíš na nich. To mi v Pythonu nebo Javascriptu nepřijde. Tam typy, respektive třídy používáš jako konstrukční nástroje, kdy dědíš (a mixuješ) do bezvědomí.

Další věc je, ale to už je dost specialita statického typování - tak u Haskellu máš "buď a nebo". Ten kód je takovej jakože ultimátní. Když do toho pustíš data, tak ti to buď správně sežere, nebo ti to vyhodí chybu. U Pythonu je to větší sázka do loterie.  Ale to je asi známá věc.

PS:
Mluvím o kódu, se kterým přicházím do styku. Samozřejmě pak ještě záleží na rukou.
To je spíše tím, kdo ten kód píše. Akademik válící Haskell levou zadní píše i v Pythonu jinak, jako když ránu zašívá chirurg vs holič. Většinou to je fuk, ale rozdíl to je, no.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: L.. 26. 03. 2020, 10:11:43
za mě TS moc nemusím a to z několika důvodů:
1) založen na transpilaci kódu a to je z mého pohledu zhovadilost,

No a třeba Céčko je založené na transpilaci kódu do strojáku. Je to taky zhovadilost?

2) zavádí do JS OOP patten, což je taky kr*vina (ikdyž nový TS už umí FC),

Kr*vina je hlavně tenhle bod. OOP v JS byl už dávno přes Typescriptem. Funkcionální programování totéž.

3) pochází od M$

To je asi nejrelevantnější bod z těch tří. Já to vidím tak:

Citace
Většina produkce Microsoftu je sh*t, ale vyprodukoval i dvě dobré věci: Age of Empires a Typescript ;D


Typescript za mě super:

- Umožňuje odchytat spoustu věcí už při psaní
- Typy slouží jako základní dokumentace
- Na jeho základě může IDE hezky napovídat (s čistým JS je to peklo)

Předtím jsem dělal v Javě. Její typový systém se mi líbil, ale duck typing TS jde ještě dál, umožňuje elegantně(ji) řešit situace, kde typový systém člověka zbytečně omezoval. Další věc, co byla v Javě problém byla implicitní nulovatelnost všech objektů (místo objektu mohl přijít NULL a z hlediska typového systému to bylo OK). To Typescript také umí jednoduše řešit plus přidává optional chaining, který umožňuje prázdné hodnoty (když mohou přijít) jednoduše ošetřit.

Jediná nevýhoda je, že díky možnosti operaci nad typy mohou být v TS občas hlášení o neshodě typů dost kryptická - člověk se musí krotit a nedělat věci moc složité :-)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: SB 26. 03. 2020, 16:52:26
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?

Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: hurvajs spejbl 26. 03. 2020, 19:05:20
No a třeba Céčko je založené na transpilaci kódu do strojáku. Je to taky zhovadilost?
psal jsem o JS, ne o céčku ;-)

Kr*vina je hlavně tenhle bod. OOP v JS byl už dávno přes Typescriptem. Funkcionální programování totéž.
opět jsem nikde nepsal, že OOP neexistoval. Psal jsem jen to, že OOP do světa JS dle mého pohledu nepatří. Obecně OOP považuji za antipattern.

- Umožňuje odchytat spoustu věcí už při psaní
- Typy slouží jako základní dokumentace
- Na jeho základě může IDE hezky napovídat (s čistým JS je to peklo)
Stejně jako Flow od Facebooku. Jen s tím rozdílem, že Flow je jen checker a nepotřebuji pro spuštění udělat transpile.

Jediná nevýhoda je, že díky možnosti operaci nad typy mohou být v TS občas hlášení o neshodě typů dost kryptická - člověk se musí krotit a nedělat věci moc složité :-)
To dělá i Flow, i .NET. Každý programovací jazyk má své klady i zápory.

Poslední dobou mi přijde, že na českých fórech nemůže člověk napsat svůj názor. Jakmile nejde s davem, je to špatně :-)

Osobně mám moc rád striktní typování, píšu jak JS, tak .NET, Pythonu, Javě, PHP. U JS se spokojím jen s checkerem. Tím ale nezatracuji TS, jak jsem psal dříve.

Hodně lidí prosazuje TS hlavně kvůli typovosti a kvůli "lepší" udržitelnosti kódu. Obojí je za mě, opakuji z mého pohledu totální blbost. Psal jsem i podílel jsem se na hodně velkých projektetech, které neměli typování (byl to čistý JS), nebo měli Flow a nikde nebyl problém s reuse komponent, projekt byl přehledný. Naopak jsem měl možnost pracovat na dvou projektech v TS, které psali rusáci a indové. Větší hnusy jsem snad neviděl. Z 95% všude bylo any nebo tsignore.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 26. 03. 2020, 20:06:19
Mně vždy přišlo, že pokud se použije typová inference, tak se zdrojový kód staticky typovaný neliší od dynamicky typovaného. Některé jazyky to neumožňují u všech deklarací, ale teoreticky to jde a třeba v C++ už jde psát bez explicitních typů (s plnou kontrolou při překladu).

U některých jazyků explicitní typy nejsou jen anotace pro kontrolu korektnosti kódu, ale ovlivňují sémantiku výsledného kódu.

Příklad: https://blog.jcoglan.com/2019/04/22/generic-returns-in-rust/

Popř. implicitní argumenty ve Scale také ovlivňují, co bude kód dělat.

Takové jazyky se principiálně nemohou obejít čistě s typovou inferencí, resp. už by to byl jiný programovací jazyk
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 26. 03. 2020, 21:38:08
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?

Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 27. 03. 2020, 00:06:23
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?

Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.
50% je paráda, ovšem tedy za předpokladu nekryptických chybových hlášek. Ale už i překladače C++ se polepšily.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: SB 27. 03. 2020, 11:48:18
Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.

Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 27. 03. 2020, 19:05:30
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?

Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.
50% je paráda, ovšem tedy za předpokladu nekryptických chybových hlášek. Ale už i překladače C++ se polepšily.

Rust má chybovky příkladný, řekl bych. Z čehož vyvozuji, že to jde :-)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 27. 03. 2020, 20:05:17
Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.

Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).

Jak říkáš, některé věci jsou otázkou každého soudruha.

Nutno ale podotknout, že v dnešní době chytrých jazyků s typovou inferencí už typová kontrola přináší jen benefity (žádné zvyšování složitosti kódu ani snižování dynamičnosti či obecnosti se již nekoná).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 27. 03. 2020, 20:38:59
Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.

Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).

Ještě je nutno zmínit, že omezující typový systém je sám o sobě zdrojem zbytečných chyb.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 27. 03. 2020, 20:51:30
Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).

Ještě je nutno zmínit, že omezující typový systém je sám o sobě zdrojem zbytečných chyb.

Ano, omezeny typovy system zpusobuje zbytecne chyby. Kvalitni typovy system pomaha chybam predchazet.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 27. 03. 2020, 21:07:33
...Ja preferuji silněji typovaná prostředí - chyby jsou nalezeny již v době kompilace...

Nechtěl jste napsat „některé chyby“?
A kdyby to bylo 50% všech chyb? Měnilo by to význam?

Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.
50% je paráda, ovšem tedy za předpokladu nekryptických chybových hlášek. Ale už i překladače C++ se polepšily.

Rust má chybovky příkladný, řekl bych. Z čehož vyvozuji, že to jde :-)
Jasně, že to jde, už i GCC to umí (pod tlakem clangu)  :)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 27. 03. 2020, 21:21:39
Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.

Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).
Nutno ale podotknout, že v dnešní době chytrých jazyků s typovou inferencí už typová kontrola přináší jen benefity (žádné zvyšování složitosti kódu ani snižování dynamičnosti či obecnosti se již nekoná).
To je pravda, ale s tou výhradou, že plně automatickou inferenci udělat nelze.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: L.. 28. 03. 2020, 08:27:59
No a třeba Céčko je založené na transpilaci kódu do strojáku. Je to taky zhovadilost?
psal jsem o JS, ne o céčku ;-)

No právě. Kompilace se používá naprosto běžně, tak jsem chtěl vysvětlení, proč je v tomto jednom případě fuj a v jiných OK.

Kr*vina je hlavně tenhle bod. OOP v JS byl už dávno přes Typescriptem.
opět jsem nikde nepsal, že OOP neexistoval. Psal jsem jen to, že OOP do světa JS dle mého pohledu nepatří.

Psal jste, že TS "zavádí do JS OOP patten". Což je prostě kravina bez ohledu na to, co si o OOP myslíme.

Stejně jako Flow od Facebooku. Jen s tím rozdílem, že Flow je jen checker a nepotřebuji pro spuštění udělat transpile.

No a umí Flow třeba optional chaining nebo nullish coalescing? Reálně je Flow hodně podobné Typescriptu, jen (pravděpodobně) o něco méně mocné. I Typescript umí udělat jen typovou kontrolu (noEmit). A naopak zdroják ve Flow se musí zkompilovat (transpilovat) do Javascriptu, protože samozřejmě jeho syntaxi standardní JS engine neschroupne.

Poslední dobou mi přijde, že na českých fórech nemůže člověk napsat svůj názor. Jakmile nejde s davem, je to špatně :-)

Jojo, jak s někomu poukážu na faktické chyby a logické nesmysly v jeho příspěvku, hned se rozčiluje, že mu upírám jeho názor :D

Naopak jsem měl možnost pracovat na dvou projektech v TS, které psali rusáci a indové. Větší hnusy jsem snad neviděl. Z 95% všude bylo any nebo tsignore.

Pak ty projekty nebyly z 95% v TS, ale v čistém JS, který tak velebíte ;D

K tomu mě napadá opět jeden klasický citát, kterým se s vámi rozloučim:

Citace
Neexistuje programovací jazyk, ve kterém by se nedal napsat špatný program.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Zabanovaný Anonymní Troll 28. 03. 2020, 08:44:17
S tou transpilaci kodu v javascriptu, tak to mi vysvetlete. Dyt Javascript je snad v soucasnosti ten nejopatchovanejsi jazyk na svete, kdyz v tom dneska chcete delat, tak potrebujete prinejmensim babel, a to nemluvim o ruznych drobnych jazykovych rozsirenich ecmascriptu, ktere si case to case muzete dodat. A potom to jeste protahnete kolikrat pres webpack. Tak co komu prijde divneho na tom, ze to transpiluje z Typescriptu,  ne z toho babelu?  :D :D :D

A v linteru mivaji nekteri zapnute abecedni setrizovani atributu a funkci ve tride. A pak je tam jeste dalsi featura, nodemon. A ustavicne se neco meni. A pak nam Javistum neco rikaji, ze programujeme moc slozite  :D
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Cikáda 28. 03. 2020, 09:50:10
No a třeba Céčko je založené na transpilaci kódu do strojáku. Je to taky zhovadilost?
psal jsem o JS, ne o céčku ;-)

No právě. Kompilace se používá naprosto běžně, tak jsem chtěl vysvětlení, proč je v tomto jednom případě fuj a v jiných OK.

Asi kvůli výstupu.

Naopak jsem měl možnost pracovat na dvou projektech v TS, které psali rusáci a indové. Větší hnusy jsem snad neviděl. Z 95% všude bylo any nebo tsignore.

Pak ty projekty nebyly z 95% v TS, ale v čistém JS, který tak velebíte ;D

To by asi spadlo na SyntaxError.  ;)

K tomu mě napadá opět jeden klasický citát, kterým se s vámi rozloučim:

Citace
Neexistuje programovací jazyk, ve kterém by se nedal napsat špatný program.

Tak to je vskutku objev.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: kotelgg 28. 03. 2020, 12:13:28
Zajímalo by mě, kde se reálně využije dynamičnost kódu? Z integer je kdesi v kódu najednou string a na základě toho se program větví jinak nebo co? Mě neskutečně irituje, že jsem některé projekty v php nepředělal na striktní typy, protože se pak všude musí dělat harakiry, aby se mi int porovnával opravdu jako int. Na chybu se pak přijde třeba za rok nebo vůbec.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Zabanovaný Anonymní Troll 28. 03. 2020, 12:55:50
Zajímalo by mě, kde se reálně využije dynamičnost kódu? Z integer je kdesi v kódu najednou string a na základě toho se program větví jinak nebo co? Mě neskutečně irituje, že jsem některé projekty v php nepředělal na striktní typy, protože se pak všude musí dělat harakiry, aby se mi int porovnával opravdu jako int. Na chybu se pak přijde třeba za rok nebo vůbec.

U malych projektu typy nepotrebujes. U vetsich projektu tez ne:

Step 1. To rychle nadevelopis
Step 2. Pak das rychle vypoved, jako vymluvu uvedes ze jsou moc pozadu technologicky
Step 3. A v nove praci si das bacha abys taky jen developil.
Step 4. Na Root.cz nasledne prohlasujes ze skriptovaci jazyky jsou the best.
Step 4. Repeat.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 28. 03. 2020, 13:52:53
Zajímalo by mě, kde se reálně využije dynamičnost kódu? Z integer je kdesi v kódu najednou string a na základě toho se program větví jinak nebo co? Mě neskutečně irituje, že jsem některé projekty v php nepředělal na striktní typy, protože se pak všude musí dělat harakiry, aby se mi int porovnával opravdu jako int. Na chybu se pak přijde třeba za rok nebo vůbec.

Je to vývoj. V době, kdy psát typy byl neskutečný opruz, byly jazyky jako Python živá voda. Pak se v mainstreamu objevila typová inference a dobré vlastnosti z Pythonu a dalších jazyků a naopak Python umožňuje typy psát a kontrolovat pomocí statické analýzy. Na druhou stranu si nedělejme iluze, že kontrola v době kompilace nebo nějaký linter objeví všechny chyby a některé nebudou na vhodnou chvíli čekat i ten rok.

V dynamických jazycích lze psát poměrně robustní kód i bez typových anotací, ale je to náročnější na code review a chce to cvik. Ty anotace se budou určitě ve větších projektech používat víc a víc.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 14:21:09
Samozřejmě. Znamenalo by to, že si pouze myslíte, že jste odstranil 100 % (všimněte si mezery za číslem) chyb, ale ve skutečnosti vám jich tam ještě 50 % (opět si všimněte mezery za číslem) zůstalo.
V tom případě 50% nalezených chyb v době kompilace je super, a beru to.

Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).
Nutno ale podotknout, že v dnešní době chytrých jazyků s typovou inferencí už typová kontrola přináší jen benefity (žádné zvyšování složitosti kódu ani snižování dynamičnosti či obecnosti se již nekoná).
To je pravda, ale s tou výhradou, že plně automatickou inferenci udělat nelze.

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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 14:28:57
To je pravda, ale s tou výhradou, že plně automatickou inferenci udělat nelze.
Ještě takové drobné pošťouchnutí. Pokud bychom to vzaly trochu obecněji, tak plně automatická inference existuje, a používá se například u Javascriptu (pravděpodobně nejen). Ten vezme ten kód, celej se přeloží do nějaké té interní reprezentace, všechny typy se zahodí (https://funkcionalne.k47.cz/2015/04/bez-typu-se-obejdeme-ale.html), a podle logiky toho kódu se vymyslí nové.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 14:35:39
Zajímalo by mě, kde se reálně využije dynamičnost kódu? Z integer je kdesi v kódu najednou string a na základě toho se program větví jinak nebo co? Mě neskutečně irituje, že jsem některé projekty v php nepředělal na striktní typy, protože se pak všude musí dělat harakiry, aby se mi int porovnával opravdu jako int. Na chybu se pak přijde třeba za rok nebo vůbec.

Je to vývoj. V době, kdy psát typy byl neskutečný opruz, byly jazyky jako Python živá voda. Pak se v mainstreamu objevila typová inference a dobré vlastnosti z Pythonu a dalších jazyků a naopak Python umožňuje typy psát a kontrolovat pomocí statické analýzy. Na druhou stranu si nedělejme iluze, že kontrola v době kompilace nebo nějaký linter objeví všechny chyby a některé nebudou na vhodnou chvíli čekat i ten rok.

V dynamických jazycích lze psát poměrně robustní kód i bez typových anotací, ale je to náročnější na code review a chce to cvik. Ty anotace se budou určitě ve větších projektech používat víc a víc.

Dále, napsat jazyk bez statických typů je mnohem jednodužší (krásný příklad budiž Lua, kde díky tomu, že typy hodili na bedra uživatelů, tak mohli zkrouhnout jazyk a engine do fantasticky malé libky). Kvalitní typy jsou další svět sám pro sebe, a aby to bylo užitečné,  tak tomu dotyční, kteří jazyk vymejšlejí musí rozumět. Což není samozřejmé, a navíc se to historicky taky vyvíjí.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 28. 03. 2020, 15:17:33
plně automatická inference existuje, a používá se například u Javascriptu (pravděpodobně nejen). Ten vezme ten kód, celej se přeloží do nějaké té interní reprezentace, všechny typy se zahodí, a podle logiky toho kódu se vymyslí nové.
V tom žádná inference není.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 28. 03. 2020, 15:39:15
To je pravda, ale s tou výhradou, že plně automatickou inferenci udělat nelze.
Ještě takové drobné pošťouchnutí. Pokud bychom to vzaly trochu obecněji, tak plně automatická inference existuje, a používá se například u Javascriptu (pravděpodobně nejen). Ten vezme ten kód, celej se přeloží do nějaké té interní reprezentace, všechny typy se zahodí (https://funkcionalne.k47.cz/2015/04/bez-typu-se-obejdeme-ale.html), a podle logiky toho kódu se vymyslí nové.
Jinak ten problém s kovariantním polem hezky ukazuje, kde se dynamický runtime hodí. Typová kontrola v tomto případě ověří přiřazení a za běhu program nepadne. Je to vykoupeno nevýhodami jinde, ale jako příklad hezké.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 17:43:03
plně automatická inference existuje, a používá se například u Javascriptu (pravděpodobně nejen). Ten vezme ten kód, celej se přeloží do nějaké té interní reprezentace, všechny typy se zahodí, a podle logiky toho kódu se vymyslí nové.
V tom žádná inference není.

Samozřejmě. Protože všechno je plně automatické :-)

Jinak ten problém s kovariantním polem hezky ukazuje, kde se dynamický runtime hodí. Typová kontrola v tomto případě ověří přiřazení a za běhu program nepadne. Je to vykoupeno nevýhodami jinde, ale jako příklad hezké.

V tomto se neshodnem. Respektive se mi zdá, že si každý pod pojmem dynamický/statický představujeme něco jiného.

Co jsou zač ty nevýhody?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 28. 03. 2020, 17:52:21
Co jsou zač ty nevýhody?
Dynamický dispatch je pomalejší.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 18:16:48
Co jsou zač ty nevýhody?
Dynamický dispatch je pomalejší.
Ech. Něco jiného než rychlost?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 28. 03. 2020, 18:51:12
Co jsou zač ty nevýhody?
Dynamický dispatch je pomalejší.
Ech. Něco jiného než rychlost?
Ne.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 28. 03. 2020, 21:33: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á.  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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 28. 03. 2020, 21:43:27
Výborně. Tak teď, když už víme, že nám typová kontrola (zdaleka) nepochytá všechny chyby, je na čase zvážit, zda se nám vyplatí ji na chytání chyb zavádět a zvyšovat tím složitost kódu a snižovat jeho dynamičnost a obecnost.
Neřešte to znovu, už se to tu řešilo, a zjistilo se, že každý soudruh to má jinak. Věnujte se místo toho raději pravopisu, ten by naopak měl mít každý soudruh stejný (= dle pravidel).
Ještě je nutno zmínit, že omezující typový systém je sám o sobě zdrojem zbytečných chyb.
Ano, omezeny typovy system zpusobuje zbytecne chyby. Kvalitni typovy system pomaha chybam predchazet.
Kazdy typovy system je omezeny, omezovat ma primo v popisu prace. Typovy system sam o sobe je zdrojem chyb. Predchazet chybam se da ruze, treba neprogramovanim. To ze neco predchazi chybam jeste nutne neznamena ze to je dobre a uzitecne.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 21:53:19
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.


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.

Ezoterika, jasný.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 28. 03. 2020, 22:17:18
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í.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 22:38:19
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.

Smalltalk je třeba typickej příklad jazyka, který jsem pochopil, ale který mi nesedl. Pas de problem.

Strkat Scheme do stejné kategorie jako Haskell, no...

Ani u jednoho ze zmíněných jazyků bych neměl nějaký kardinální problém vysvětlit, vo co de (netvrdím, že by mi to nějak zvlášť šlo, ale základní principy bych snad dal). Dokážeš to samé jako obhájce a evidentně zkušený a zapálený vývojář v dynamických jazycích? A budu tolerantní - pokud nebudeš šermovat vatou "to bys' nepochopil". (Ve skutečnosti by mě to opravdu zajímalo.)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 28. 03. 2020, 22:48:42
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
“Hezkej” hovnokód  ::)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ě.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 22:58:49
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í.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 23:10:45
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))
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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í.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 23:22:18
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í.

Beru na vědomí.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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íš.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 28. 03. 2020, 23:49:09
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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 28. 03. 2020, 23:50:21
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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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íš.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ů.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 29. 03. 2020, 00:33:34
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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 00:41:47
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í.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 00:55:11
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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ů :-).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ě.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 01:21:33
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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Mlocik97 29. 03. 2020, 01:31:44
Podľa mňa riešenie typov v jazykoch je nezmyselné. Vôbec nevidím dôvod aby typy boli viazané na premennú a nie dáta.

JavaScript má podľa mňa skoro najzmyselnejsie to riešené, s výnimkou obskurdnosti, teda ako su riešené určité situácie kedy robíme operaciu nad 2 rozličnými typmi.

Druhá vec je že stačí rozlišovať toľko typov, aby sme rozlisili pracu s nimi v programe. To znamená:
Čísla
Stringy
Booleany
Array
Object
Null

nič iné netreba. Nepochopím jazyky kde máte 8 rôznych typov na podpísanie premennej, uchovavajucej dáta s ktorými sa pracuje rovnakým spôsobom. Viď char vs string, neni char vlastne string dĺžky 1? Alebo Int vs Float, Není Int vlastne Float s 0 desatinnými miestami? Ak hovoríme že sa ukladajú trocha inak, tak o koľko? Šetríme tam bajty dát? Dnes PC fakt nie sú stroje kde by bajty urobili rozdiel, navyše keď dáta v premenných tvoria najmenšie množstvo dát uložených v operačnej pameti.

Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?

Keby v JS boli zakázané veci ako robenie operácie nad nekompatibilními typmi dát, tak by JS podľa mňa to mal najsamlepsie poriesene.
---
TS, hmm, jak ťa tlačí k OOP mi vadí, nehovorím že neni situácia kedy by sa nedalo využiť OOP, ale myslím že by programátor sa nemal prispôsobovať v tom aké paradigma musí zvoliť v ktorom jazyku.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 01:40:47
Podľa mňa riešenie typov v jazykoch je nezmyselné. Vôbec nevidím dôvod aby typy boli viazané na premennú a nie dáta.
Typy v statických jazycích nejsou vázané na proměnnou (bavíme se o moderních jazycích).


Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?
Nemusíš. Type inference.


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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 29. 03. 2020, 08:34:08
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á.


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.

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.

To jsi četl kde, že mi to "nevadí"? Plýtvání je vždycky plýtvání, vždycky to je škoda, ale někdy je odůvodnitelné - něco za něco. To, že je produktivita programátora ve všech částech vývojového cyklu v dynamických jazycích v součtu vyšší, je Tvoje víra. Jinak doporučuju následující čtení - převod velkého systému z Pythonu do Rustu v Dropboxu - proč to dělali a co tím získali (nápověda: nešlo jenom o problém pomalosti některých dílčích operací v runtime dynamického jazyka, ale zejména o jeho relativní neflexibilitu, tedy naprostý opak toho, co tu celou dobu tvrdíš):

https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 29. 03. 2020, 09:32:43
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ě.
tomu, co tu předvádíš, se říká svatá kráva.
Spíš demence.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 29. 03. 2020, 09:35:06
Podľa mňa riešenie typov v jazykoch je nezmyselné. Vôbec nevidím dôvod aby typy boli viazané na premennú a nie dáta.

JavaScript má podľa mňa skoro najzmyselnejsie to riešené, s výnimkou obskurdnosti, teda ako su riešené určité situácie kedy robíme operaciu nad 2 rozličnými typmi.

Druhá vec je že stačí rozlišovať toľko typov, aby sme rozlisili pracu s nimi v programe. To znamená:
Čísla
Stringy
Booleany
Array
Object
Null

nič iné netreba. Nepochopím jazyky kde máte 8 rôznych typov na podpísanie premennej, uchovavajucej dáta s ktorými sa pracuje rovnakým spôsobom. Viď char vs string, neni char vlastne string dĺžky 1? Alebo Int vs Float, Není Int vlastne Float s 0 desatinnými miestami? Ak hovoríme že sa ukladajú trocha inak, tak o koľko? Šetríme tam bajty dát? Dnes PC fakt nie sú stroje kde by bajty urobili rozdiel, navyše keď dáta v premenných tvoria najmenšie množstvo dát uložených v operačnej pameti.

Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?

Keby v JS boli zakázané veci ako robenie operácie nad nekompatibilními typmi dát, tak by JS podľa mňa to mal najsamlepsie poriesene.
---
TS, hmm, jak ťa tlačí k OOP mi vadí, nehovorím že neni situácia kedy by sa nedalo využiť OOP, ale myslím že by programátor sa nemal prispôsobovať v tom aké paradigma musí zvoliť v ktorom jazyku.
Zase blábol.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Cikáda 29. 03. 2020, 09:37:17
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.

Ideově neošetřená větev? Co je to za hovadinu?

Kód: [Vybrat]
f :: Maybe a -> a
f (Just x) = x

Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?
Nemusíš. Type inference.

Ta nebývá 100%.

Keby v JS boli zakázané veci ako robenie operácie nad nekompatibilními typmi dát, ...

Nic takového v JavaScriptu není? Ono by stačilo, kdyby programátoři, kteří JS neumí, používali === místo == (nebo se ho naučili, ale to je náročnější).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 11:25:12
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.

No zrovna ten Smalltalk je dobrá ukázka toho, jak dynamické programování může být šikovné. Celé IDE je napsané samo v sobě, a za běhu modifikovatelné. Můžeš debugovat debugger a za běhu ho upravovat. Zeptáš se třídy na všechny její instance a pošleš jim zprávu (zavoláš metodu). Nic se neprogramuje do souborů, které se překládají a spustí, všechno neustále běží, žije, za běhu se přidávají a ubírají třídy, metody, .. Každá věc se dá inspectnout a pracovat s ní, měnit. Prožít si programování v takovém systému je skutečně mind bending zkušenost.

Když vidím Python, Javascript atp., tak mi přijde, že si vzali to nejblbější z dynamického programování - absenci statických typů, což teď horko těžko dohánějí, a ze staticky typovaného programování - absenci pořádného živého explorativního prostředí, což už asi nedoženou nikdy, protože si ani nedovedou představit, co by se dalo dělat.

Podobný koncept, i když ne tak dotažený, má třeba Lighttable (http://lighttable.com/) pro Clojure, ale s tím osobní zkušenost nemám.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ší.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 29. 03. 2020, 13:02:06
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).
Co přesně byl problém u závislostních typů?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 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ší.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Cikáda 29. 03. 2020, 13:27:15
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ší.

To bych úplně netvrdil. To, že někdo něco rychle poslepuje snáz v Pythonu než v C++, je asi pravda, na stranu druhou to časem bude potřebovat přepsat... taky asi člověk najde snáz Pythonistu než Haskellistu.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: fortran1986 29. 03. 2020, 13:29:35
za mě TS moc nemusím a to z několika důvodů:
1) založen na transpilaci kódu a to je z mého pohledu zhovadilost,
2) zavádí do JS OOP patten, což je taky kr*vina (ikdyž nový TS už umí FC),
3) pochází od M$

Neříkám, že je TS špatný, typovost je vždy dobrá (alespoň z mého pohledu), ale to co dělá TS umí třeba i Flow, což je jen  type checker a je pekelně rychlý. případné chyby nebrání vlastní kompilaci ES6.

Nehledě na to, že mám s TS špatné zkušenosti - většinou jsem viděl zneužívání typu
Kód: [Vybrat]
any a k tomu nepotřebuji mít TS. A když člověk zakáže použítí any, tak natypovat některé věci správně, je někdy krapet oříšek.

Osobně mi přijde, že TS je "moderní" záležitost. Přednosti, které jsou vychvalovány, stejně tak dobře pokreju Flow a Eslintem, že nevidím důvod používat TS. Nehledě na to, že TS ošetří jen vstupní data a property. Data která lezou např. ze služeb třetích stran nikdy neošetříte.

1.) čo sa Vám nepáči na transpilacii? Máloktorý jazyk neni založený na kompilacii či transpilacii. Veď aj samotný JS prevádza JIT kompiler do inštrukcií procesora. To isté aj vami spomínaný smalltalk. Vyčítať programovacím jazykom kompiláciu / transpiláciu je ako vyčítať autám že majú kolesá.

2.) OOP patern je v JS odjakživa. TS akurát k prototypovému OOP pridalo aj triedy (ktoré sú v TS len syntaktický cukor nad prototypmi). TS moc FP neni dá sa v ňom s odretými ušami programovať aj funkcionálne, ale jazyk nám to vôbec neuľahčuje... Také možnosti aké dáva TS na poli funkcionálneho programovania dával aj starý dobrý pascal či LUA a nikto ich pritom za funkcionálne jazyky nepovažuje.

Vo funkcionálnych jazykoch by mal byť prítomný currying (funkcia má len jeden parameter a nato aby sme vytvorili ilúziu viacerých parametrov musíme vracať funkciu s ďalším parametrom). Currying by mal byť v FJ podporovaný na úrovni syntaxe jazyka (nemyslím tým skladanie arrow funkcií) a všetko by malo byť výraz (viete v TS použiť if alebo switch ako výraz?).

3.) No coment

Osobne som používal niekolko rokov Babel (bewz flow) a teraz používam TS pôvodne som chcel ostať pri Babeli ale v práci sa rozhodli pre TS a musím povedať, že som s týmto rozhodnutím nielen veľmi spokojný ale doslova nadšený. Radikálne sa nám celý projekt prečistil a vývoj je rýchlejší a celý projekt sa zbavil detských chýb

Smalltalk sa aj mne páči po teoretickej stránke, ale položte si otázku prečo sa nepresadil? Ja si myslím že je to kôli (ne)bezpečnosti. Dáva vám síce veľa slobody, ale práve nízka bezpečnosť a možnosť meniť úplne všetko je dôvod prečo ho v polovici 90tych rokov vytlačila Java.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 14:09:23
To jsi četl kde, že mi to "nevadí"? Plýtvání je vždycky plýtvání, vždycky to je škoda, ale někdy je odůvodnitelné - něco za něco. To, že je produktivita programátora ve všech částech vývojového cyklu v dynamických jazycích v součtu vyšší, je Tvoje víra. Jinak doporučuju následující čtení - převod velkého systému z Pythonu do Rustu v Dropboxu - proč to dělali a co tím získali (nápověda: nešlo jenom o problém pomalosti některých dílčích operací v runtime dynamického jazyka, ale zejména o jeho relativní neflexibilitu, tedy naprostý opak toho, co tu celou dobu tvrdíš):

https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine

To hádám na základě toho, že neprogramuješ ve strojovém kódu. Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější. Co se týče dropboxu, nepíší tam, že dynamické jazyky jsou neflexibilní. Píší to o svém vlastním programu. Píší že měli chybně navržený datový model a nejen to.

Měli špatný celý návrh programu a měli proto problém s modifikací a testováním změn. Next, the system was not designed for testability. We relied on slow rollouts and debugging issues in the field rather than automated pre-release testing. Což je u dynamického jazyka (a imho u jakéhokoliv, který se dynamicky vyvíjí) základní pochybení, unit testy musí být základ jakéhokoliv robustního programu.

Navíc se zdá, že to měli dokonce i špatně zdokumentované, viz nástup nových techniků trval roky. Nebo tvrzení, že napsat nový kód je jednodušší než porozumět starému a že musí archeologicky zkoumat proč jsou věci jak jsou.

Tohle je ukázkově "zpackaný" vývoj, malá firma která příliš vyrostla a musela nasadit enterprise procesy řízení kvality pro velký byznys. Takto by dopadli s jakýmkoliv jazykem, protože tohle se museli nejprve naučit.

Ano, nešlo jim o výkon, ale ani o Python, natož obecně dynamické jazyky jako takové.  Nicméně si povšimni, že na tom Pythonu skvěle vyrostli a .stali se globálně zásadní společností.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 14:19:32
Smalltalk sa aj mne páči po teoretickej stránke, ale položte si otázku prečo sa nepresadil? Ja si myslím že je to kôli (ne)bezpečnosti. Dáva vám síce veľa slobody, ale práve nízka bezpečnosť a možnosť meniť úplne všetko je dôvod prečo ho v polovici 90tych rokov vytlačila Java.

No, důvody byly asi trochu přízemnější. Ideový nástupce Smalltalku byl Self, který Sun Microsystems vyvíjel společně s Javou, a v Sunu dumali, který jazyk by měli pustit na veřejnost. Podle tohoto zdroje: http://blog.rfox.eu/en/Series_about_Self/Environment_and_the_programming_language_Self_part_3.html , zvolili nakonec Javu, protože

Chuck McManis, a former employee of Sun Microsystems, wrote for a thread on hackernews:

Wow. For those who don't know, there was a big 'language bake off' at Sun between TCL, Java, and Self (all being funded by Sun Labs) and Bert Sutherland (then director of Sun Labs and brother of Ivan) required that the language changes stop and then we'd look at each one, and decide which one to move forward on. When the world sort of exploded at the WWW conference held in Darmstadt Germany in 1995, Java officially 'won' and both Self and TCL were de-committed. (not canceled per-se but not getting any more funding either).
I like to think that all three languages benefited from the competition.

Asked why did Java win, he replied:

 "At the time it was the ability to construct executable content inside a web page. Javascript now dominates that space, but up until WWWC 2 pretty much everyone was stuck with page layout primitives. It made it possible to see a path to where we are today and so everyone wanted their browser to have it, and if their browser didn't have it they could run the HotJava browser and get it.
Bottom line, it demonstrated an answer to a problem that a lot of people were having, and it promised to answer that problem in an 'open source' kind of way."


Jinak z osobní zkušenosti bych neřekl že Smalltalk je více nebezpečný než kterýkoliv jiný dynamicky typovaný jazyk - Python, PHP, Javascript atp.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 14:23:32
Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.

Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.

Co se týče dropboxu, nepíší tam, že dynamické jazyky jsou neflexibilní. Píší to o svém vlastním programu. Píší že měli chybně navržený datový model a nejen to.

Hlavně píší tohle:
Rust has been a force multiplier for our team, and betting on Rust was one of the best decisions we made. More than performance, its ergonomics and focus on correctness has helped us tame sync’s complexity. We can encode complex invariants about our system in the type system and have the compiler check them for us.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 29. 03. 2020, 14:44:47
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.

Fakt Te nefackuje hanba za takoveto demagogicke kydy?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 14:45:40
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.

Ideově neošetřená větev? Co je to za hovadinu?

Kód: [Vybrat]
f :: Maybe a -> a
f (Just x) = x
Ano. Přesně toto jsem měl na mysli.

Navyše proč to musíme definovat explicitne? Není z dát jasné, čo premenná obsahuje?
Nemusíš. Type inference.

Ta nebývá 100%.
Ano, nebývá. Mě to neva, někomu ano. Stačí takto?


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ý.
Nemám. Nic takového si nemyslím, nic takové jsem nenapsal.

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ší.
Toto je nesmysl. Neodpovídá to mé každodenní zkušenosti.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 14:52:41
No zrovna ten Smalltalk je dobrá ukázka toho, jak dynamické programování může být šikovné. Celé IDE je napsané samo v sobě, a za běhu modifikovatelné. Můžeš debugovat debugger a za běhu ho upravovat. Zeptáš se třídy na všechny její instance a pošleš jim zprávu (zavoláš metodu). Nic se neprogramuje do souborů, které se překládají a spustí, všechno neustále běží, žije, za běhu se přidávají a ubírají třídy, metody, .. Každá věc se dá inspectnout a pracovat s ní, měnit. Prožít si programování v takovém systému je skutečně mind bending zkušenost.
Když nad tím zauvažuješ, myslíš si, že by byl nějaký principielní problém do toho statické typování zavést? Jak by museli být omezené?

Mě se třeba v tomto líbí SQL (přirovnání trochu kulhá, vím). Že ti tam ty constrainty povolí vložit až poté, co ověří jejich funkčnost. Tak nějak si představuju statickému typování u živého systému.

Když vidím Python, Javascript atp., tak mi přijde, že si vzali to nejblbější z dynamického programování - absenci statických typů, což teď horko těžko dohánějí, a ze staticky typovaného programování - absenci pořádného živého explorativního prostředí, což už asi nedoženou nikdy, protože si ani nedovedou představit, co by se dalo dělat.
Typování, které Python a Javascript/TypeScript má má výhodu v tom, že to jde vypnout. Což se, uznejme, při prototypování docela hodí.  Přeci jen, chceš si tady něco vyzkoušet, a ztrácet fokus tím, že budeš opravovat vzdáleně související věci, které tě teď ale nezajímají...
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:11:02
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ší.
To bych úplně netvrdil. To, že někdo něco rychle poslepuje snáz v Pythonu než v C++, je asi pravda, na stranu druhou to časem bude potřebovat přepsat... taky asi člověk najde snáz Pythonistu než Haskellistu.

Ale to se přece navzájem nevylučuje. V 99 % případu to řešení v Pythonu bude dostatečné, ve zbytku se přepíše.

Já příležitostně v Pythonu v enterprise prostředí dělám automation, administrativní i kancelářské, podle toho jak organizace potřebuje zrovna přesypávat data odtud tam a zpátky, mezi různými systémy, mezi uživateli, mezi databázemi, mezi organizacemi, mezi excely a wordy a autokedy a já nevím čím vším ještě a mezi tím vším navzájem.

To jsou věci malého rozsahu, často jednorázové nebo provizorní, ale funkční a uspoří hodně člověkohodin za rutinní činnost, tedy šetří drahý čas lidí a podstatně snižují chybovost. Python je na to excelentní. Zadání je typický vágní, často se pod tlakem nepředvídatelných okolností mění a to poměrně rychle - takový je život.

S výhodou se tu využívá vysoká flexibilita jazyka, jakákoliv rigidnost je překážkou. Sem tam se z provizoria stane stabilní provozní záležitost, která pak běží roky. Někdy se v rámci integrace přepíše, většinou ale ne. Běží to spolehlivě, není pro to důvod. Každá taková věc běží jako portable balíček, který stačí zkopírovat, bez jakýchkoliv vnějších závislostí. Někde mi takhle běží balíčky s Python 2.5 který byl v době nasazení novinka, kolik už je to let, no nejméně deset.

Mám to snad psát v C, nebo Javě? Nesmysl, C je pro takové dynamické prostředí nevhodné, jen to problematické kompilování, udržovaní všech knihoven atd. Pak chce člověk upravit jeden řádek programu a zjistí, že stráví půl dne sháněním knihoven, aby to přeložil. Java dokonce ani není portable.

Nebo to mám dělat v nějakém minoritním jazyce? Třeba zmíněném Rustu nebo Haskellu? Vždyť ten v té době ani neexistoval. Má podporuje DCOM?, dostanu se s ním do excelu a acessu, má konektory na databáze, třeba 20 let starý Oracle? Je dobře odladěný a funguje ve všem stejně spolehlivě jako Python? Jak si tyhle jazyky poradí třeba s tímhle:

Kód: [Vybrat]
import win32com.client as win32

ex = win32.gencache.EnsureDispatch('Excel.Application')
ex.Visible = False
wb = ex.Workbooks.Add()
sh = wb.Sheets[0]
sh.Cells(1,1).Value = 'Hello World'
wb.SaveAs('x://test.xlsx')
wb.Save()
ex.Quit()

Mimochodem, skvělá ukázka dynamiky. Python si za pochodu vygeneruje všechny třídy pro aktuální rozhraní pro práci s Excelem, bez ohledu co na daném PC běží a verzi Excelu.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:15:05
No zrovna ten Smalltalk je dobrá ukázka toho, jak dynamické programování může být šikovné. Celé IDE je napsané samo v sobě, a za běhu modifikovatelné. Můžeš debugovat debugger a za běhu ho upravovat. Zeptáš se třídy na všechny její instance a pošleš jim zprávu (zavoláš metodu). Nic se neprogramuje do souborů, které se překládají a spustí, všechno neustále běží, žije, za běhu se přidávají a ubírají třídy, metody, .. Každá věc se dá inspectnout a pracovat s ní, měnit. Prožít si programování v takovém systému je skutečně mind bending zkušenost.
Když nad tím zauvažuješ, myslíš si, že by byl nějaký principielní problém do toho statické typování zavést? Jak by museli být omezené?

Mě se třeba v tomto líbí SQL (přirovnání trochu kulhá, vím). Že ti tam ty constrainty povolí vložit až poté, co ověří jejich funkčnost. Tak nějak si představuju statickému typování u živého systému.

Když vidím Python, Javascript atp., tak mi přijde, že si vzali to nejblbější z dynamického programování - absenci statických typů, což teď horko těžko dohánějí, a ze staticky typovaného programování - absenci pořádného živého explorativního prostředí, což už asi nedoženou nikdy, protože si ani nedovedou představit, co by se dalo dělat.

Jak chceš u statickeho programu měnit dynamicky třídy za běhu programu?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:21:11
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.
Fakt Te nefackuje hanba za takoveto demagogicke kydy?
To nejsou kydy, jen tu někdo nechápe, co to jsou statické typy a co je vlastnost statických typů a co je vlastnost jazyka. V diskusi o statických typech nelze ignorovat dominantní jazyk se statickými typy. Naopak, pomůže ti to rozlišovat vlastnosti typů a jazyka.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 15:28:09
Když nad tím zauvažuješ, myslíš si, že by byl nějaký principielní problém do toho statické typování zavést? Jak by museli být omezené?

Nějaké statické typování by šlo určitě:

http://www.strongtalk.org/

http://bracha.org/pluggableTypesPosition.pdf

Nejsem žádný vědec přes programovací jazyky, na otázku "jak by musely být omezené" nedovedu kvalifikovaně odpovědět.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:29:01
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ý.
Nemám. Nic takového si nemyslím, nic takové jsem nenapsal.

A jak jinak se dá vykládat tvrzení, že "U statických jazyků něco jako neošetřená větev (ideově samozřejmě) neexistuje."?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:35:16
Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.
Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.
Když rostou, musí mít nějakou výhodu. Víme o zásadní nevýhodě, jsou méně efektivní, plýtvají zdroji, přesto se prosazují. V globálním měřítku si neumím představit jiné než ekonomické důvody. Násilím je nikdo neprosazuje, právě naopak, je tu spousta militantních statických programátorů.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 15:40:48
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ší.
Toto je nesmysl. Neodpovídá to mé každodenní zkušenosti.
Vypadlo mi slovo zaručený smysl. Tvá zkušenost je subjektivní a víme, že to neumíš s dynamickými jazyky a nechápeš je. Znovu opakuji, statické typy zaručují jedinou věc, možnost lepší výkonové optimalizace, jinak ti nezaručují vůbec nic.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 16:01:57
Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.
Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.
Když rostou, musí mít nějakou výhodu. Víme o zásadní nevýhodě, jsou méně efektivní, plýtvají zdroji, přesto se prosazují. V globálním měřítku si neumím představit jiné než ekonomické důvody. Násilím je nikdo neprosazuje, právě naopak, je tu spousta militantních statických programátorů.

Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.
Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.
Když rostou, musí mít nějakou výhodu. Víme o zásadní nevýhodě, jsou méně efektivní, plýtvají zdroji, přesto se prosazují. V globálním měřítku si neumím představit jiné než ekonomické důvody. Násilím je nikdo neprosazuje, právě naopak, je tu spousta militantních statických programátorů.

Že si neumíš představit jiné důvody je jen omezení tvojí představivosti, žádný důkaz. Co třeba to, že amatérští programátoři se dynamický jazyk snáze naučí? (z čehož nijak nevyplývá, že profesionál se staticky typovaným jazykem nebude ve spoustě projektů produktivnější)?   Nebo to, že každý webař je okamžitě vystaven javascriptu prostě proto, že ho implementují všechny browsery posledních 20 let narozdíl třeba od Elmu? Na to je tvoje fantazie krátká? Dovedeš dokázat, že lepší produktivita je mezi mnoha dalšími faktory (některé jsem právě uvedl) právě ten rozhodující důvod pro popularitu dynamických jazyků?

Nicméně mě tahle debata nepřijde přínosná, je snad evidentní, že každý přístup má svoje, žádný absolutní vítěz ve všech kategoriích není.  Militantním zastáváním dynamicky typovaných jazyků jim děláš medvědí službu.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 16:32:15
Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.
Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.
Když rostou, musí mít nějakou výhodu. Víme o zásadní nevýhodě, jsou méně efektivní, plýtvají zdroji, přesto se prosazují. V globálním měřítku si neumím představit jiné než ekonomické důvody. Násilím je nikdo neprosazuje, právě naopak, je tu spousta militantních statických programátorů.

Že je produktivita dynamických jazyků vyšší usuzuji z toho, že jsou globálně stále dominantnější.
Nechápu tvojí odvahu posuzovat produktivitu podle používanosti.
Když rostou, musí mít nějakou výhodu. Víme o zásadní nevýhodě, jsou méně efektivní, plýtvají zdroji, přesto se prosazují. V globálním měřítku si neumím představit jiné než ekonomické důvody. Násilím je nikdo neprosazuje, právě naopak, je tu spousta militantních statických programátorů.

Že si neumíš představit jiné důvody je jen omezení tvojí představivosti, žádný důkaz. Co třeba to, že amatérští programátoři se dynamický jazyk snáze naučí? (z čehož nijak nevyplývá, že profesionál se staticky typovaným jazykem nebude ve spoustě projektů produktivnější)?   Nebo to, že každý webař je okamžitě vystaven javascriptu prostě proto, že ho implementují všechny browsery posledních 20 let narozdíl třeba od Elmu? Na to je tvoje fantazie krátká? Dovedeš dokázat, že lepší produktivita je mezi mnoha dalšími faktory (některé jsem právě uvedl) právě ten rozhodující důvod pro popularitu dynamických jazyků?

Nicméně mě tahle debata nepřijde přínosná, je snad evidentní, že každý přístup má svoje, žádný absolutní vítěz ve všech kategoriích není.  Militantním zastáváním dynamicky typovaných jazyků jim děláš medvědí službu.

Ale ty důvody, které jsi uvedl mají v konečném důsledku své ekonomické důvody a dopady. Například se ekonomicky významně neprosadil žádný browser, který by používal staticky typovaný skriptovací jazyk. Když přišel Javascript, byl fantastický v tom, že jsi měl běžící prostředí prohlížeče plné různých objektů, které jsi mohl za běhu, tedy dynamicky, upravovat přes prototypovou dědičnost. Zamiloval jsem se do něj na první pohled. Dnes už ho můžeš používat i mimo prohlížeče.

A výsledek? Aplikace se dnes čím dál tím více přesouvají na webové prohlížeče. Webové prohlížeče se svým dynamickým Javascriptem vytvořily novou velmi úspěšnou platformu, která prakticky porazila zdánlivě neporazitelného molocha Microsoft, jenž na přelomu tisíciletí pevně držel a ovládal aplikační paltformu windows a zdálo se, že nemá konkurenci.

To se nestalo jen tak náhodně pro nic za nic a bez důvodu. Webové aplikace jsou ekonomicky výhodnější. A nelze přehlédnout, že spolu s tím na straně serveru zazářil další dynamický jazyk, PHP a to navzdory tomu, že byl dost špatně navržený. O dynamické prostředí byl a je nesmírný zájem a to ze strany producentů, protože spotřebitelům je technologické pozadí ukradené.

Jestliže se dynamický jazyk snáze učí, má jasnou ekonomickou výhodu, má nižší náklady. Takže ne, moje fantasie není na to krátká, jenom jsi to nedomyslel do konečných důsledků. Každý takový faktor má své ekonomické dopady a nikdo je nedovede exaktně spočítat. Ale celkový výsledek vidíme na výsledné globální úrovni používání jazyků.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 19:42:46
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).
Co přesně byl problém u závislostních typů?
Zatím se stále trochu ztrácím v té syntaxi a logice toho všeho. Hrubý obrys dejme tomu chápu, ale prostě v tom plavu. Takže ani nedokážu říct co přesně nedávám. Možná by mi pomohlo více praxe. Jaký jazyk by si doporučil?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 29. 03. 2020, 20:00:02
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).
Co přesně byl problém u závislostních typů?
Zatím se stále trochu ztrácím v té syntaxi a logice toho všeho. Hrubý obrys dejme tomu chápu, ale prostě v tom plavu. Takže ani nedokážu říct co přesně nedávám. Možná by mi pomohlo více praxe. Jaký jazyk by si doporučil?
Asi Agdu. Něco už má i Haskell, ale to neznám podrobně, takže nemůžu doporučit (nebo odrazovat). On ten aha moment přijde sám, když se člověk prokouše intuicionistickou logikou. Já si vždy závislostní typ překlopím v hlavě do logického výrazu, ten snáze pochopím a pak přejdu zpátky k typům :)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: kybertruk 29. 03. 2020, 20:23:49
Načo sú dobré tieto debaty? Ako vážne, k čomu to je?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: registrovany_ava 29. 03. 2020, 20:24:26
Ale ty důvody, které jsi uvedl mají v konečném důsledku své ekonomické důvody a dopady. Například se ekonomicky významně neprosadil žádný browser, který by používal staticky typovaný skriptovací jazyk. Když přišel Javascript, byl fantastický v tom, že jsi měl běžící prostředí prohlížeče plné různých objektů, které jsi mohl za běhu, tedy dynamicky, upravovat přes prototypovou dědičnost. Zamiloval jsem se do něj na první pohled. Dnes už ho můžeš používat i mimo prohlížeče.

A výsledek? Aplikace se dnes čím dál tím více přesouvají na webové prohlížeče. Webové prohlížeče se svým dynamickým Javascriptem vytvořily novou velmi úspěšnou platformu, která prakticky porazila zdánlivě neporazitelného molocha Microsoft, jenž na přelomu tisíciletí pevně držel a ovládal aplikační paltformu windows a zdálo se, že nemá konkurenci.

To se nestalo jen tak náhodně pro nic za nic a bez důvodu. Webové aplikace jsou ekonomicky výhodnější. A nelze přehlédnout, že spolu s tím na straně serveru zazářil další dynamický jazyk, PHP a to navzdory tomu, že byl dost špatně navržený. O dynamické prostředí byl a je nesmírný zájem a to ze strany producentů, protože spotřebitelům je technologické pozadí ukradené.
Mícháš různé věci dohromady. Webové aplikace jsou populární, protože běží na webu/v prohlížeči, ne protože se programují v Javascriptu. Ostatně přímo v tomto vlákně si dost lidí pochvaluje pro webové aplikace Typescript, tedy jazyk se statickým typovým systémem.

Jestliže se dynamický jazyk snáze učí, má jasnou ekonomickou výhodu, má nižší náklady.
Tenhle názor je stejná blbost jako tvrdit, že krumpáč a lopata mají jasnou ekonomickou výhodu oproti bagru, protože se snáze učí a tím pádem mají nižší náklady.

Takže ne, moje fantasie není na to krátká, jenom jsi to nedomyslel do konečných důsledků. Každý takový faktor má své ekonomické dopady a nikdo je nedovede exaktně spočítat. Ale celkový výsledek vidíme na výsledné globální úrovni používání jazyků.
Že je tvoje fantazie krátká jsem už ukázal, a důsledky evidentně nedomýšlíš ty. Asi jediné s čím z tvého příspěvku souhlasím je, že různé faktory nikdo nedovede exaktně spočítat. A tímto za sebe končím (doufám) tuto debatu, protože je to jak bojovat s logickou Hydrou, člověk ti vyvrátí jeden logický nesmysl a ty vymyslíš dva další, to nemám zapotřebí.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 21:02:05
Ale ty důvody, které jsi uvedl mají v konečném důsledku své ekonomické důvody a dopady. Například se ekonomicky významně neprosadil žádný browser, který by používal staticky typovaný skriptovací jazyk. Když přišel Javascript, byl fantastický v tom, že jsi měl běžící prostředí prohlížeče plné různých objektů, které jsi mohl za běhu, tedy dynamicky, upravovat přes prototypovou dědičnost. Zamiloval jsem se do něj na první pohled. Dnes už ho můžeš používat i mimo prohlížeče.

A výsledek? Aplikace se dnes čím dál tím více přesouvají na webové prohlížeče. Webové prohlížeče se svým dynamickým Javascriptem vytvořily novou velmi úspěšnou platformu, která prakticky porazila zdánlivě neporazitelného molocha Microsoft, jenž na přelomu tisíciletí pevně držel a ovládal aplikační paltformu windows a zdálo se, že nemá konkurenci.

To se nestalo jen tak náhodně pro nic za nic a bez důvodu. Webové aplikace jsou ekonomicky výhodnější. A nelze přehlédnout, že spolu s tím na straně serveru zazářil další dynamický jazyk, PHP a to navzdory tomu, že byl dost špatně navržený. O dynamické prostředí byl a je nesmírný zájem a to ze strany producentů, protože spotřebitelům je technologické pozadí ukradené.
Mícháš různé věci dohromady. Webové aplikace jsou populární, protože běží na webu/v prohlížeči, ne protože se programují v Javascriptu. Ostatně přímo v tomto vlákně si dost lidí pochvaluje pro webové aplikace Typescript, tedy jazyk se statickým typovým systémem.

Ty jsi ohromě prostoduchý. Je to Javascript (obecně dynamický jazyk), který umožnil udělat z webového prohlížeče úspěšnou a oblíbenou aplikační platformu. Můžeš také na to pohlížet také obráceně, že princip dynamických jazyků si stvořil úspěšnou platformu ke svému provozu, kde statické jazyky neuspěly, viz java applety.  Ne že by nedokázaly to co javascript, jen byly zkostnatělé, nepohodlné, neproduktivní, omezující - prostě drahé, neuspěly ekonomicky. Poučný je v tomto směru také vývoj html jazyka a souboj xhtml a html 5. Tedy striktního přísného jazyka s jednoduchou validací pro stroje versus uvolněného jazyka nikoliv pro potřeby stoj, ale pro potřeby lidí. TypeScript je jazyk s dynamickým typovým systémem, který má volitelné statické anotace (což má i Python a nedělá to z něj statický jazyk) a který se kompiluje do dynamického javascriptu. V žebříčku TIOBE zaujímá skvělé 43 místo. Dokonce i lisp je úspěšnější.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 21:14:56
Jestliže se dynamický jazyk snáze učí, má jasnou ekonomickou výhodu, má nižší náklady.
Tenhle názor je stejná blbost jako tvrdit, že krumpáč a lopata mají jasnou ekonomickou výhodu oproti bagru, protože se snáze učí a tím pádem mají nižší náklady.
Taky že lopata s krumpáčem mají jasnou ekonomickou výhodu. To jsi konečně něco pochopil i ty. Proto mám na chalupě krumpáč s lopatou a nikoliv bagr. Ale jinak ti to srovnání kulhá, protože dynamické jazyky ti obecně nabízí vyšší produktivitu, což u krumpáče neplatí. Na druhou stranu s krumpáčem můžeš vykopat co bagr byť někdy za cenu velkého úsilí a navíc dostaneš se s ním i na místa, na která se bagr nedostane, kdežto v IT jsou některé domény, na které jsou dynamické jazyky zatím krátké. Moc dobré srovnání jsi nevybral. Ale když už, bagry jsou hadr, já sázím na kolesová rypadla.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 21:16:26
Načo sú dobré tieto debaty? Ako vážne, k čomu to je?
Komentáře některých jsou nutným zlem. Chodíme sem pro komentáře jiných.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 21:16:45
Takže ne, moje fantasie není na to krátká, jenom jsi to nedomyslel do konečných důsledků. Každý takový faktor má své ekonomické dopady a nikdo je nedovede exaktně spočítat. Ale celkový výsledek vidíme na výsledné globální úrovni používání jazyků.
Že je tvoje fantazie krátká jsem už ukázal, a důsledky evidentně nedomýšlíš ty. Asi jediné s čím z tvého příspěvku souhlasím je, že různé faktory nikdo nedovede exaktně spočítat. A tímto za sebe končím (doufám) tuto debatu, protože je to jak bojovat s logickou Hydrou, člověk ti vyvrátí jeden logický nesmysl a ty vymyslíš dva další, to nemám zapotřebí.

Jediné co jsi ukázal je, že neumíš věci domyslet do důsledku a musí se ti všechno říkat polopatě jako dítěti :-).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 29. 03. 2020, 21:17:25
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).
Co přesně byl problém u závislostních typů?
Zatím se stále trochu ztrácím v té syntaxi a logice toho všeho. Hrubý obrys dejme tomu chápu, ale prostě v tom plavu. Takže ani nedokážu říct co přesně nedávám. Možná by mi pomohlo více praxe. Jaký jazyk by si doporučil?
Asi Agdu. Něco už má i Haskell, ale to neznám podrobně, takže nemůžu doporučit (nebo odrazovat). On ten aha moment přijde sám, když se člověk prokouše intuicionistickou logikou. Já si vždy závislostní typ překlopím v hlavě do logického výrazu, ten snáze pochopím a pak přejdu zpátky k typům :)
Díky.
Já zase přijdu :-)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 21:22:14
Načo sú dobré tieto debaty? Ako vážne, k čomu to je?
To je různé. Na pobavení, utřídění si myšlenek, na psychoterapeutickou pomoc frustrovaným programátorům, kterým ve světě dynamických jazyků ujel vlak a nechápu je, ale to nevadí, protože stejně všichni vědí, že jsou na nic :-).
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: kybertruk 29. 03. 2020, 21:36:55
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 21:58:47
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Ja si myslim, ze to je jak jsem napsal. Nepozoroval jsem, ze by tu nekdo otviral flamewar proti staticky typovanym jazykum. Vsichni chapou jejich smysl a use case. Ale proti tem dynamickym je to vecne. Treba BoneFlute tady opakovane vyvolava flamewar pozadavkem, at ho ostatni presvedci, ze dynamicke jazyky jsou k necemu dobre, kdyz on si mysli, ze jsou na nic. Nikdy ale nevyuzil prilezitosti to opravdu pochopit.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 29. 03. 2020, 22:01:46
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Jsou to často výlevy nedouků bez VŠ, bez pořádné práce a bez perspektivy, kterým (aspoň některým) už došlo, že jejich omezený intelekt jim nikdy nedovolí dělat něco víc než patlat v JS skripty měnící barvičky na webu. Jak psal výše kolega, někteří píšou k věci a při čtení holt musí odfiltrovávat bláboly trotlů.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Cikáda 29. 03. 2020, 22:18:57
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Jsou to často výlevy nedouků bez VŠ, bez pořádné práce a bez perspektivy, kterým (aspoň některým) už došlo, že jejich omezený intelekt jim nikdy nedovolí dělat něco víc než patlat v JS skripty měnící barvičky na webu. Jak psal výše kolega, někteří píšou k věci a při čtení holt musí odfiltrovávat bláboly trotlů.

Ještě že tu máme takovou elitu.  :)
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: oksoft 29. 03. 2020, 22:44:30
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Ja si myslim, ze to je jak jsem napsal. Nepozoroval jsem, ze by tu nekdo otviral flamewar proti staticky typovanym jazykum. Vsichni chapou jejich smysl a use case. Ale proti tem dynamickym je to vecne. Treba BoneFlute tady opakovane vyvolava flamewar pozadavkem, at ho ostatni presvedci, ze dynamicke jazyky jsou k necemu dobre, kdyz on si mysli, ze jsou na nic. Nikdy ale nevyuzil prilezitosti to opravdu pochopit.
Já jsem se chtěl jen zeptat na zkušenosti s typescriptem (jestli v něm někdo programuje, jestli stojí za to to použít...) a mezitím se stalo toto. Ani nechápu kde se to zvrhlo.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 29. 03. 2020, 23:13:57
Nejvetsi problem TrueScriptu je, ze je od Microsoftu. Clovek nikdy nevi, co od toho ocekavat, zvlast kdyz je to nove. Takhle jsem se kdysi spalil u Acessu, kdy se s kazdou verzi museli aplikace predelavat, az to nakonec clovek radsi udeal v necem jinem a byl klid. Ze jsem nenaskocil do SilverLightu jsem rad, prestoze podporoval IronPython a dost jsem to zvazoval, ale pak neduvera v MS prevazila. Ale COM je treba vazne sikovny, u nej me az prekvapuje, jakou tomu drzi dlouhou podporu.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 30. 03. 2020, 07:44:19
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Jsou to často výlevy nedouků bez VŠ, bez pořádné práce a bez perspektivy, kterým (aspoň některým) už došlo, že jejich omezený intelekt jim nikdy nedovolí dělat něco víc než patlat v JS skripty měnící barvičky na webu. Jak psal výše kolega, někteří píšou k věci a při čtení holt musí odfiltrovávat bláboly trotlů.
Jasně, patláním JS barviček to začlo a dnes jsou Larry Page nebo Mark Zuckerberk jedni z nejbohatších a nejvlivnějších lidí na světě. Holt nýmandi bez pořádné práce a perspektivy. Zatím co vzdělaní akademici perspektivně programují v Idrisu o kterém nikdy neslyšela ani většina lidí z oboru.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Ink 30. 03. 2020, 08:14:21
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Jsou to často výlevy nedouků bez VŠ, bez pořádné práce a bez perspektivy, kterým (aspoň některým) už došlo, že jejich omezený intelekt jim nikdy nedovolí dělat něco víc než patlat v JS skripty měnící barvičky na webu. Jak psal výše kolega, někteří píšou k věci a při čtení holt musí odfiltrovávat bláboly trotlů.
Jasně, patláním JS barviček to začlo a dnes jsou Larry Page nebo Mark Zuckerberk jedni z nejbohatších a nejvlivnějších lidí na světě. Holt nýmandi bez pořádné práce a perspektivy. Zatím co vzdělaní akademici perspektivně programují v Idrisu o kterém nikdy neslyšela ani většina lidí z oboru.

Tak je fajn, že ses v tom našel, Kite.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 30. 03. 2020, 09:25:46
Mne to skôr príde, že tieto debaty slúžia len ako zámienka pre vyplavenie negatívne energie a frustrácie. Racionálne argumenty by boli, že ako statické tak aj dynamické typovenie má svoje use casy a to sú tie a tie a tie. No namiesto toho celá diskusia sa nesie v znamení negatívnych emócii zastrených v rádoby technickom žargóne. Za normálnych okolností by som sa asi pridal, ale nechcete na chvíľu prestať? Nechcete sa na chvíľu vykašľať na všetky tie negatívne emócie, naučený "contrarianism" (ja fakt neviem ako to preložiť) ? Vždy som si myslel, že cieľom majú byť funkčné programy, ktoré robia to čo chceme nie orgastická masturbácia na super intelektuálnym a hyper obskúrnym spôsobom ako sme implementovali triviálnu funkcionalitu. Čo to s vami ľudia je?
Jsou to často výlevy nedouků bez VŠ, bez pořádné práce a bez perspektivy, kterým (aspoň některým) už došlo, že jejich omezený intelekt jim nikdy nedovolí dělat něco víc než patlat v JS skripty měnící barvičky na webu. Jak psal výše kolega, někteří píšou k věci a při čtení holt musí odfiltrovávat bláboly trotlů.
Jasně, patláním JS barviček to začlo a dnes jsou Larry Page nebo Mark Zuckerberk jedni z nejbohatších a nejvlivnějších lidí na světě. Holt nýmandi bez pořádné práce a perspektivy. Zatím co vzdělaní akademici perspektivně programují v Idrisu o kterém nikdy neslyšela ani většina lidí z oboru.
Tak je fajn, že ses v tom našel, Kite.
Nepsal jsem nic o tom, v čem jsem se našel já, webové aplikace nejsou můj obor. Ale nejsem debil, abych přehlížel, jak význam této platformy roste, a jak se do této platformy postavené na dynamickém jazyku převádí postupně desktopové aplikace.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 30. 03. 2020, 23:07:06
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: qelurg 31. 03. 2020, 00:28:17
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.
Čím méně je to použitelné, tím více se ti to líbí, žejo? Co reálného, schopného jít na produkci, jsi v tom už udělal?
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: fortran1986 31. 03. 2020, 00:48:51
Smalltalk sa aj mne páči po teoretickej stránke, ale položte si otázku prečo sa nepresadil? Ja si myslím že je to kôli (ne)bezpečnosti. Dáva vám síce veľa slobody, ale práve nízka bezpečnosť a možnosť meniť úplne všetko je dôvod prečo ho v polovici 90tych rokov vytlačila Java.

No, důvody byly asi trochu přízemnější. Ideový nástupce Smalltalku byl Self, který Sun Microsystems vyvíjel společně s Javou, a v Sunu dumali, který jazyk by měli pustit na veřejnost. Podle tohoto zdroje: http://blog.rfox.eu/en/Series_about_Self/Environment_and_the_programming_language_Self_part_3.html , zvolili nakonec Javu, protože

Chuck McManis, a former employee of Sun Microsystems, wrote for a thread on hackernews:

Wow. For those who don't know, there was a big 'language bake off' at Sun between TCL, Java, and Self (all being funded by Sun Labs) and Bert Sutherland (then director of Sun Labs and brother of Ivan) required that the language changes stop and then we'd look at each one, and decide which one to move forward on. When the world sort of exploded at the WWW conference held in Darmstadt Germany in 1995, Java officially 'won' and both Self and TCL were de-committed. (not canceled per-se but not getting any more funding either).
I like to think that all three languages benefited from the competition.

Asked why did Java win, he replied:

 "At the time it was the ability to construct executable content inside a web page. Javascript now dominates that space, but up until WWWC 2 pretty much everyone was stuck with page layout primitives. It made it possible to see a path to where we are today and so everyone wanted their browser to have it, and if their browser didn't have it they could run the HotJava browser and get it.
Bottom line, it demonstrated an answer to a problem that a lot of people were having, and it promised to answer that problem in an 'open source' kind of way."


Jinak z osobní zkušenosti bych neřekl že Smalltalk je více nebezpečný než kterýkoliv jiný dynamicky typovaný jazyk - Python, PHP, Javascript atp.

Toho selfu je velká škoda a vlastne aj smalltalku, lenže pre ľudí ktorí boli v 90tych rokoch zvyknutí na C++ a Turbo Pascal bol koncept image s kompletným vývojovým prostredím asi až príliš revolučný. A self k tomu pridal ešte aj úplne nový objektový model, ktorý predbehol svoju dobu (prototypy, sloty, zrkadlá atď) ale bol natoľko exotický že by odradil aj zvyšok vývojárov... Keby sa Sun vybral cestou Selfu myslím že by to mal omnoho tažšie ako s Javou

Naproti tomu C++ išiel cestou menšieho odporu Stroustrup si vybral pôvodné OOP zo simuly 67, nesnažil sa o revolúciu, ale len evolúciu v medziach toho čo už vývojári dobre poznali.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: Idris 31. 03. 2020, 00:57:33
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.
Akorát je těch jazyků nějak moc, TypeScript, Dart atd., všechno na jedno brdo, ale s drobnými odlišnostmi, aby se to náhodou nepletlo.
Název: Re:Zkušenosti s TypeScriptem
Přispěvatel: BoneFlute 31. 03. 2020, 02:11:25
Zdravím.
Prosím vás, máte někdo zkušenosti s Typescriptem? Jakou?

Existuje https://github.com/TypeScriptToLua/TypeScriptToLua

On TypeScript jako jazyk je celkem dobrej. Jen ten Javascript mi nic. Ale když už transpiler, tak proč zůstávat u jednoho cílového jazyka, že jo. Moc se mi to líbí.
Akorát je těch jazyků nějak moc, TypeScript, Dart atd., všechno na jedno brdo, ale s drobnými odlišnostmi, aby se to náhodou nepletlo.

Nevím jak Dart.

Ale ten TS je právě fajn v tom, že ty jeho typy jsou přeci jenom lepší jak to co se normálně nosí. Jako kdyby v C# udělali takovej ten javovskej mainstream, ale v tom TypeScriptu se trochu rozšoupli (ne moc, ale přeci jenom).
Jako třeba adhoc union type se zase tak nevidí. I ten způsob, jak to celé uchopily, pomocí těch definičních souborů.

Že by to bylo všechno na jedno brdo, to bych taky tak úplně neřekl. Spíše bych to viděl jako pokusy protlačit teoretické aspekty do praxe. A že se kůli každé blbosti vymejšlí novej jazyk, no, to je pravda - c'est la vie.

Jako ideální jazyk to podle mne ještě není. Furt tam smrdí new, středníky a podobné zbytečnosti. Ale možnost, jak používat lepší typy v praxy je to super. Když nemáš odvahu na Elm.