Создание сайтов 💻

Почему стоит отказаться от поддержки Internet Explorer

554
15 мин.

Расстояние между Internet Explorer (IE) 11 и любым другим современным браузером становится все более похоже на бездонную пропасть. Поддержка браузера занимает непомерно много времени у веб-разработчиков, тестирование сайтов превращается в муку. Разработчики годами хотели отказаться от IE, но разумно ли это сейчас с финансовой точки зрения?

Акси Марсович
Акси Марсович
Межгалактический эксперт

Прежде всего, мы говорим о мёртвом браузере

Развитие IE завершилось в 2015 году. В качестве его альтернативы был выпущен Microsoft Edge, а сама компания Microsoft объявила, что «последние функции и обновления платформ будут доступны только в Microsoft Edge».

Бразуер Microsoft Edge

Edge был огромным скачком вперед по сравнению с IE во всех отношениях. Несмотря на это, Edge настолько сильно отставал в реализации веб-стандартов, что Microsoft недавно заявил о перестройке Edge с нуля с использованием той же технологии, что и Google Chrome.

И все же мы здесь рассуждаем, поддерживать ли устаревшего родственника Edge. Internet Explorer настолько плох, что главный программный менеджер Microsoft опубликовал статью под названием «Опасности использования Internet Explorer в качестве браузера по умолчанию» в официальном блоге компании. Этот браузер стоит на месте, а Интернет движется вперед.

Заголовки статей о «смерти» IE с 2015 года
Заголовки статей о «смерти» IE с 2015 года

Браузеры стремительно развиваются. Из самых важных нововведений, что произошли с нами с 2015 года, можно выделить следующие: во-первых, CSS Grid, позволяющий делать невероятные вещи с позиционированием элементов на странице, а во-вторых, — пользовательские свойства, призванные помочь людям отойти от пользования устаревшими препроцессорами CSS. IE11 никогда не реализует новых возможностей.

IE бьет по рукам и тянет вниз

Ландшафт браузеров также сильно изменился после того, как компания Microsoft отказалась от IE в 2015 году. Спикер компании Google Сэм Торогуд (Sam Thorogood) составил список всех функций, которые поддерживаются всеми браузерами, кроме IE. Как только будет выпущена новая версия Edge на движке Chromium, этот список увеличится еще больше. Он содержит гигантский набор функций, включая новые элементы HTML, новые свойства CSS и новые функции JavaScript.

Несмотря на то, что многие современные JavaScript-функции можно сделать совместимыми с устаревшими браузерами при помощи полифилов и  транспиляции, любая CSS-функция, появившаяся за последние четыре года, в свою очередь, никогда не будет работать в IE.

Давайте немного углубимся в возможности, которые у нас есть сегодня, и то, как на них влияет IE11. Наверное, самое примечательное, что после десятилетий адаптации верстки макетов к смелым дизайнерским решениям, у нас наконец-то появился CSS Grid, который значительно упрощает отзывчивую верстку и расположение элементов. Вместе с пользовательскими свойствами CSS, свойствами object-fit и display: contents, все они являются примерами полезных CSS функций, которые не поддерживаются в IE и в нем ваш сайт будет выглядеть сломанным или не будет отображаться вообще. Очень наглядно об этом говорилось в нашей статье «Искусство и кроссбраузерность. В чем связь?».

Хотя многие дополнения к веб-сайту за последние пять лет были связаны в основном с версткой и стилями, не стоит также забывать про огромный шаг вперед в области функциональности, например, Progressive Web Apps (PWA). PWA, простыми словами, это технология, которая добавляет сайтам возможности мобильных приложений. Прямо из браузера его можно поставить на главный экран телефона, и оно будет отправлять push-уведомления, а также получит доступ к аппаратным средствам гаджета. И все это даже при нестабильном подключении или в офлайне. На десктопе в браузере PWA остается обычным сайтом, а на экране вашего смартфона превращается в удобное приложение. Ну не магия ли?

Однако, для пользователей IE вы будете предоставлять очень скудные возможности. Поддержка IE будет все больше ограничивать выбор инструментов, которые доступны, так как библиотеки и фреймворки используют современные возможности.

Возьмем, к примеру, заявление Эвана Ю (Evan You), сделанное им во время презентации Vue 3:

Новая кодовая база ориентирована только на современные браузеры и предполагает базовую поддержку ES2015.

В кодовой базе Vue 3 используются прокси (Proxy) — функция JavaScript, которая не может быть перенесена или адаптирована для работы с IE. MobX — еще один популярный фреймворк, который также использует прокси. Оба проекта будут продолжать поддерживать обратно совместимые версии, но им не хватит улучшений производительности и приятных особенностей API, полученных от падения IE. Далее идет теневой DOM (Shadow DOM) — стандартизированная часть современной веб-платформы, которая вряд ли будет грациозно деградировать под IE.

Поддержка IE требует огромных усилий

При оценке того, сколько дополнительной работы потребуется для обеспечения обратной совместимости сайта для устаревшего браузера, такого как IE11, могут встать волосы дыбом.

Браузеры — это невероятно сложные программы. Но несмотря на то, что веб-стандарты появились еще в 1998 году, многие браузеры до сих пор с ними несовместимы. IE долгое время был самым проблемным браузером, который больше всех противоречил веб-стандартам.

Flexbox (технология, которую разработчики используют с 2013 года), например, указан на caniuse.com как имеющий частичную поддержку на IE в связи с «большим количеством ошибок».

IE также обладает самой примитивной версией DevTools и делает исправление ошибок в IE, несомненно, самой разочаровывающей частью работы любого разработчика. Это отнимает много времени при разработке веб-сервисов и веб-приложений.

Существует разница между поддержкой (когда ты визуально можешь убедиться, что все функционирует и выглядит достаточно хорошо) и оптимизацией, когда вы ставите перед собой цель обеспечить наилучшую работу из возможной. Это создает потенциально запутанную серую область и не дает четкого определения между двумя понятиями, тем более для того, что является достаточно хорошим для IE.

Этот комментарий о IE9 от Дэйва Руперта (Dave Ruppert) по-прежнему актуален:

Граница того, что считать «сломанным», является нечеткой. Насколько визуально она должна быть сломана для того, чтобы быть функционально сломанной? Я ищу дешевые решения, но это усугубляется тем, что команда контроля качества не понимает этот нюанс, дефект остается дефектом, который заносится в журнал правок и назначается на мой почтовый ящик... Будь то полифиллы, обходные if-условия, или фантомные стили; есть расходы и технические долги, связанные с работой сайта на постоянно сокращающейся ленте браузеров.

Если будет использоваться подход функциональной поддержки IE, руки веб-разработчиков будут связаны в выборе инструментов (полифилы, транспиляция и т.д) и после всего еще потребуется долгое и мучительное тестирование.

Большинство топ-сайтов отказались от поддержки IE

Большинство топ-сайтов отказались от поддержки IE

Популярные сайты, официально отказавшиеся от поддержки IE: Youtube, GitHub, Slack, Zendesk, Trello, Discord, Spotify, Behance, Wix, Huddle, WhatsApp, Google Earth и Вконтакте. Даже собственные продукты Microsoft, такие, как Teams, значительно сократили поддержку IE.

Отказ WhatsApp от поддержки Internet Explorer

Twitter показывает баннер, информирующий пользователей IE о том, что они не получат наилучшего опыта при работе с IE, и перенаправляет пользователей на старую мобильную версию сайта Twitter.

Отказ Twitter от Internet Explorer

Почему Internet Explorer используется до сих пор

Стремительное падение пользователей IE после первоначального драматического пике на данный момент замедлилось. Есть одна основная причина, по которой браузер продолжает держаться — это древние бизнес-приложения, не работающие ни в одном другом браузере. Множество крупных компаний все еще используют приложения, полагающиеся на API, которые никогда не были стандартизированы и сейчас устарели.

К счастью, новый Edge, похоже, решил эту проблему. В недавнем посте команда Microsoft Edge Team объяснила как эти компании, наконец, смогут отказаться от IE:

Команда разработала режим Internet Explorer с целью 100% совместимости с сайтами, которые сегодня работают в IE11. Режим Internet Explorer выглядит визуально так, как будто он является лишь частью нового Microsoft Edge... Используя режим Enterprise, специалисты IT могут позволить пользователям новой версии Microsoft Edge просто перейти на сайты, зависящие от IE11, и они будут работать. говорится в Twitter

После пользования бета-версии в течение нескольких месяцев, бета-тестеры утверждают, что это действительно отличный браузер. Edge является браузером по умолчанию для Windows 10. Сотни миллионов устройств до сих пор работают под управлением более ранних версий операционной системы, на которых Edge не был доступен. Новая версия на базе Chromium обеспечит поддержку как Windows 7, так и 8. Для пользователей, застрявших на старых устройствах со старыми операционными системами, больше нет оправданий для использования IE.

Другими словами, сейчас самое время отказаться от поддержки IE.

Расходы на производительность

Все современные браузеры поддерживают ECMAScript 2015 (последняя версия JavaScript) и делают это уже довольно давно. Транспиляция (перевод JavaScript в более старую (и медленную) версию ECMAScript) все еще распространена в отрасли, но на данный момент необходима только для Internet Explorer. Этот процесс, позволяющий разработчикам писать современный синтаксис, который до сих пор работает в IE, отрицательно влияет на производительность. Филип Уолтон (Philip Walton), инженер Google, высказался по этому поводу:

Большие файлы требуют больше времени на загрузку, но они также требуют больше времени на разбор и оценку. При сравнении двух версий с моего сайта, время разбора/сравнения было примерно в два раза дольше для старой версии. [...] Стоимость поддержки множества ненужных JavaScript для низкопроизводительных мобильных браузеров может быть значительной! Мы (в команде Chrome) видели многочисленные случаи раздувания файлов, добавляющих секунды к общему времени запуска сайтов на маломощных мобильных устройствах.

Чтобы обойти эту проблему, можно использовать различный подход к обслуживанию, но это добавляет небольшую сложность ограничения в  выборе инструментов. Я не уверен, что стоит беспокоиться, когда смотришь на всю картину того, что уже требуется для поддержки IE.

Еще один пример: IE требует большого количества полифилов, если вы собираетесь использовать современные API. Обычно это подразумевает отправку дополнительного, ненужного кода другим браузерам в процессе работы. Альтернативный подход, сервис polyfill.io, который принимает запрос для набора функций браузера и возвращает только полифилы, необходимые запрашиваемому браузеру. И тот, и другой подход плохо сказываются на производительности.

Что касается CSS, то современные возможности, такие как CSS Grid, уменьшают потребность в громоздких фреймворках, например Bootstrap. Благодаря другим современным свойствам CSS можно заменить ту часть работы, что традиционно делается при помощи JavaScript. Такой способ менее хрупок и более производителен. Однако, из-за поддержки IE придется использовать методы, которые не выгодны как с точки зрения производительности, так и с точки зрения затрат времени.

Давайте поговорим о деньгах

Опираясь на вышесказанное, смело можно утверждать, что время, потраченное разработчиками на исправление ошибок IE и поддержка производительности мертвого браузера, значительно превысит доход, который вы планируете получить от пользователей сайта.

Если, конечно, вы не являетесь крупной компанией, получающей значительный доход от IE, это простое решение. Для больших корпораций ставки намного выше. Веб-сайты в масштабах Amazon, например, могут генерировать десятки миллионов долларов от пользователей IE, даже если они составляют менее 1% от общего трафика.

Статистика по различным бразуерам
Источник statcounter.com

Всё же любой сайт такого масштаба принесет больше пользы за счет снижения поддержки, благодаря сокращению времени загрузки и скорости работы, которые важны для дохода компании. Для крупных компаний вопрос не в том, стоит ли тратить немного дополнительного времени на разработку, чтобы обеспечить обратную совместимость. Вопрос заключается в том, рискуете ли вы ухудшить работу подавляющего большинства пользователей, снизив производительность и возможности, предоставляемые современными функциями. Не давая разработчикам стимула заботиться о новых технологиях, вы удерживаете их от инноваций и создания лучшего продукта, на который они способны.

Это очень ценный опыт для разработчиков, которые настолько любопытны и любознательны, что изучают и идут в ногу с новой технологией. Поддерживая IE, вы фактически ограждаете разработчиков от всего нового.

Используя новейшие технологии, вы улучшаете опыт разработчиков, давая им возможность увеличить свою производительность и даете им возможность поставлять продукт для лучшего пользовательского опыта, нежели чем IE.

Веб-разработка трудна

Ранее в 2019 году сообщалось, что компания Hertz, занимающаяся прокатом автомобилей, подала в суд на Accenture на десятки миллионов долларов. Accenture — это компания из списка Fortune Global 500 стоимостью в миллиарды долларов. Тем не менее, Hertz утверждал, что, несмотря на заоблачные ценники, они «никогда не доставляли функциональный сайт или мобильное приложение».

Как писали в The Register:

Одно из самых нелепых обвинений в поданном Hertz иске заключалось в том, что Accenture не поддерживала отзывчивый дизайн... Несмотря на то, что Accenture задержала проект на пять месяцев, множества багов в коде, компания сказала Hertz, что для завершения проекта потребуется дополнительно $10 млн, помимо $32 млн, которые уже были оплачены.

Дело Accenture /Hertz — пример потрясающей неумелости, но оно также является ярким напоминанием того, что веб-разработка сложна. Тем не менее, большинство компаний не в состоянии воспользоваться тем, что сделает ее проще. Microsoft, Google, Mozilla и Apple не просто так вкладывают огромные средства в разработку новых функций браузера. Улучшения и инновации, которые пришли в браузеры в последние годы, расширили то, что можно доставить на веб-платформу, одновременно упрощая жизнь разработчиков.

Двигайтесь быстро и думайте о будущем

Индустрия разработки любит такие термины, как «гибкий» и «пробивной», которые подразумевают легкие инновации. Однако вместо того, чтобы сконцентрироваться на функциях создания великолепных возможностей для подавляющего большинства пользователей, мы используем один устаревший браузер.

Все компании постоянно сталкиваются с поддержкой технически устаревшего кода. Устаревший код это нечто, замедляющее веб-разработку и тянущее вас назад. Не имея возможности воспользоваться тем, что предлагают современные браузеры, код, который мы пишем сегодня, является устаревшим кодом в тот момент, когда он написан.

Для современного интернета важно не только повышать производительность сегодня, но и создавать такой код, который легче поддерживать в будущем. С точки зрения долгосрочной перспективы, это правильное решение.

Реальность кросс-браузерного тестирования

Привлечение и удержание

Конечно, счастье разработчика не рассматривается некоторыми заинтересованными компаниями как важный фактор при разработке готового продукта. Тем не менее, найм хороших специалистов, как известно, является сложной задачей.

По сравнению с другими отраслями, уровень компетенции разработчиков невысок. Но ничто не может навредить моральному духу больше, чем дни отладки IE.

В проведенном Mozilla опросе 76 118 разработчиков указали, что «поддержка определенных браузеров (например, IE11)» — самое разочаровывающее в веб-разработке. «Адаптация или удаление функции, которая не работает в разных браузерах» стоит на третьем месте, в то время как тестирование в разных браузерах заняло четвертое место. Решение прекратить поддержку IE позволит свести к минимуму эти разочарования и поможет в подборе и удержании специалистов.

Реальность кросс-браузерного тестирования

Если ваш сайт проходит тщательный и строгий кросс-браузерный процесс тестирования, который постоянно дополняется и дорабатывается, то это дорогого стоит. Сейчас это большая редкость. Многие компании тестируют свои продукты только в Chrome, так как не хотят тратить времени на сложное и медленное кроссбраузерное тестирование. Возможно, можно упростить этот процесс и отказаться от поддержки IE, так как устранение всех ошибок в популярных браузерах гораздо выгоднее в денежном выражении.

Когда вы планируете отказаться от поддержки IE?

Несомненно, ваша собственная аналитика будет определяющим фактором в том, является ли разумным для вас отказ от поддержки IE. Использование данного браузера сильно варьируется по всему миру — от почти 10% в Южной Корее до значительно ниже одного процента во многих других странах. Даже если, вы считаете что для вас слишком рано отказываться от поддержки IE в угоду новым технологиям, то в конце концов, ваш сайт/сервис/приложение, медленное, как кит, будет вытеснено и выброшено на берег более быстрыми и производительными конкурентами.

Первоисточник

Похожие статьи

Продающий текст для сайта
Создание сайтов 💻
460
8 мин.
Если у вас современный сайт с качественным продвижением, а заявок поступает мало, возможно опубликованный текст никого не цепляет. В этой статье мы поговорим о значи...
Какой сайт лучше продает?
Создание сайтов 💻
410
7 мин.
В этой статье мы расскажем про коммерческие факторы сайтов, которые напрямую влияют на их ранжирование в естественной поисковой выдаче, особенно в Яндексе (алгор...
Создание сайтов: плюсы и минусы популярных CMS
Создание сайтов 💻
888
10 мин.

В данной статье мы с нашими программистами сделали подборку топовых CMS на рынке интернет-маркетинга. Описали их плюсы/минусы, примерн...

Что выбрать, эксклюзивную или шаблонную разработку сайта?
Создание сайтов 💻
618
6 мин.

Есть три типа разработки сайта. Что выбрать, какие плюсы и минусы в каждом из вариантов, об этом мы вам сейчас и расскажем.