На прошлой неделе компания Adobe заявила, что к 2020 году прекратит поддержку Flash. В каком-то смысле это даже неожиданно: мне до сих пор иногда попадаются страницы, на которых он требуется, да и среди разработчиков ПО у него еще остаются сторонники. Но если посмотреть с другой стороны, все к тому шло. Нередко уход технологии можно предсказать заранее, если отслеживать статистику по ее использованию в IT-сообществе. Один из самых известных источников подобной информации — наш инструмент Stack Overflow Trends, и он показывает, что частота появления вопросов о Flash пошла на спад еще в 2010 году:
Такой неожиданный перелом в судьбе Flash позволяет заключить: расхожее мнение, что Apple погубил Flash, когда в 2010 году принял решение не поддерживать его на iPad, возможно, в чем-то соответствует действительности.
Раз у нас была возможность предугадать кризис Flash, давайте привлечем больше данных со Stack Overflow, чтобы понять, какие еще технологии сейчас на спаде.
Кто же следующий на вылет?
В последние десять лет у Flash хватало защитников (вот небольшая историческая справка), хотя то, что его все меньше и меньше используют в разработке, бросалось в глаза уже в 2011 году. Может, есть и какие-нибудь другие технологии, которые на первый взгляд еще живы-здоровы, но в последнее время начали сдавать позиции?
Чтобы ответить на этот вопрос, мы проанализировали вопросы, которые задавали на Stack Overflow в соответствующий временной промежуток — данные брались из все того же Stack Overflow Trends. Мы отслеживали тенденции за последние пять лет (чтобы включить в исследование и те тэги, которые были на подъеме, дошли до пика и пошли на спад) и делали замеры скорости падения популярности для каждой из отобранных технологий. Вся использованная информация находится в открытом доступе (вы можете скачать ее при помощи этого запроса), так что с интересом послушаю, к какими выводам придут другие разработчики.
Мы считали, что интерес к технологии угасает, если количество вопросов, связанных с ней, сокращалось в среднем на 10% в год. Если принять этот критерий, какие технологии быстрее всего теряют пользователей?
Начиная с 2010 в этом отношении лидируют тэги Flex (фреймворк для веб-приложений на базе Flash) и Silverlight от Microsoft. Тот и другой теряют позиции куда быстрее, чем Flash; Flex в особенности стал очень резко сдавать после того, как достиг пика популярности в 2010 году. Число упоминаний обеих технологий на сайте сократилось на два порядка.
Одна из них уже отходит в прошлое: в 2015 году компания Microsoft сообщила о своем намерении прекратить поддержку Silverlight к 2021 году. Flex, строго говоря, поддерживается до сих пор (только начиная с 2011 им занимается уже Apache Foundation, а не Adobe), но учитывая, что Flash списали со счетов и что Flex все реже фигурирует в вопросах разработчиков, сложно назвать его технологией, у которой есть будущее.
Среди других популярных технологией (то есть таких, которые собрали не меньше 100 000 вопросов за период с 2010 года по сегодняшний день) есть и другие претенденты, популярность которых заметно уменьшилась. Частота появления вопросов о ASP.NET, веб-фреймворке от Miscrosoft, стабильно падала с момента основания ресурса. Здесь стоит учитывать то обстоятельство, что на ранних этапах существования сайта в его аудитории преобладали разработчики на C#, однако причина может крыться также и в том, что Microsoft играет все менее значимую роль в веб-разработке.
Регулярность публикации вопросов о Ruby on Rails набирала обороты вплоть до 2011 года, а затем понемногу стала сокращаться. Objective-C тоже на спаде, так как на смену ему как любимому языку разработчиков на iOS пришел Swift. Аналогичным образом тэги «iphone» и «ipad» вытеснил общий тэг «ios» для вопросов о мобильной платформе Apple (мы подробнее разбираем эти тренды в посте о разработке мобильных приложений).
На этом список технологий, которые быстро сдают позиции, не заканчивается. Perl уже давно страдает от недостатка внимания (хотя, справедливости ради, если смотреть по месяцам, он все-таки собирает больше вопросов, чем совсем уже мертвые тэги вроде Flash или Flex). Максимум вопросов о платформе для разработчиков от Facebook пришелся на 2012, с тех пор их стабильно становится меньше. Количество постов о среде разработки Eclipse стало падать начиная с 2014 года. JQuery Mobile когда-то была популярной библиотекой для реактивной веб-разработки, но судя по тому, насколько активно люди задают вопросы, в последнее время сообщество к ней охладело.
Подтверждает ли все эти выводы количество просмотров?
Конечно, число вопросов, которое задают о той или иной технологии, не всегда отражает ее распространенность. Зачастую разработчики сначала проверяют, не предлагал ли кто-нибудь решения проблемы в уже существующих постах, и только потом уже сами задают вопрос. Возможно, когда накапливается обширная база вопросов, пользователи просто обращаются к старым постам и не испытывают необходимости создавать новые. Тогда, может быть, в каких-то из этих тэгов растет количество просмотров старых вопросов?
А значит, вместо того, чтобы ориентироваться на задаваемые вопросы, мы можем проанализировать число просмотров постов за определенный временной промежуток. У нас сохранились данные по просмотрам за период с конца 2011 года.
Наблюдается ли там аналогичный спад?
В случае с теми тэгами, которые мы определили в этом посте как угасающие, можно заметить, что в целом и общем трафик говорит о том же, что и количество заданных вопросов. Число просмотров постов о Flash, Flex и Silverlight с 2012 года упало почти до нуля. Тэги ASP.NET и Ruby on Rails, хоть и привлекают по-прежнему значительную долю трафика, также со временем начали терять пользователей. Eclipse до 2014 года был стабилен, но дальше пошел на спад.
Кроме того, статистика по большинству рассмотренных тэгов свидетельствует о том, что трафик как показатель популярности проблемы немного запаздывает по сравнению с количеством вопросов. Если количество вопросов о какой-то технологии начинает сокращаться, значит в скором времени начнет падать и трафик у существующих постов. Подчеркнем, что это нельзя объяснять лишь тем, что новые вопросы получают много просмотров от людей, которые пытаются на них ответить: 98% трафика Stack Overflow приходится на вопросы, которые были заданы не в тот день, когда собирается статистика. Это скорее указывает на перемену в отношении к технологии: когда у разработчиков отпадает необходимость задавать вопросы, готовые ответы им тоже становятся ни к чему.
Вывод: можно ли судить о жизнеспособности технологии по количеству вопросов?
Как однажды сказал Бьёрн Страуструп, автор языка C++, существует два типа языков программирования — те, на которые все жалуются, и те, которыми никто не пользуется. Я бы сказал, что тот же принцип работает и для вопросов.
Команда Stack Overflow часто делает замеры по количеству вопросов, чтобы понять, насколько жизнеспособна та или иная технология. Мне часто возражают, что это не показатель, ведь статистика по вопросам и трафику на самом деле отражает только то, сколько людей не понимает, как пользоваться той или иной технологией, а продвинутые пользователи, возможно, просто не нуждаются в помощи. Действительно, в работе с любой метрикой необходимо учитывать недочеты и искажения данных, и то, насколько свободно пользователи владеют технологией — это фактор, который может влиять на результаты и который следует принимать во внимание.
Тем не менее, я считаю, что данные, которые предоставляет Trends, полезны и информативны. Во-первых, мне кажется, что так же, как нельзя написать все возможные книги, нельзя и задать все возможные вопросы. Тэг Javascript за время своего существования собрал 1.4 миллиона вопросов, и несмотря на это, частота публикаций стабильно возрастает. Если темы для обсуждения, связанные с Javascript, можно бы было исчерпать, мы бы уже определенно это сделали.
Во-вторых, если все, кто работает с технологией, знают ее от и до, значит сообщество не развивается. Жизнеспособная среда всегда предполагает приток новичков, которые осваивают основы, и наличие экспертов, которые проверяют, где проходят границы возможностей. И у тех, и у других в ходе рабочего процесса постоянно возникают вопросы. В 2011 году разработчик, использующий Flash, мог бы возразить: «Да, в последнее время Flash обсуждают не так активно, но это только потому, что документация очень толковая и мы уже разобрались с основами работы». Но время ставит все на свои места.
В будущем я планирую написать пост о тех технологиях, у которых доля вопросов в общем числе стремительно растет, и порассуждать о том, какое значение это будет иметь для всей экосистемы.
Автор: nanton