Funguje TypeScript aj za run-time?

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #30 kdy: 12. 10. 2018, 14:31:56 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #31 kdy: 12. 10. 2018, 14:34:06 »
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel?

Ano má. Protože chceme kód otestovat před spuštěním, ne za běhu. Ty se tážeš, zda ti to bude testovat za běhu, ale o to nikdo nemá zájem. To nebyl důvod, proč byl TS vymyšlen.

Mňa naopak zaujímajú správne typy hodnôt za behu. Lebo len to je pre mňa bezpečnostné riziko. A zdá sa, že TS mi nijak nepomôže s neznámym JSON za behu. Tým pádom je pre mňa TS zbytočné.

Tak pokud myslíš, že to potřebuješ, použij už uváděné knihovny. TS za tímto účelem nebyl vymyšlen.

Re:Funguje TypeScript aj za run-time?
« Odpověď #32 kdy: 12. 10. 2018, 14:36:00 »
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Ptal ses ale na něco o dost jiného. Tak se nediv ;)

Celé to statické typování děláme pro to, abychom typovou kontrolu nemuseli dělat až s Flow. Aby bylo zaručené, že jsou v runtime typy dobře. A aby co nejvíc chyb dokázal odchytit překladač.

A jestli se to vyplatí, ti tu fakt nikdo neřekne. Nevíme, co máš k dispozici za programátory. Nevíme, jaký druh problému řešíš. A tak dál. A navíc to nejsme my, kdo jde s kůží na trh.

Ale abych byl upřímný, tak mi nepřijde že bys zjišťoval jestli se to vyplatí. Spíš mi to připadá, že sháníš argumenty proč se to nevyplatí.

Iste. Falzifikácia je vo výsledku to isté, ako verifikácia. A ty si pre mňa zatiaľ iba ďalšia obeť TS hype. Napísať, že TS je riešenie špagety kódu, Flow je nanič a do konca, že TS developer sa ani nemusí učiť JS, to je zbierka takých nezmyslov..

Re:Funguje TypeScript aj za run-time?
« Odpověď #33 kdy: 12. 10. 2018, 14:39:41 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #34 kdy: 12. 10. 2018, 14:41:38 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?


Re:Funguje TypeScript aj za run-time?
« Odpověď #35 kdy: 12. 10. 2018, 14:47:45 »
Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

Re:Funguje TypeScript aj za run-time?
« Odpověď #36 kdy: 12. 10. 2018, 14:50:26 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?

Bacsa

Re:Funguje TypeScript aj za run-time?
« Odpověď #37 kdy: 12. 10. 2018, 14:54:27 »
Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
To máš vážně tak nízké IQ? Spadne to na konverzi, když neošetříš případnou chybu.

.

Re:Funguje TypeScript aj za run-time?
« Odpověď #38 kdy: 12. 10. 2018, 14:59:18 »
Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
Na runtime error určitě ne. Nejsem Java programátor, ale rychlý pohled na java.io.DataInputStream.readInt() prozrazuje, že načte 4 byty ze vstupu a interpretuje je jako číslo. Exeption hodí jen na neočekávaný výskyt konce souboru nebo IO chybu.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #39 kdy: 12. 10. 2018, 15:00:11 »
Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

Ano. Zajímá tě Maybe/Option typ.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #40 kdy: 12. 10. 2018, 15:02:17 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?

To, že se ti to nezdá, že já to tak použít umím, protože ten jazyk používám, zatímco ty neumíš, protože jsi to nikdy nedělal, páč by si se tak neptal - to není známka špatného argumentu.

Re:Funguje TypeScript aj za run-time?
« Odpověď #41 kdy: 12. 10. 2018, 15:03:38 »
Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
To máš vážně tak nízké IQ? Spadne to na konverzi, když neošetříš případnou chybu.

Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"

Re:Funguje TypeScript aj za run-time?
« Odpověď #42 kdy: 12. 10. 2018, 15:08:25 »
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?

To, že se ti to nezdá, že já to tak použít umím, protože ten jazyk používám, zatímco ty neumíš, protože jsi to nikdy nedělal, páč by si se tak neptal - to není známka špatného argumentu.

Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #43 kdy: 12. 10. 2018, 15:14:17 »
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

.

Re:Funguje TypeScript aj za run-time?
« Odpověď #44 kdy: 12. 10. 2018, 15:18:13 »
Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"
Takhle to dopadá, když se nedostudovanci dají na programování. A pokud máš IT vysokou školu, tak radši nechci ani vědět kterou.

Zkus si v tom svém Javascriptu toto:
Kód: [Vybrat]
> parseInt("10765432100123456789")
a budeš překvapený, co ti vyleze. Přičemž je docela běžné, že se id v JSONu posílají v numerickém formátu. Něříkám, že to je problém, prostě to je takto definováno, ale je zjevné, že o tom vůbec nevíš.