5 вопросов Ужвалу Шарме о настоящем и будущем JavaScript

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

1. Что такое TC39?

TC39 (точнее, Технический комитет № 39) — часть ECMA, Европейской ассоциации производителей компьютеров со штабом в Швейцарии. Смысла в этом названии немного, поскольку ECMA уже давно не связана с производством железа. Зато она и TC39 как ее подразделение отвечают за стандарты работы JavaScript — языка, который большинство из нас преданно любит. У TC39 есть сайт (https://tc39.es), где мы постарались максимально доходчиво объяснить, чем именно занимаемся. Комитет уже собрал и реализовал огромное количество предложений по изменениям и дополнениям языка, и список этот список постоянно пополняется. Все дополнения и изменения в языке проходят одинаковую процедуру, включающую стадию proposal. И все эти предложения собраны в нашем репозитории.

2. У вас есть свое любимое дополнение к JavaScript?

Есть, и как вы, наверное, догадались, как раз над ним я и работал. Temporal, по-моему, нравится всем, кто с ним сталкивался. Потому что он и правда отличный. Особенно по сравнению с объектом “Date”, который в JavaScript добавили в далеком 1995 (меня даже на свете не было). Вообще-то, Date всегда был далек от совершенства, точнее, он всегда был отстойным. Правда, слова лучше здесь просто не подобрать: писать с ним код практически невозможно. Всем JS-разработчикам, которые имеют дело с датами и временем, приходится обращаться к Moment.js, Luxon.js, date-fns или другим похожим библиотекам. Temporal решает эту проблему.

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 всегда такая расслабленная и приятная.

article image


Запись IT Talk с Ужвалом Шармой, который в основном состоял из вопросов и ответов, можно найти здесь. Смотрите, чтобы узнать больше о TypeScript и декораторах, возможности статической типизации,  будущем typeof null, записях и кортежах и т. д.