На днях один популярный вопрос на Stack Overflow отпраздновал свой юбилейный миллионный просмотр.
Ты не одинок, jclancy. За пять лет, которые прошли, с тех пор как был опубликован этот пост, больше миллиона других разработчиков постигла та же участь — они застряли в Vim и не могли выбраться без посторонней помощи. Не зря в IT сообществе столько шуток о том, как трудно найти выход из этого редактора.
От опытных пользователей Vim я слышал, что редактор не заслуживает такой репутации, и они, пожалуй, правы (даже сам я разобрался с этой проблемой за последние пару лет). Думаю, есть две причины, по которым люди постоянно забывают, как выйти из Vim. Во-первых, разработчиков, как правило, перебрасывает в Vim из консоли или в результате еще какой-нибудь непредвиденной ситуации; во-вторых, это случается не слишком часто, так что они успевают забыть, как вышли из положения в прошлый раз.
Чтобы отпраздновать это событие, давайте посмотрим на статистику. В частности, попробуем вычислить, кто чаще всего именно застревает в Vim, а не оказывается там умышленно, и посмотрим, как распределяются эти категории по странам и языкам программирования.
У какого количества людей возникают проблемы с выходом из Vim?
В прошлом году около 0.05% от общего числа просмотров приходилось на вопросы типа «Как выйти из редактора Vim?»; это значит, что каждый 20 000-й посетитель приходил на сайт именно с этой проблемой. Иными словами, по будням в часы, когда трафик достигает пика, примерно 80 человек в час нуждаются в помощи с выходом из Vim.
Менялся ли этот процент со временем? То есть можно ли сказать, что разработчики постепенно осваивают эту функцию собственными силами?
Что-то не похоже. Вопрос появился на сайте в августе 2012 года, первые несколько месяцев число просмотров у него было очень низкое. Затем трафик стал стабильно расти и в течение двух лет оставался на подъеме — вероятно, страница поднялась на первые строки поисковой выдачи и на нее стали ссылаться сторонние ресурсы. В следующие два года прирост был достаточно стабильным. Конечно, из этого не следует, что одни и те же люди заходят на страницу раз за разом — возможно, это программисты-новички, которые попали в такую ситуацию впервые.
Статистика по странам
Как мы уже упоминали в одном из предыдущих постов, анализ трафика Stack Overflow позволяет многое узнать о географическом распределении разработчиков. Давайте посмотрим, какой процент составляют вопросы именно о выходе от общего числа постов, связанных с Vim, для каждой страны. Мы предполагаем, что в странах, где много опытных пользователей Vim, процент будет низким. Большие значения, напротив, свидетельствуют о том, что многие разработчики попадают в Vim неожиданно для себя.
Как видим, программисты из Украины, Турции и Индонезии довольно часто застревают в этом редакторе: доля вопросов о Vim, связанных непосредственно с выходом из программы, у них больше, чем у всех остальных государств. На противоположном конце спектра находятся Китай, Корея и Япония — у них процент таких запросов меньше в добрые десять раз. Из этого, по всей видимости, следует заключить, что разработчики из этих стран заходят в Vim не по случайности и хорошо представляют себе, что делать, чтобы выйти.
На каких языках пишут те, кто не может сладить с Vim?
Логичным также представляется, что на опыт работы с Vim будет влиять и тот язык, на котором программист пишет код. Эту гипотезу мы можем проверить так: разобьем пользователей на группы по основной технологии программирования и посмотрим на среднее процентное соотношение «вопросы по выходу из Vim» / «вопросы по Vim» у каждой из групп.
Основную технологию программирования мы будем определять на базе того, какой тэг на Stack Overflow пользователь посещает чаще всего (скажем, в моем случае самый популярный тэг — R, на него приходится 52% просмотров). Способ не идеальный, но достаточно надежный, чтобы в общих чертах представить распределение по языкам. Для этой части анализа в выборку мы включали только зарегистрированных пользователей, у которых более 100 просмотров сайта.
Чаще всего сложности с тем, чтобы покинуть Vim, возникают у фронт-енд разработчиков — то есть тех, которые преимущественно просматривают тэги JQuery, CSS и AngularJS. За ними следом идут разработчики на Microsoft (C# и SQL Server) и мобильные разработчики (Android и iOS). Они работают по большей части с интегрированными средами разработки (Visual Studio, Eclipse, Xcode и так далее), а не простыми текстовыми редакторами, поэтому неудивительно, что они более склонны угодить в Vim случайно, чем открыть его умышленно.
Разработчики, которые реже всего заходят в тупик, пишут на C, C++, Python и Ruby. Этот список, на мой взгляд, вполне закономерен: он представляет собой смесь низкоуровневых и скриптовых языков, которые обычно предполагают простой текстовый редактор без графической оболочки. Соответственно, у тех, кто работает с этими языками, достаточно опыта, чтобы выйти из Vim, не прибегая к помощи Google.
Заключение
Когда я увидел, что число просмотров вопроса подходит к отметке в миллион, меня это позабавило, но вместе с тем, я испытал гордость за то, что работаю (и, среди прочего, отвечаю на вопросы) над сайтом, который оказался полезен такому огромному количеству разработчиков. Подумать только: ответ, который предлагаешь, может помочь миллионам людей, о чем бы ни шла речь — об отмене команды в git или использовании ключевого слова yield в Python.
Если вы тоже хотите внести свой вклад, мы приглашаем вас присоединиться к крупнейшему сообществу разработчиков в мире в любой роли, которая вам подходит — задавайте вопросы и предлагайте ответы, устройтесь на работу или сделайте себе имя онлайн, опубликовав свою историю. Также вы можете использовать наши инструменты, например, Stack Overflow Trends, которые позволют узнать много нового о разработчиках ПО.
В любом случае, когда вы в следующий раз решите проблему благодаря Stack Overflow, не забывайте о том, что тысячи пользователей ежедневно задают вопросы, публикуют ответы, редактируют и модерируют посты, чтобы дать вам такую возможность.
Автор: nanton