Мы видели это на JSConf Budapest 2017.

Будапешт - красивый город с бурной ночной жизнью и множеством пабов почти на каждой улице. У меня была возможность посетить его в этом году на JSConf. Конференция проходила в кинотеатре «Урания» в центре города - прекрасном историческом здании в стиле венецианской готики. Красивый интерьер здания в сочетании с технологической атмосферой мероприятия создавали необычайно волшебное ощущение.

JSConf Budapest - идеальное место для посещения, если вы ищете последние тенденции ванильного JS и хотите получить некоторые знания о предстоящих функциях. Но вы также должны это учитывать, если вопрос о конкретных фреймворках для вас не самый главный. В этом году мы увидели множество блестящих презентаций по таким вопросам, как Native Observables, Многопоточность, Прокси, WebAssembly и WebRTC. В следующих абзацах я расскажу, что происходит в мире JS по мнению спикеров # JSConfBP.

Современный взгляд на известные проблемы

Мы знаем парадигму функционального реактивного программирования и множество реализаций Observables, таких как RxJS, Cycle.js или Bacon.js . Стефан Юдис со своим Смотри себе в спину, Браузер! За вами наблюдают , показал нам, что Observables скоро будут доступны в виде собственных интерфейсов (предложения TC39). Мы также видели IntersectionObserver, MutationObserver и ResizeObserver. Половина из них уже совместима с современными браузерами - посмотрите здесь. Мы также собираемся получить новый API для измерения производительности с помощью PerformanceObserver.

Асинхронные шаблоны для масштабирования вашего многоядерного JavaScript… элегантно. Джонатан Мартин рассказал нам о множестве возможностей сделать нашу многопоточность без require ('cluster' ), но с использованием задач на ядро ​​с рабочими кластерами Web, async IFFE и управлением параллелизмом с помощью функционального программирования. Это делает Javascript мощным инструментом для создания одновременных многоядерных приложений. Для многоядерности вы можете дополнительно использовать WebAssembly и RxJS для улучшения взаимодействия между потоками.

Следующий докладчик - Дэн Каллахан представил Practical WebAssembly, который является прямым преемником asm.js и поддерживает открытый стандарт. всеми основными браузерами. Это новая возможность низкоуровневого программирования для JS с двоичным форматом, которая может создавать новые гибридные проекты WASM + JS в будущем - если вы знаете C / C ++, вы можете проверить это сейчас: просто переведите исходный код в WebAssembly от WASMExplorer - который, вероятно, работает на Binaryen, который вы сможете использовать для целевой компиляции. В качестве запасного варианта вы можете использовать более старый asm.jsEmscripten - мой любимый порт QuakeJS сделан таким образом). Наконец, Дэн показал нам совершенно неожиданное использование Dosbox в браузере, включив Windows 3.11 с ностальгическим Netscape. И все это работало просто в браузере!

Из следующего выступления Никиты Бакаляра - Изучение мира P2P с помощью WebRTC и JavaScript мы узнали, что:

WebAssembly + WebRTC = ❤

В первую очередь, это идеальное решение для распределенных вычислений, а значит, не только для аудио и видео. Это дает возможность передавать данные и повторно децентрализовать форму BitTorrent с помощью Data Channel API.

Вышеупомянутые API-интерфейсы, вероятно, заложат будущие основы для сегментов приложений нового поколения, - цитирую моего любимого писателя Уильяма Гибсона с его бессмертной мыслью:

Будущее уже наступило - просто оно распределено не очень равномерно *.

Мы живем во времена бесконечных преобразований, возможностей и выдающихся открытий. Поэтому просто наслаждайтесь и откройте для себя свой «Дивный новый мир»!

(*) Интересный факт: в 80-х автор использовал термин «ICE» («Электроника противодействия вторжению»), но в совершенно другом контексте. В нашем мире это «установка интерактивного подключения» - метод поиска другого компьютера для P2P-сети с помощью WebRTC.

Если вам понравился этот пост, нажмите кнопку хлопка ниже 👏👏👏

Вы также можете подписаться на нас в Facebook, Twitter и LinkedIn.