Рубріки: Back-endFront-endДумка

Навіщо нам статична типізація JavaScript

Алекс Монахов

Як виконується наш JavaScript код? Виділю декілька ключових фаз.

  1. Перетворення в байт-код;
  2. Виконання;
  3. Оптимізація

З пунктом 1 все зрозуміло.

Пункт 2. V8 або інший рантайм ранить байт-код і збирає статистику його використання.

Пункт 3. Тут, на основі зібраної статистики використання нашого коду, будуються припущення, як його можна оптимізувати. Тобто виводяться типи наших змінних і на основі цього відбувається компіляція в машинний код.

Таким чином ми бачимо, що для того, щоб привести наш JS до максимально ефективного представлення, потрібен час, щоб зібрати статистику використання нашого коду. Далі, провести аналіз, зробити певні припущення, на основі яких виконати оптимізації й компілювати наш код в машинний.

Це все можливо було б спростити, якшо б у нас типи були з самого старту, тобто, ми б могли привести наш JS до максимально ефективної форми швидше. Можливо навіть без шару байт-коду, а одразу білдити машинний код на основі типів.

До речі, це не нова ідея — до нинішньої архітектури V8 (Ignition + TurboFan) був V8 (Crankshaft), який якраз і робив компіляцію одразу з JavaScript до машинного коду. Це приводило до певних проблем, але пост не про це.

Тому статична типізація у JavaScriptс дає нам:

  1. Те, за що ми так любимо TypeScript, тільки без TypeScript.
  2. Перфоманс, бо рантайму стане значно легше оптимізувати наш код.

Цей текст взято з особистого блогу після отримання дозволу автора.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Останні статті

Чому написання ідеального коду може призвести до вашого звільнення

Блогер та розробник Джозеф Круз розповів, чому не варто писати ідеальний код та чому це…

18.04.2025

ChatGPT, моторошна долина та трохи Фройда

Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…

17.04.2025

Я прийшла за покупками, а не крутити колесо

«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…

16.04.2025

Майже навайбкодив десктопний монітор CI пайплайнів

Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…

15.04.2025

Як працюють транзакційні комісії в мережах Bitcoin і Ethereum

Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…

14.04.2025

Обережно, тепер вас можуть обдурити на співбесіді з роботодавцем

Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…

11.04.2025