80LevelElf about IT Записи Мои проекты Обо мне
К вебу я отношение имею, хотя чаще всего наблюдаю со спины (я – бекенд-разработчик). Но с большим интересном наблюдаю революцию, что зарождается в вебе, который видят пользователи (фронтенд). А именно – WebAssembley. **Что такое** **WebAssembley****?** Это новый формат для выполнения кода на стороне клиента (то, что сейчас делает JavaScript). Внутри – это бинарный формат, в котором передается [абстрактное синтаксическое дерево](https://ru.wikipedia.org/wiki/WebAssembly). Ближайшая аналогия – байткод виртуальной машины типа JVM или .Net, в который компилируется программа. Соответственно на стороне клиента (в браузере) будет реализована виртуальная машина, в которой этот код будет исполняться. Судя по тому, что в разработке участвуют Google, Mozilla, Apple и Microsoft – поддержка со стороны всех известных браузеров гарантирована. Для работы в браузерах без виртуальной машины WebAssembley, бинарный код будет транслироваться в JavaScript. Так же в разработке принимает участи сам [Брендан Айк](https://ru.wikipedia.org/wiki/%D0%AD%D0%B9%D1%85,_%D0%91%D1%80%D0%B5%D0%BD%D0%B4%D0%B0%D0%BD) (создатель JavaScript), что тоже очень символично. Из плюсов WebAssembley: 1. Файлы мало весят – увеличиться скорость загрузки. 2. Файлы очень быстро распарсиваются (23 раза быстрее в текущей реализации, чем JS). 3. WA-код выполняется куда быстрее JS. И на этом в общем-то можно было бы остановиться, но осталась самая главная фича: 4. В WA-код можно будет транслировать код из любого языка. **Конец** **JavaScript****?** Нет, вы правда понимаете, как это круто? На данный момент заявлена поддержка C / C++ и API для взаимодействия с JS-кодом. В прочем, если дело пойдет (а оно, судя по всему, пойдет), то трансляторы из C#, Java, Python (основные языки веб-бекенда) не заставят себя долго ждать. Как-то я писал статью [«С какого языка программирования начать?»](http://80levelelf.com/Post?postId=2), где описал проблемы всех новых модных языков программирования: нет инфраструктуры (библиотек и т.д.) и мало специалистов. Все вместе ведет к тому, что рынок нового модного ЯП тоже получается очень маленьким. А посмотрите на WebAssembley: - Вы будете иметь доступ как минимум ко всем библиотекам на JS, а того и гляди – вообще на все, что написано на языке, для которого есть транслятор. - Уже есть куча людей, которые знают C++, C#, Java, Python и тд. Как бы меня не критиковали адепты JS, он всегда был занозой в заднице. Тем, с чем приходиться мириться, изворачиваться. Посмотрите на кучу фреймворков, основное назначение которых – помочь вам абстрагироваться от голого JS и прожить счастливую жизнь. Я уже не говорю о различных подмножествах JS типа TypeScript, которые вынуждены конвертироваться в JS. JS – не проектировался для того, для чего он используется. А WebAssembley, во-первых, даст выбор языка программирования (зачастую, более удачный, чем JS), во-вторых значительно ускорит само выполнение. Для фронтенда можно будет спокойно использовать те же языки, что и для бека, совмещать код и многое другое. Произойдет тоже, что и с Node.js, только в обратную сторону. Так умрет ли JavaScript? Ну не думаю, если честно. И не так, чтобы сразу. Так как: 1. Уже куча людей знает JavaScript. 2. Рынок переполнен различными JS-библиотеками и тд, которые заточены под фронтенд. 3. В конце концов, не трудно предположить, что, если дело пойдет, транслятор из JS в WA будет так же создан. Другое дело в том, что JS перестанет быть перспективным. В конце концов, если куча всего того, что написано на JS станет доступно через другие языки, а людей, знающих эти языки, будет в общем-то полно, то какой смысл использовать сам JS? Зачем начинать на нем проекты? Если вы пишите свой блог (про ваше хобби – разведение золотых рыбок) на Django (в конце концов WordPress'a явно недостаточно для воплощения всех ваших задумок), то есть используете Python, то зачем вам на стороне клиента писать на JS? Конечно, вы будете писать на Python. Если какая-то компания хочет начать большой энтерпрайз проект, бекенд которого написан на Java, то зачем им писать фронтенд на JS? Конечно, за фронтенд будут отвечать другие люди, нежели чем за бекенд, но, во-первых, им куда проще будет взаимодействовать (и использовать общей код), а во-вторых, конечно же, Java куда более подходит в плане стабильности и качества кода для такого проекта. **А чего это я радуюсь? Я что ли вебщик?** Ну это просто круто, ведь образуется новый огромный рынок, а веб и правда шагнет вперед. Поэтому почему бы мне не радоваться? Как раз-таки те, кто сейчас связан с JS больше всего не рад (и вероятно найдет множество причин почему WA не выстрелит), ведь куча людей потратили кучу времени на это все, а теперь это становиться неактуальным (а значит, не прибыльным). На разных известных языках видимо будут реализованы свои библиотеки для создания клиентского кода (предположу, что многие из них будут идти вместе с фреймворками типа Asp.net, RoR, Django) со своими концепциями и идеями, связанных с используемыми языками.
(21.11.2016)

blog comments powered by Disqus