Hlavní navigace

Názor ke zprávičce Douglas Crockford: JavaScript brzdí pokrok a měl by jít do důchodu od JSH - > Proč tedy argumentujete tím, jak by to...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 11. 8. 2022 8:44

    JSH

    > Proč tedy argumentujete tím, jak by to zpracovával naivní interpret před dvaceti lety, když víte, že dneska javascriptový runtime vypadá úplně jinak?

    Bingo! Já tak neargumentuju. To vy si tam urputně dosazujete 20 let staré interprety. Prosím, aspoň zkuste interpretovat moje odpovědi v kontextu toho, že mám aspoň hrubou představu o možnostech JIT interpretu.

    > Běhovým prostředím jsem myslel tu část bez optimalizátoru.

    A k čemu tohle dělení je? Pro kohokoliv kromě vývojářů v8 je ten optimalizátor a všechno za ním jeden blok. Copak můžu tomu za tím strčit nějaký svůj bytecode? Ten kompilátor + optimalizátor nejde obejít. Svým způsobem je to rozhraní k tomu, čemu říkáte to běhové prostředí.

    > No a jestli to bude nějaký bajtkód nebo skript, to ovlivňuje složitost JIT ale ne jeho výkon.

    Takže to, jestli ta kompilace může jet minuty a víc, nebo jestli musí doběhnout v rozumném čase na nějakám uživatelově střepu, nemá vliv na výkon? Jestli se bude jitovat a optimalizovat textový zdroják nebo předoptimalizovaný bytecode neovlivní výkon? Fakt?

    > Takže to, co vám vadí...

    Ne, tahle větev začala tím, že jsem ryl do typeof, protože mi to přijde jako mizerné rozhraní. Porovnejte to třeba s tím Array.IsArray. Co všechno musí runtime udělat aby zoptimalizoval to použití typeof vs zoptimalizoval volání nějakého předpřipraveného predikátu? Jo, jednotlivě se to vsákne, ale tyhle drobečky se sčítají.

    Jo, spousta lidí tady něco takového nepoužilo. To beru. Ale ten odkazovaný balíček je nechutně používaný na to, že je jeho obsah skoro srovnatelný se složitostí jeho importu. V kolika dalších projektech se vyskytujou stejné obraty si netroufám ani odhadovat.

    Že je pole taky objekt je implementační detail JS. Nebo je to možná implementační detail prvního JS. Ani programátoři tak IMO obvykle nepřemýšlejí. Že je absence čehokoliv taky objekt už je regulérní WTF. A argument "typeof je starý krumpl, takže v novém kódu použijte XYZ" jsem tu nezahlédl.