5 запитань Ужвалу Шармі про сьогодення і майбутнє JavaScript

5 запитань Ужвалу Шармі про сьогодення і майбутнє JavaScript
У вересні DataArt приймав Ужвала Шарму, Node.js Core Collaborator і делегата TC39 — комітету, відповідального за розвиток мови JavaScript. Ужвал виступив у двох центрах розробки DataArt, відповівши на десятки запитань наших колег і глядачів онлайн-трансляції. Для публікації ми вибрали п'ять відповідей, але рекомендуємо подивитися і запис зустрічі — приємно і корисно для всіх, хто цікавиться JavaScript.

1. Що таке TC39?

TC39 (точніше, Технічний комітет № 39) — частина ECMA, Європейської асоціації виробників комп'ютерів зі штабом у Швейцарії. Сенсу в цій назві небагато, оскільки ECMA вже давно не пов'язана з виробництвом заліза. Вона і TC39 як її підрозділ відповідають за стандарти роботи JavaScript — мови, яку більшість із нас віддано любить. У TC39 є сайт, де ми постаралися максимально дохідливо пояснити, чим саме займаємось. Комітет вже зібрав і реалізував величезну кількість пропозицій щодо змін і доповнень до мови, і список цей список постійно доповнюється. Усі доповнення і зміни проходять однакову процедуру, що включає стадію proposal. І всі ці пропозиції зібрані в нашому репозиторії.

2. У вас є улюблене доповнення до JavaScript?

Є, і саме я, як ви, напевно, здогадалися, над ним і працював. Temporal, на мій погляд, подобається всім, хто з ним стикався. Тому що він і справді чудовий. Особливо у порівнянні з об'єктом “Date”, який до JavaScript додали в далекому 1995-му (мене тоді навіть ще на світі не було). Date завжди був далеким від досконалості, точніше, він завжди був відстійним. Правда, слова краще тут просто не підібрати: писати з ним код практично неможливо. Усім JS-розробникам, які мають справу з датами і часом, доводиться звертатися до Moment.js, Luxon.js, date-fns чи інших схожих бібліотек. Temporal розв’язує цю проблему.

article image

 

3. Яким ви бачите майбутнє JavaScript?

Перш за все, потрібно згадати, що JavaScript розробляли у 1990-х, тобто у принципово іншому світі. Продуктивність процесорів тоді росла за рахунок тактової частоти, тобто вони просто ставали дедалі швидшими. Наразі все працює зовсім іншим чином — масштабування відбувається за рахунок додаткових ядер, які можна підключати в міру необхідності та відключати, наприклад, для економії заряду акумулятора. У найменшому комп'ютері тепер не менше чотирьох ядер, а в більшості їх хоча б вісім. Але JavaScript поки нездатний цим скористатися. Тому я б хотів побачити багатопотоковий JS, що дозволяє писати ефективний код для будь-якого пристрою.

article image

 

4. Чого зараз бояться JavaScript-розробники? Чи є швидкий розвиток WebAssembly джерелом тривоги?

Я, правда, не знаю, чому WebAssembly розглядають як конкурента JavaScript. Особисто я вважаю WebAssembly чудовою та дуже корисною штукою. Тому що для деяких дій у браузері низькорівнева мова програмування підходить набагато краще. Якщо ви створюєте браузерну гру, накладаєте фільтри на фото, взагалі займаєтеся розробкою складних застосунків, розумніше використовувати WebAssembly. Але він не підходить для рендеринга або, скажімо, щоб просто написати на сайті своє ім'я. Тому мені й здається, що ці дві мови можуть не лише мирно співіснувати, а й доповнювати одна одну.

Я присвятив майже все життя вивченню JavaScript і паралельно зрозумів одну цікаву річ. Люди, які нещадно лають JavaScript, зненавиділи його через неправильне використання. Але ж JS — лише інструмент, який можна застосувати абсолютно по-різному. Не дуже приємно, коли тобі не вдається розв’язати задачу. Але це точно не вина невідповідного інструменту, який ти спробував під неї пристосувати.

article image

 

5. Чи можна назвати JavaScript-спільноту зразком для інших?

Особисто для мене ця спільнота стало другою домівкою. JS не лише дав мені можливість знайти роботу (це наче очевидно), завдяки йому в мене з’явилась безліч близьких друзів. JavaScript підтримує екосистема, що складається з прекрасних людей, не всі мови програмування можуть похвалитися такими доброзичливими ком’юніті. Зараз щось подібне складається навколо Rust — усі, хто взаємодіяв із цією спільнотою, мають до неї найтепліші почуття. Але я впевнений, що ядро Rust-ентузіастів надихалося саме людьми та неформальними структурами JS. Взагалі гадаю, що невипадково атмосфера на конференціях із JavaScript завжди є такою розслабленою та приємною.


Дивіться запис IT Talk з Ужвалом Шармою, щоб дізнатися більше про TypeScript і декораторів, можливості статичної типізації, майбутнє typeof null, записи і кортежі тощо.

  • Україна, Remote.UA; Україна, Дніпро; Україна, Київ; Україна, Львів; Україна, Одеса; Україна, Харків; Україна, Херсон
    19 листопада
  • Україна, Remote.UA; Україна, Дніпро; Україна, Київ; Україна, Львів; Україна, Одеса; Україна, Харків; Україна, Херсон
    18 листопада
  • Україна, Дніпро; Україна, Харків; Україна, Херсон
    1 листопада
  • Україна, Remote.UA; Україна, Дніпро; Україна, Київ; Україна, Львів; Україна, Одеса; Україна, Харків; Україна, Херсон
    30 жовтня