Почему Python развивается так быстро: исследование Stack Overflow

05.10.2017
В блоге Stack Overflow опубликовано исследование Дэвида Робинсона (data scientist) — он решил разобраться в причинах растущей популярности Python. Мы перевели и адаптировали этот материал.

Введение

Недавние исследования Stack Overflow показали, что Python претендует на роль самого быстрорастущего основного языка программирования, также посвященный ему тег стал самым популярным на Stack Overflow в странах с высоким уровнем дохода.

Почему Python так быстро развивается? Этот язык программирования используется в самых разных целях, от веб-разработки до работы с данными и DevOps. Также стоит  отметить, что в последнее время становятся все более распространенными приложения, разработанные на Python. По словам Робинсона, сам он использует язык программирования R, поэтому его очень интересует, насколько рост популярности Python затронет область, в которой он работает. Он посмотрел на базу Stack Overflow со своей точки зрения, чтобы понять, в каких областях Python будет развиваться с наибольшей скоростью, и в каких организациях он используется наиболее часто.

Этот анализ позволяет сделать два вывода. Во-первых, наиболее часто Python применяют в сферах анализа данных, машинного обучения и научных исследованиях. Среди тегов, связанных с Python, быстрее всего растет популярность pandas. Что касается того, в каких индустриях используется Python, то статистика Stack Overflow показывает, что это такие области, как электроника, производство, разработка программ, правительство и особенно популярен язык в учебных заведениях. Однако рост Python по отраслям происходит довольно равномерно. В совокупности это говорит о том, что анализ данных и машинное обучение получают распространение в различных типах компаний, и Python становится общим и популярным решением для подобных задач.

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

Что разрабатывают на Python?

Python — это универсальный язык, используемый для решения множества задач, таких, как веб-разработка и анализ данных. Как же можно проанализировать значительное развитие Python?

Во-первых, можно изучить рост трафика по тегам, представляющим пакеты Python в каждой области. Можно сравнить веб-фреймворки Django и Flask с пакетами данных NumPy, matplotlib и pandas (сравнить популярность тех или иных поисковых запросов можно с помощью Stack Overflow Trends).

1

Pandas, пожалуй, является библиотекой Python, которая быстрее всего набирает популярность: в 2011 году она едва была представлена, однако теперь составляет почти 1% запросов в Stack Overflow. Запросы по numpy и matplotlib также выросли в сравнении с предыдущим периодом. Трафик запросов по Django оставался довольно стабильным в течение прошедшего времени, в то время как Flask немного подрос. Все это говорит о том, что развитие Python больше связано с аналитикой данных, а не с веб-разработкой.

Однако это раскрывает только часть общей картины, поскольку так можно оценивать только широко используемые библиотеки Python, специфичные для него. Python также популярен среди системных администраторов и инженеров DevOps, которые могут использовать запросы Linux, Bush и Docker, совместно с Python. Точно так же многие задачи веб-разработки могут решаться с помощью Python, без использования Django или Flask, и такие разработчики будут, скорее, использовать JavaScript, HTML или CSS в качестве «поддерживающего» тега. Невозможно просто измерить рост таких тегов, как linux, bash, javascript, но, предположим, что они связаны с Python. Таким образом, можно измерить теги посещений, связанных с Python.

Для анализа были рассмотрены только летние месяцы (июнь-август 2017 года): это позволило снизить эффект влияния обучающихся студентов, сосредоточиться на актуальном трафике и помогло уменьшить проблемы сложения трафика длительного периода времени. Были рассмотрены только зарегистрированные пользователи, которые посещали Stack Overflow не менее 50 раз за указанный период. Посетители определялись как пользователи Python, если:

  • их самый посещаемый тег был Python;
  • Python составлял не менее 20% от общего количества посещений.
Какие же теги были популярны у людей вместе с Python? 2

С большим отрывом лидирует тег библиотеки pandas, который является наиболее популярным, что неудивительно, ведь выше уже отмечался рост его популярности. Вторым наиболее посещаемым тегом является JavaScript, который также представляет веб-разработчиков Python (как и Django несколькими позициями ниже). Это подтверждает теорию команды исследователей: нужно рассматривать эти теги совместно с Python, а не только рост тегов, непосредственно связанных с Python в целом.

Ниже в списке можно увидеть другие «группы» технологий. Можно оценить их связь, рассматривая, какие пары тегов имеют тенденцию к корреляции: то есть, могут ли пары пользователей Python непропорционально посетить оба тега. Отфильтровав для пар теги с высокой степенью корреляции Пирсона, можно отобразить эти отношения в сетевой диаграмме (здесь можно найти больше информации).

3

Можно увидеть несколько крупных групп технологий, примерно описывающих категории проблем, которые часто решаются с помощью Python. В верхнем центре — группа для анализа данных и машинного обучения: в центре pandas, Numpy и matplotlib. Они тесно связаны с такими технологиями, как R, Keras и TensorFlow. В группе ниже описывается веб-разработка, с помощью таких тегов, как JavaScript, HTML, CSS, Django, Flask и JQuery. Два других кластера, которые можно заметить, для системного администрирования / DevOps — слева (в центре кластера Linux и Bash) и для информационных технологий — справа (Spark, Hadoop и Scala).

Рост по направлениям

Исследование показало, как связанный с Python трафик на Stack Overflow можно разделить на несколько тем. Это позволяет выяснить, какая из тем отвечает за наибольший рост посещений тегов, связанных с Python, на Stack Overflow.

Предположим, известна история посещений пользователя и видно, что Python — наиболее посещаемый тег. Как же можно догадаться, является ли пользователь веб-разработчиком, big data специалистом, системным администратором или кем-то еще? Можно было бы рассмотреть их второй наиболее посещаемый тег, затем третий, а также далее по списку наиболее посещаемых тегов, пока не появится информация, с помощью которой мы можно опознать представителя одной из вышеописанных групп.  

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

  • Специалисты по работе с данными: Pandas, NumPy, Matplotlib.
  • Веб-разработчик: JavaScript, Django, HTML.
  • Системный администратор / DevOps: Linux, Bash, Windows.
  • Неопределенный: ни один из девяти тегов не набрал более 5% от общего числа трафика.

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

Какие категории разработчиков Python стали более распространенными с течением времени? Обратите внимание, что в исследовании классифицируются пользователи, а не визиты, поэтому отображается это как процент зарегистрированных пользователей Stack Overflow (независимо от того, были это визиты с тегом Python или нет).

4

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

Можно было бы также рассмотреть рост уровня отдельных тегов, вычислив трафик по тегам, которые посещали разработчики Python в 2016 и 2017 годах. Например, возможно, трафик JavaScript устойчив в целом, но он сокращается в процентах от общих посещений разработчиков Python. Как только будут получены темпы роста каждого тега, появится возможность разложить их по сетевой диаграмме, и получится понять, какие темы растут, а какие сокращаются.

5

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

Статистика по отраслям

Другой способ понять развитие языка программирования Python — это рассмотреть, с каких типов компаний осуществляются визиты. Этот запрос отличается от типов посетителя: как розничные компании, так и медиафирмы могут использовать специалистов по работе с данными и веб-разработчиков.

Исследователи сосредоточились на двух странах, в которых рост развития Python наиболее заметен: США и Великобритания. В этих странах можно разделить трафик по отраслям (как это было сделано при сравнении AWS и Azure).

6

Отрасль с наибольшим трафиком Python (с наибольшим отрывом) — академическая, включающая в себя колледжи и университеты. Возможно, причина в том, что Python часто преподают в учебных заведениях?

Частично, но не полностью. Как можно увидеть в этом посте, трафик Python из университетов есть не только осенью и весной, но и летом тоже. Например, Python и Java наиболее посещаемые теги в университетах, и можно увидеть разницу в сезонных тенденциях.

7

Можно увидеть, как трафик по тегу Java падает более резко в течение каждого лета, потому что Java является распространенным предметом для обучения.

Напротив, Python составляет большую долю летнего трафика. Поэтом высокий уровень трафика по тегу Python из университетов частично объясняется академическими исследователями, которые приходят в течение всего года. Это дает больше доказательств того, что рост развития Python объясняется его возможностями в научных вычислениях и анализе данных.

Что касается других отраслей, посмотрите, насколько Python популярен  и быстро развивается в правительственном секторе, но также он широко используется в электронике и обрабатывающей промышленности. Дэвид Робинсон меньше знаком с этими отраслями, и ему было интересно, почему Python там так популярен. Этот язык все еще не сильно распространен в розничных или страховых компаниях (некоторые исследования показывают, что Java  остается там доминирующим).

Этот пост в основном исследует причины роста развития Python. Был ли процесс роста трафика по тегу Python более быстрым в других отраслях?

8

Рост развития Python за последний год был довольно равномерно распространен по отраслям, по крайней мере в США и Великобритании. Трафик Python по каждой отрасли увеличился примерно на 2-3 процентных пункта. (Следует обратить внимание, что это означает более высокий относительный рост в отраслях, в которых он еще не был распространен, таких, как страхование и розничная торговля).

 

Во многих других отраслях Java остается наиболее посещаемым тегом на основе данных 2017 года, но Python сокращает дистанцию. Например, в рамках финансов (одного из крупнейших участников трафика Stack Overflows, который не принадлежит вышеуказанным отраслям) Python стал четвертым наиболее посещаемым тегом в 2016 году и вторым самым посещаемым тегом по итогам 2017 года.

Заключение: стоит ли всем переходить на Python

Дэвид Робинсон как специалист по data-майнингу, ранее работавший на Python, но сейчас на R, задается вопросом, должен ли он сейчас задуматься о возврате к Python?

Он так не думает. Во-первых, R тоже развивается очень быстро: R является вторым по скорости развития языком после Python. Во-вторых, причины, по которым автор исследования предпочитает R для анализа данных, не сильно связаны с его относительной популярностью. (Дэвид планирует написать пост в личном блоге о том, почему он Python предпочел R, что ему нравится в обоих языках, и почему он не чувствует себя вынужденным вернуться обратно).

В любом случае, анализ данных — это захватывающая и растущая область, где есть много возможностей для различных языков программирования. Дэвид Робинсон хочет побудить разработчиков в начале их карьеры к тому, чтобы они рассмотрели возможность развития навыков в области анализа данных. Эта область в числе одних из самых быстрорастущих компонентов экосистемы разработки программного обеспечения, и она актуальна во многих индустриях.

Для тех, кто работает на Python в веб-разработке, анализе данных или других отраслях, хочет сделать следующий шаг в своей карьере, вот некоторые компании, нанимающие разработчиков на Python прямо сейчас на Stack Overflow.

Если вы занимаетесь поиском Python разработчиков, рекомендуем воспользоваться AmazingHiring прямо сейчас.

Поделиться:

Другие статьи:

Летние апдейты продукта
26.06.2023
AI ежедневно мелькает в нашей новостной ленте, оказывая огромное влияние на бизнес и тренды в современном рекрутменте. Потребность в автоматизации процесса найма...
Читать далее
121 телеграм-чат для IT-рекрутеров
01.02.2022
Современный рынок труда давно перегрет, и рекрутерам нередко приходится проходиться по уже имеющейся базе кандидатов. В то же время существуют менее тривиальные,...
Читать далее
Как начать использовать X-Ray поиск от Google: 4 простых шага
27.01.2022
Специалист по рекрутингу и сорсингу в компании Objective Paradigm Сара Голдберг (Sarah Goldberg) опубликовала в 2017 году статью с практическими советами для тех, кто только...
Читать далее