Существует тенденция к тому, чтобы предпочитать браузер Firefox, особенно программисты и знающие люди, из-за того, что Chrome все чаще выступает против конфиденциальности, но идет ли Firefox в ногу с современной сетью?
Как разработчик, вынужденный по обстоятельствам использовать многие из «новейших» функций веб-разработки, я особенно чувствителен к тому, что работает, а что нет. Недавно я пришел к выводу, что во множестве мелких вещей Chrome опережает Firefox. Конечно, быть объективным непросто, так как выяснить, какой браузер поддерживает какие расширенные функции, непросто. Firefox 69 — это последний выпуск, и его список новых функций также фокусирует внимание на том, что еще не вошло в код — если вообще когда-либо.
Вы можете подумать, что HTML5 / CSS и даже JavaScript теперь достаточно устоялись, чтобы ожидать лишь небольших изменений и дополнений, если таковые имеются. В случае HTML и CSS это кажется правдой. Добавлены два новых свойства для обработки переполнения и расширение @supports для проверки селектора. Не совсем большой шаг вперед — и я считаю, что это хорошо.
Когда дело доходит до JavaScript, все не так уж и мало. Главная претензия к славе в этом обновлении — добавление полей общедоступных экземпляров. Если бы вы спросили меня, я бы сказал, что Chrome и Firefox уже поддерживают все варианты экземпляров static v и public v private в синтаксисе класса, но нет. Я должен признать, что мое незнание текущего состояния состоит в том, что я предпочитаю не использовать синтаксис класса. Зачем мне использовать JavaScript, как если бы это была Java или какой-то другой язык более низкого качества? Тем не менее, для тех, кто хочет сделать вид, что они все еще в Канзасе, извините, Java, я предположил, что этот элемент TC39 был реализован. Как оказалось, Chrome по умолчанию включен только в версии 74 / V8.4 (апрель 2019 г.), а Firefox только что добавил поля общедоступных экземпляров в этом выпуске. Переменные частного экземпляра все еще работают. Мелочь, но хорошая причина использовать Chrome, если вы пытаетесь продвинуться вперед.
Добавление Resize Observer API — хорошая новость, так как он позволяет вам подключаться к изменениям размера содержимого элемента или рамки. Хорошие новости, но Chrome поддерживает его с версии 64 в начале 2018 года.
API Microtasks — это своего рода специализированный инструмент. Сколько программистов на JavaScript знают, что существуют микрозадачи? По сути, он позволяет добавлять любое определение функции в очередь микрозадач. Поскольку очередь микрозадач опорожняется перед перезапуском основного четного цикла, вы можете видеть, что это очень полезно, если вы пытаетесь выполнить точное упорядочение. Отлично, но в начале 2018 года он снова был включен в Chrome по умолчанию.
Есть много примеров, когда у Chrome есть последняя версия, а Firefox догоняет. В некоторых случаях нет даже информации о том, когда эта функция может появиться. Самым важным, вероятно, является отсутствие поддержки 2D-графики в OffscreenCanvas — Firefox, похоже, поддерживает ее, но только в режиме WebGL. Именно такая задержка означает, что вы, вероятно, увидите, что «лучше всего работает в Chrome».
После стона приятно видеть, что инструменты разработчика становятся лучше. Firefox теперь поддерживает удаленную отладку, точки останова прослушивателя событий и пошаговое выполнение через асинхронные функции.
Почему Firefox тормозит? Google может бросить на Chrome только количество разработчиков? Может ли Mozilla лучше расходовать свои ресурсы, сосредоточившись на поддержке основных стандартов, а не на реализации настроек пользовательского интерфейса, принудительной интеграции Pocket для пользователей, выработке рекомендаций на основе использования и т. Д. Ориентируйтесь на разработчиков, иначе разработчики перестанут нацеливаться на вас.
Доля рынка Firefox сокращается, и, перефразируя Стива Балмера, ему нужны разработчики, разработчики, разработчики …
Ян Эллиот — автор книги «Просто JavaScript: идиоматический подход»; JavaScript Async; Просто jQuery: Core UI и Just jQuery: Events, Async & AJAX, которые являются частью библиотеки I Programmer Library, опубликованной I / O Press.