Рассуждения
July 23, 2021

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

Предисловие

Я очень большой противник Internet Explorer. Всегда был таким, но к началу 2021 года стал ещё большим (хотя, казалось бы, куда уж).

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

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

Почему нам стоит отказаться от поддержки IE?

Коллеги, в конце прошлого года я понял, что хочу поднять одну важную тему, а именно — прекращение поддержки нашими сервисами отчётов браузера Internet Explorer, всех версий, даже 11. Если ещё год назад это можно было бы назвать «прихотью» фронтендеров, то сейчас это уже гораздо ближе к объективной необходимости.

Прежде всего, стоит обозначить, что такое «прекратить поддержку». В моём понимании это значит следующее: сервисы доступны в браузере, пользователь может взаимодействовать с ними на своё усмотрение, однако, в случае возникновения проблем мы не гарантируем их решение конкретно под этот браузер. Если коротко: хотите работать в IE — пожалуйста, но мы не гарантируем, что всё будет работать правильно.

Для прекращения поддержки есть много причин и аргументов, связанных как с пользователями, так и с нами (разработчики и бизнес). Я приведу самые критичные на мой вгляд:

  1. Для пользователей: безопасность
    В IE бесчисленное количество дыр безопасности, которые постоянно закрываются патчами разного уровня качества и забагованности. Последняя из них была обнаружена в августе 2020 года, и была довольно критичной (ссылка).
    Мы можем быть уверены, что это не всё. До сих пор Microsoft выпускала обновления безопасности, однако, в скором времени они полностью прекратят его поддержку, а именно — 17-го августа этого года.
    Уязвимости позволяют делать много «весёлого»: от кражи куков и данных карт до выполнения произвольного кода в контексте пользователя. К сожалению, мы тут ничем не можем помочь пользователям, ведь даже те патчи, которые выпускаются, устанавливают далеко не все.
  2. Для пользователей: юзабилити
    Наши панели отчётов использую большое количество стилизаций и фронтовой логики. На поддерживаемых JS-движках, вроде V8, SpiderMonkey, JavaScriptCore это не создаёт проблем, однако на движке Chakra, который используется в IE, возникают проблемы со скоростью работы. Если мы не готовы отказаться от интерактивности и перейти целиком на статику, мы не можем это изменить, никакие оптимизации это не изменят.
  3. Для пользователей: отказ от поддержки другими компаниями
    В 2021 году, помимо прекращения поддержки самого IE, его перестанут поддерживать сервисы Microsoft и Google. Речь, конечно, не про поиск, но про Gmail, Google Forms и прочие решения. YouTube уже отказался от поддержки IE (ссылка). Microsoft Teams, а также офисные пакеты, также прекратят поддержку IE в этом году (ссылка).
  4. Для нас: скорость релизов
    Новые фичи появляются у нас достаточно часто, и, естественно, мы должны поддерживать и Explorer. Часто в нём не работают кажущиеся очевидными вещи, которые должны работать даже в IE6. На «раскопки» уходит много времени, плюс ещё затраты на поиск фоллбэк-решения.
  5. Для нас: генерация лишних задач
    Немного связано с предыдущим пунктом. Часто возникают сверхсрочные задачи, суть которых в том, что какой-то простейший отчёт внезапно перестаёт работать в IE11. Использование IE уже ничем не оправдано из-за его небезопасности, о которой трубят все, и громче всех — Microsoft. Но мы не можем оставить клиента без оплаченной услуги, хоть и не хочется поощрять беспорядочные интернет-связи. Тем не менее, такие задачи действительно довольно срочные, и связаны с переключением внимания от других срочных.
  6. Для нас: стагнация
    Пожалуй, самый незначительный пункт, который я всё-таки хочу написать. Огромное количество легаси-кода, написанного в старом синтаксисе, усложняет любую задачу. Каждое изменение требует длительного тестирования и связывания рук самим себе. Нам недоступен новый синтаксис, нам недоступно развитие языка, а следовательно — мы неконкурентны, как профессионалы и сервис. Скиллы изящной деградации или прогрессивного улучшения важны, но применять это к Explorer потихоньку становится бессмысленно.

Это шесть причин, которые мне кажутся самыми важными.

Теперь я хотел бы рассказать, как я вижу само “прекращение поддержки”. Само собой, оно будет разделено на несколько этапов.

  1. 1 марта 2021 г.
    В сервисах для пользователей IE мы показываем уведомление, что с 1 июня мы прекращаем поддержку IE. Можно приложить ссылку на объяснение, что это значит и почему так происходит. Получается, что мы дадим пользователям 3 месяца на то, чтобы адаптироваться к чему-то другому. В середине марта как раз будет прекращена поддержка сервисов Google, и первый “удар” уже успеет ощутиться.
  2. 1 июня 2021 г.
    В сервисах для пользователей IE мы показываем уведомление, что браузер не поддерживается. Мы не принимаем от клиентов задачи по “съехавшей” вёрстке, исправляя только критические white-screen баги, то есть, когда контент не виден вовсе.
  3. 1 сентября 2021 г.
    Сервисы более не приспосабливаются для работы в IE. Все задачи от клиентов, связанные с совместимостью с ним, не принимаются.

На первый взгляд, такие действия могут показаться жёсткими (или жестокими), однако, как мне кажется, мы даём предостаточно времени для поиска другого решения.

Единственная проблема, которую я вижу — недовольство клиентов. К примеру, <коллега> мне как-то говорил, что в некоторых организациях “не разрешено ничего, кроме IE”. Прежде всего, хочу сказать, что это решение выглядит очень странным, и, честно говоря, неправдоподобным. Я знаю, что на гос- и окологоскорпорациях сейчас полным ходом идёт “импортозамещение”, и на многие компьютеры устанавливается Astra Linux, в котором IE нет и в помине. Там, где этого не происходит, ограничений на браузеры нет, особенно если речь про один из четырёх самых известных.

Если же это не так, то поддержка Windows 7 закончилась в январе 2020 года, а для более новых версий ОС есть Microsoft Edge, к которому никаких претензий нет. Для топ-менеджмента на устройствах Apple есть Safari.

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