WebAssembly и эволюция разработки веб-интерфейса

Javascript на протяжении многих лет играл очень важную роль в формировании веб-разработки. Он настолько развился, что теперь используется для написания программных решений, отличных от браузерных приложений. Он также был адаптирован для написания серверных приложений и машинного обучения. Действительно, в настоящее время JavaScript стал очень популярным и мощным. Однако по мере развития javascript разработка веб-интерфейса все еще находится на ранней стадии.

Инновационный голод

Веб-браузер существует уже около 30 лет. Однако улучшение взаимодействия с пользователем в веб-приложениях началось совсем недавно. Это началось только тогда, когда появились смартфоны и стали доминировать на рынке. Внезапно был представлен HTML5, и одностраничные приложения или (SPA) завоевали веб-браузер. Кроме того, за это время ECMAScript, наконец, представил ES6, который предоставил современные функции для реализации javascript. Библиотеки и фреймворки JavaScript, такие как ReactJS, Angular, Vue и другие, появились повсюду. Но почему нам потребовалось время, чтобы сделать эти инновации? Почему нам нужно ждать появления смартфонов и планшетов, чтобы реализовать эти потребности?

Кто-то пытался внедрить инновации, но потерпел неудачу

Подобные инновации были сделаны много лет назад, чтобы помочь разработчикам создавать современные и отзывчивые веб-приложения без javascript. Примечательно, что Sun Microsystems создала и разработала Java для запуска апплетов в браузере, чтобы улучшить взаимодействие с пользователем. Кто бы мог забыть Microsoft Silverlight и Adobe Flash, которые были созданы для создания многофункциональных интернет-приложений. Но, в конечном счете, у них есть одна общая черта: все они потерпели неудачу, потому что они не являются естественной частью браузера по сравнению с javascript. Вам необходимо установить среду выполнения, чтобы запускать приложения такого типа в браузере. По какой-то причине некоторые браузеры перестали его поддерживать, особенно на мобильных телефонах.

Почему одного JavaScript недостаточно?

При работе с машинным обучением, разработкой API и разработкой игр вы можете выбрать нужные инструменты и язык программирования. Однако в веб-браузере есть только javascript. Javascript хорош, но не лучший. К сожалению, это единственное, что у нас есть. В javascript много подводных камней и странностей. Достоинства и недостатки javascript широко обсуждаются в книге Дугласа Крокфорда «Хорошие стороны JavaScript». Несмотря на то, что ES6 пытался решить эти проблемы, пока не все браузеры его поддерживали. Поэтому разработчики полагались на транспиляторы. Транспиляторы читают коды, написанные на ES6, и выдают javascript, который гарантированно работает везде, даже в некоторых старых браузерах. Вы также можете использовать другие языки программирования, чтобы писать более качественные коды, и снова использовать транспиляторы для преобразования их обратно в javascript. Однако браузер не знает этих языков, это всего лишь фасад. Попробуйте отладить свой код из браузера, и вы будете удивлены. Было бы здорово, если бы однажды у нас появилась возможность создавать приложения в браузерах, где такие языки, как C#, Java, C++ и ваши любимые языки программирования, могли бы запускаться и отлаживаться в браузере. Просто скомпилируйте его в машинный код, и браузер сможет выполнять его быстрее без каких-либо сторонних сред выполнения. Вам не нужно использовать транспиляторы и другие инструменты, такие как webpack, grunt и gulp, для запуска ваших кодов в браузере, которые, я думаю, являются просто хаками и обходным путем, чтобы заставить работать javascript. И все же у вас есть возможность использовать javascript. Это означает, что разработка будет легче и проще. Вы можете использовать один язык для создания своего приложения. Вы можете писать более качественные и эффективные коды, потому что большинство функций, которых нет в javascript, уже встроены в другие языки.

WebAssembly в помощь

В 2015 году WebAssembly впервые была анонсирована публике. Доказана возможность запуска приложения, написанного на языке, отличном от javascript. И да, все были поражены. Это как сбывшаяся мечта. Ему не нужна сторонняя среда выполнения. Игра, полностью написанная на Unity3D, была скомпилирована для работы с WebAssembly в двоичном формате. Он может выполняться в браузерах с производительностью, близкой к собственному коду. Это открыло множество возможностей для разработки приложений в браузере. Разработчики, не имеющие опыта веб-разработки, теперь могут писать приложения, работающие в браузерах. Им даже не нужно быть экспертом в CSS, HTML или javascript. WebAssembly очень перспективен, и сейчас его поддерживает большинство браузеров. Он все еще очень молод, и впереди еще много работы, чтобы сделать его лучше. Одним из самых интересных является Blazor WebAssembly. Это платформа для создания одностраничных приложений с использованием C#, созданная Microsoft. Это платформа с открытым исходным кодом, в которой вы можете использовать и создавать компоненты .Net Core для своего приложения и запускать его в браузере. Раньше вы могли использовать только javascript для создания приложений такого типа. Я почти уверен, что с этим нововведением появится еще несколько технологий и фреймворков, использующих другой язык программирования. Нас ждет довольно захватывающее будущее, не так ли?