Funguje TypeScript aj za run-time?

Re:Funguje TypeScript aj za run-time?
« Odpověď #15 kdy: 12. 10. 2018, 13:35:45 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

Vidím tam pre run-time akurát tak ručné použitie typeof a instanceof. To ale predsa nemá nič spoločné s TS.

No jasne ze to nema, kdyz runtime je uz javascript. To jestli v guardu pouzijes typeof ci instanceof nebo nejakou knihovnu na checkovani typu je uz uplne v tve rezii. kdyz pouzijes kombo "unknown" a typeguard tak dostanes  pomerne silny nastroj na to aby byl kod silne typovany jak v buildtime tak v runtime. Pouziva se to hlavne pri parsovani 3rd party dat v ajaxu, api atd. kde nekdy nevis dopredu co presne dojde a tak to checkne guard. Na tvoje kody a data, ktere znas staci obvykle buildtime typing.

Takže po definícii typeguard v TS následne transpilácia dopĺňa do výsledného JS kód na kontrolu stráženého typu, aby tá kontrola fungovala aj za runtime? Si si tým istý?


Kozel

Re:Funguje TypeScript aj za run-time?
« Odpověď #16 kdy: 12. 10. 2018, 13:36:19 »
Ž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.

Re:Funguje TypeScript aj za run-time?
« Odpověď #17 kdy: 12. 10. 2018, 13:47:21 »
Ž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.

Bacsa

Re:Funguje TypeScript aj za run-time?
« Odpověď #18 kdy: 12. 10. 2018, 13:54:30 »
Ž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.
Z tvojí praxe copy-paste lepiče podřadného kódu? Když nechápeš, k čemu je statické typování, tak ho prostě nepoužívej, na tvoje čidlo v oštiepku na salaši to vliv mít nebude ;)

Re:Funguje TypeScript aj za run-time?
« Odpověď #19 kdy: 12. 10. 2018, 14:00:59 »
Ž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.
Z tvojí praxe copy-paste lepiče podřadného kódu? Když nechápeš, k čemu je statické typování, tak ho prostě nepoužívej, na tvoje čidlo v oštiepku na salaši to vliv mít nebude ;)

Ako vážne? Pod citáciu kompletného vysvetlenia opodstatnenia otázky napíšeš toto? Drbko :)


Kozel

Re:Funguje TypeScript aj za run-time?
« Odpověď #20 kdy: 12. 10. 2018, 14:03:11 »
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?

Vychovat TS programatora je levnejsi nez JS kodera protoze TS je pes co rve dokud kod neni cisty. JS ti dovoli prasarny a u nezkuseneho kodera tak muzou byt dusledky mnohem drahsi :D

Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce?

Blbost. Unit testy k TS se pisou mnohem lepe a muzes je psat rovnou v TS. Naimportujes kod co chces testovat, naplnis fixtures pripadne stubs, pustis asserty, vymalovano.

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?

Typescript je mnohem lepsi nez Flow. Navic kazdy existujici JS kod je i validnim TS kodem dokud do neho nenarves typy. Takze nemusis vsechno prepisovat.

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.

Tak nevim co kodite ale rikat ze JS kod je vice citelny nez TS kod ? Kdyz budes kodit poradne MVC apky v teamu a nechces se po roce utopit v spagetach tak k typescriptu pobezis velice brzy a velice rad. Ta typovost za to stoji a spousta chyb se tak eliminuje uz v zarodku.

My na TS presli asi pred 2 lety a je to jednoznacne pozitivum. Zpatky by uz nikdo nesel, vyplatilo se to, zlepsili se metriky jak vykonnosti koderu, tak poctu chyb. Vyhodou byla ta moznost postupneho prechodu kde na zacatku byl jeden .ts soubor a 500 .js souboru. Dnes je to nekde na 400 .ts souborech a na zbytek .js uz sahat nebudeme, postacilo pridat .d.ts definince.

JSH

Re:Funguje TypeScript aj za run-time?
« Odpověď #21 kdy: 12. 10. 2018, 14:10:11 »
Ž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í.

Re:Funguje TypeScript aj za run-time?
« Odpověď #22 kdy: 12. 10. 2018, 14:14:44 »
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?

Vychovat TS programatora je levnejsi nez JS kodera protoze TS je pes co rve dokud kod neni cisty. JS ti dovoli prasarny a u nezkuseneho kodera tak muzou byt dusledky mnohem drahsi :D

Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce?

Blbost. Unit testy k TS se pisou mnohem lepe a muzes je psat rovnou v TS. Naimportujes kod co chces testovat, naplnis fixtures pripadne stubs, pustis asserty, vymalovano.

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?

Typescript je mnohem lepsi nez Flow. Navic kazdy existujici JS kod je i validnim TS kodem dokud do neho nenarves typy. Takze nemusis vsechno prepisovat.

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.

Tak nevim co kodite ale rikat ze JS kod je vice citelny nez TS kod ? Kdyz budes kodit poradne MVC apky v teamu a nechces se po roce utopit v spagetach tak k typescriptu pobezis velice brzy a velice rad. Ta typovost za to stoji a spousta chyb se tak eliminuje uz v zarodku.

My na TS presli asi pred 2 lety a je to jednoznacne pozitivum. Zpatky by uz nikdo nesel, vyplatilo se to, zlepsili se metriky jak vykonnosti koderu, tak poctu chyb. Vyhodou byla ta moznost postupneho prechodu kde na zacatku byl jeden .ts soubor a 500 .js souboru. Dnes je to nekde na 400 .ts souborech a na zbytek .js uz sahat nebudeme, postacilo pridat .d.ts definince.

Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #23 kdy: 12. 10. 2018, 14:16:59 »
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č.

Flow je statická kontrola.

Kozel

Re:Funguje TypeScript aj za run-time?
« Odpověď #24 kdy: 12. 10. 2018, 14:20:51 »
Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.

No jestli delas i v programovani takove hrubky jako v slovencine tak se asi nemame dal o cem bavit. Chtel jsem ti slusne poradit ale chovas je jako k@k@t.

BoneFlute

  • *****
  • 1 731
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #25 kdy: 12. 10. 2018, 14:22:48 »
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.

BoneFlute

  • *****
  • 1 731
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #26 kdy: 12. 10. 2018, 14:23:43 »
Typescript je mnohem lepsi nez Flow.

Odvážné tvrzení. Můžeš to rozvést?

Re:Funguje TypeScript aj za run-time?
« Odpověď #27 kdy: 12. 10. 2018, 14:27:34 »
Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.

No jestli delas i v programovani takove hrubky jako v slovencine tak se asi nemame dal o cem bavit. Chtel jsem ti slusne poradit ale chovas je jako k@k@t.

A to vážne? Za jeden preklep v "y" som kokot? Dobre. Ja som kokot, ty profi developer. Tak sa vráťme k téme a ako prvé mi vysvetli ako TS súvisí / eliminovalo špagety kód vo vašej firme.

.

Re:Funguje TypeScript aj za run-time?
« Odpověď #28 kdy: 12. 10. 2018, 14:30:40 »
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ů.

Re:Funguje TypeScript aj za run-time?
« Odpověď #29 kdy: 12. 10. 2018, 14:31:03 »
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é.