Аннотация:
За долгую историю развития Интернета основным языком программирования в веб-разработке был JavaScript. Благодаря простому синтаксису и поддержке во всех популярных браузерах язык обрел боль-шую популярность среди разработчиков. Однако с развитием компьютерных мощностей и требований пользователей простые сайты переросли в веб-приложения, являющиеся полноценными аналогами десктопных приложений. С ростом возможностей выросли и требования к производительности таких программ. В браузерных движках появились способы оптимизация запускаемого кода, а активная конкуренция между браузерами способствовала качественному приросту производительности. Несмотря на все способы увеличить скорость исполнения JavaScript кода главным стоп-фактором была динамическая типизация языка. Из-за динамической типизации движку браузера необходимо каждый раз при выполнении программы проверять, является ли переменная целым числом, float или любым другим допустимым типом. Таким образом, каждая инструкция в JavaScript должна пройти через несколько проверок типов и преобразований, что замедляет ее выполнение. В связи с этим появилась идея использовать языки со строгой типизацией, что могло бы компенсировать данный недостаток. Но браузерные движки не способны выполнять код других языков, поэтому появилась технология под названием WebAssembly. Она позволяет писать код на языках со статичной типизацией и после парсит его в более нативный и приближенный формат для машин, что значительно ускоряет выполнение программ по сравнению с JavaScript. Технология является кроссплатформенной и поддерживает основные языки программирования: C++, C, Java, C#. Также реализован вызов WebAssembly с помощью JavaScript, что позволяет использовать лаконичный синтаксис JavaScript и вычислительные мощности WebAssembly вместе.
Ключевые слова:веб-технологии, JavaScript, WebAssembly, производительность, браузер, скорость работы приложения.
УДК:
004.4'416
Поступила в редакцию: 07.03.2023 Принята в печать: 19.04.2023