В январе Stack Overflow провели ежегодный опрос, в котором приняли участие 100 тыс. разработчиков из 183 стран. В этом году Python вновь приблизился к вершине рейтинга популярных языков: в прошлом году он оставил позади PHP, в этом ? обошёл C#.

При этом Python стоит на третьем месте в рейтинге наиболее любимых ЯП. Далее расскажем, почему и как его используют крупные корпорации и небольшие стартапы.


/ фото PxHere PD

Крупные ИТ-компании: простота и производительность


Аналитики из iDataLabs больше двух лет собирали данные о том, сколько компаний используют Python. В результате они установили, что на этом языке пишут в 75 тыс. компаний по всему миру. И хотя, по их данным, Python имеет не самую большую долю рынка, его популярность стабильно увеличивается.

В прошлом году Python занимал пятое место в рейтинге TIOBE. Это индекс, оценивающий популярность ЯП, на основе количества поисковых запросов на платформах Google, Wikipedia, YouTube, Amazon и др. В 2018 году популярность языка увеличилась до 6% (почти на 3% c 2017 года), и теперь он занимает четвертое место в рейтинге.

Среди крупных организаций, которые начали использовать Python именно из-за его простоты и популярности, можно выделить Instagram. Как отметили представители компании, они перешли на Python 3 и фреймворк Django из-за того, что этот ЯП «дружелюбен» к разработчикам и позволяет им сконцентрироваться на создании важных для пользователей функций.

Плюс широкая распространенность языка и глобальное комьюнити (по данным SO, на нем пишет 39% разработчиков, а 68% ? называет Python любимым ЯП) позволяют быстрее нанимать новых членов команды.

Другой кейс ? компания SurveyMonkey, занимающаяся разработкой облачного программного обеспечения для онлайн-опросов. Ежедневно организация обрабатывает порядка миллионов ответов респондентов. Изначально веб-приложение SurveyMonkey было написано на C# с помощью платформы .NET. Приложение работало без сбоев, однако показывало не лучшую производительность во время тестирования и развертки новых фич.

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

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

На Python пишут в Google, Facebook, Netflix, Quora, Reddit и многих других крупных компаниях. При этом Python используют не только разработчики, но и специалисты по обработке и анализу данных.

Согласно июльскому опросу от Burtch Works, где занимаются подбором специалистов по анализу данных, Python вместе с R находятся на втором месте по популярности: их использует треть из 1200 опрошенных специалистов. При этом от лидера опроса ? SAS ? Python «отстал» всего на один процент. А по информации аналитической платформы Kdnuggets, за последний год 66% из 2300 опрошенных data scientist’ов использовали Python в рабочих проектах. Причем популярность языка выросла на 14% в период с 2016 по 2018 год.

Например, как отметил Абхишек Гхош (Abhishek Ghose) из компании [24]7.ai, занимающейся разработкой ПО для работы с клиентами, он использует Python для сбора и обработки данных разных форматов. По словам Гхоша, тот упрощает и ускоряет процесс написания кода. При этом специалист отмечает, что для решения некоторых data science-задач ему достаточно использовать Python shell.


/ фото Tambako The Jaguar CC

Стартапы: минимум ресурсов на запуск проекта


В отличие от крупного бизнеса, большинство стартапов не обладает мощным стартовым капиталом, а время ? критический фактор для начинающих компаний. Им важно как можно скорее создать работающее решение, чтобы представить его инвесторам. Python же позволяет ускорить разработку, затратив минимум ресурсов. Язык позволяет команде из двух-трех человек создать рабочий прототип за пару месяцев. По такой схеме в 2013 году стартовали в компании Shippo, занимающейся поставкой товаров для бизнесов.

Эта особенность языка в свое время помогла и Дрю Хьюстону (Andrew W. Houston), когда он начинал работу над Dropbox. Будучи студентом, он постоянно забывал дома флешку. Вознамерившись решить эту проблему, Дрю быстро создал прототип облачного хранилища и закрыл сделку с инвесторами.

Другой пример: Никита Соболев, разработчик и основатель стартапа Wemake.services, перевел всю свою команду с Java на Python. Среди причин такого решения он называет скорость разработки. По его словам, производительность программиста, который пишет на Python, в несколько раз выше, чем, например, у того, кто пишет на Java.

Программисты со знанием Python очень сильно востребованы. Согласно статистике Hacker News за июль 2018, этот ЯП занимает второе место по популярности после React: 24% всех постов на ресурсе, посвящены поиску Python-разработчиков для стартапов. При этом позиции этот ЯП удерживает уже несколько лет.

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



P.S. Свежие материалы из нашего корпоративного блога:




Основное направление нашей деятельности — предоставление облачных сервисов:

Виртуальная инфраструктура (IaaS) | PCI DSS хостинг | Облако ФЗ-152 | Аренда 1С в облаке

Комментарии (46)


  1. DanNsk
    01.08.2018 21:19
    +2

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

    Так как-бы не понятно что большее влияние оказало — смена языка или смена архитектуры.


  1. ZOXEXIVO
    01.08.2018 22:08
    +5

    Да, наверное, Google создал язык Go, потому что Python был слишком быстр для них


    1. exfizik
      02.08.2018 01:06
      +1

      Непонятно, к чему этот комментарий. Статья же не про скорость языка, а про популярность и некоторые причины её объясняющие.


      1. apapacy
        02.08.2018 03:08

        Крупные ИТ-компании: простота и производительность

        Проавда производительность чего? — все же разработки наверное. Гвороят что раньше Google применял python для написания прототипов. И, кстати, один из самых первых облачных проектов который не стал правда мега-популярным — это был google app engine с модернизированным Django в качестве движка. Потом эта идея как-то у них затормозиась в развитии. А могли бы стать лидерами.


        1. TheDeadOne
          02.08.2018 07:47

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


          1. akera
            03.08.2018 09:44

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


    1. worldmind
      02.08.2018 06:30

      Гугл это гугл, это крайний случай, думаю всем остальным производительность питона вполне нормальная.


  1. reversecode
    01.08.2018 22:25

    Результаты статистики надо интерпретировать максимально корректно
    1 на форуме веб разработчиков(2 пункт) стековерфлов по результатам опрошенных победил ява скрипт
    2 почти большая половина опрошенных фронт-фулл-бек разработчики
    3 есть небольшое пополнения разработчиков на питоне

    я бы не отказался от действительно полной статистики по всем в мире программистам… но как ее создать


  1. Suvitruf
    01.08.2018 22:29
    +3

    Другой пример: Никита Соболев, разработчик и основатель стартапа Wemake.services, перевел всю свою команду с Java на Python. Среди причин такого решения он называет скорость разработки. По его словам, производительность программиста, который пишет на Python, в несколько раз выше, чем, например, у того, кто пишет на Java
    Видимо, не очень хорошие Java программисты в команде, если при переходе на новый язык их производительность выросла в несколько раз)


    1. apapacy
      02.08.2018 00:13

      Перевести команду на другой язык можно разными способами. Например путем замены.


    1. Zet_Roy
      02.08.2018 12:18
      -1

      Java медленнее Python в несколько раз, так что это тоже послужило причиной.


      1. Alex_ME
        02.08.2018 12:29
        +1

        Как java с jit медленнее иетерпетируемого python?


        1. Zet_Roy
          02.08.2018 15:28

          Ну да ты правый, посмотрел на бенчмарки benchmarksgame-team.pages.debian.net/benchmarksgame/faster/python.html python в некоторых тестах проигрывает java в 10-20 раз.


          1. gotozero
            02.08.2018 19:28

            Или 40, не считая потребления ЦПУ.
            spectral-norm

            source secs mem gz cpu cpu load
            Python3 193.86 50,556 443 757.23 98% 98% 99% 99%
            Java 4.41 35,028 950 16.79 96% 97% 98% 95%


        1. poxvuibr
          02.08.2018 15:37

          Я бы хотел поправить вопрос. Вот так звучит афористичнее:


          Как java с jit медленнее python с gil?


  1. Marwin
    01.08.2018 23:18
    +1

    сколько людей — столько мнений… я крайне доволен .Net стэком. У меня в текущем проекте полный фарш: на бэке webapi, сайт, wpf десктоп клиент админки, xamarin forms мобила. Интеграция и повторное использование кода между этими вещами просто фантастическая: по сути я один раз написал модель данных и натянул на неё разные интерфейсы, а в добавок еще десктоп и мобила вообще почти 1 в 1 совпадают по xaml. Если бы это добро всё было на разных языках и платформах… я б потратил на это раз в 5 больше времени.


    1. 0xd34df00d
      02.08.2018 01:10
      -1

      Аналогично. Правда, я извращенец, наверное, но меня вполне устраивает С++ для числодробилок и хаскель для всего остального.


  1. medvedevia
    02.08.2018 00:15

    Вот интересно, почему если язык такой простой и так на нем быстро писать, разработчики часто пользуются поиском?


    1. soshnikov
      02.08.2018 03:05

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


      1. medvedevia
        02.08.2018 16:48

        это все понятно, но бывает и другие случаи. Вот мой пример: я разработчик на платформе 1С, это моя работа, поиском пользуюсь редко. Ещё бывает пишу запросы на SQL, поиск тоже редко нужен. Ещё я пишу на c#, поиск пользуюсь чаще, но в принципе код могу написать без Гугла. А ещё очень редко нужно писать на cpp, но без Гугла я и 50 строк не напишу. Вот и получается, что чем хуже я знаю язык и платформу, тем чаще мне нужен поиск. А судя по такой статистике может оказаться, что у меня самый популярный язык это cpp.


        1. soshnikov
          03.08.2018 00:33

          Тут, видимо, трудности перевода.
          Популярность = интересуемость. Количество поисковых запросов это показатель интересуемости языка, а не абсолютного количества разрабов или проектов.
          Питон, он клевый. Он, зараза, для всего пригоден. от "скриптов" до прилождений для мобильников.
          Его любят ученые. И на волне машинного обучения он — огого!
          И если вам мил одинэс, то у меня десятки внешних питонячих сервисов работают с базой. некоторые даже еще SOAP. Тут больше ограничений и уродства со стороны 1С — сколько лет уже HTTP-сервисы не поддерживают тупой синтакс-контроль. Нураленышам же пофигу — бабло капает и ладно. А на нас с вами — класть с прибором.


      1. medvedevia
        02.08.2018 16:51

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


    1. peresada
      02.08.2018 07:53

      А 30 лет назад программисты пользовались книгами, чем отличается поиск в интернете от поиска в книге, кроме скорости, разумеется?


      1. qnok
        02.08.2018 09:29

        1. Книги не получают новой информации в онлайн режиме.
        2. В книге не найдешь готовой библиотеки / функции на конкретную узкую задачу.


        1. peresada
          02.08.2018 10:10

          Это был скорее риторический вопрос-ответ на замечание автора комментария «Пользуются поиском, ай-ай-ай», хотя пользовались поиском всегда, только раньше это были книги, еще раньше статьи и т.д.


    1. AhJong
      02.08.2018 11:58
      +1

      По той причине, что язык состоит не только из конечного числа операторов, но и многих сотен модулей/библиотек, API которых могут потребовать время на изучение. Часто, проще и быстрее воспользоваться поиском и подсмотреть уже готовые примеры использования API.


  1. Mox
    02.08.2018 02:13
    -1

    Жаль ruby с рельсами таки стал сливать из-за AI тренда.


  1. mmMike
    02.08.2018 06:10

    "Есть лож, а есть статистика.."
    Я то же питон активно пользую. Очень удобно простой скрипт скидать для анализа лога, генерации отчетов (выборок из БД… срочно срочно..) и тому подобных задач.


    Но основное языки для разработки все равно остаются Java и С++.
    Поскольку "дружелюбность для разработчика" заканчивается на уровне программ в 500..1000 строк кода.
    Что то более объемное — лучше Java.


    1. exfizik
      02.08.2018 17:43

      Поскольку «дружелюбность для разработчика» заканчивается на уровне программ в 500..1000 строк кода.

      А поподробнее можно?
      Т.е. я еще как-то могу понять, если у вас программа в один файл в 500-1000 строк кода, но кто мешает разбивать на модули и писать нормальный, структурированный код?


      1. wlr398
        02.08.2018 20:00

        А интересно, много проектов на питоне, которые больше уровня «скрипт скидать для анализа лога, генерации отчетов»? Для бигдаты и мл вроде тоже достаточно скромные по объёму скрипты.
        Если не брать в рассчёт что-то типа matplotlib, в котором порядка 20 мегабайт кода и в основном на питоне, но это всё же библиотека. В ближнем окружении не видел крупных задач, всё в основном — скрипт скидать.



      1. 0xd34df00d
        02.08.2018 21:14

        Разбивать никто не мешает, но отсутствие строгой статической типизации мешает это всё потом поддерживать.


      1. mmMike
        03.08.2018 05:27

        В python (и JS) мне не нравится:


        • неявное преобразование типов
        • создание переменных без объявления

        Это потенциальная (и наступал на это) "слабое место" для ошибок.


        В простых программках, когда нужно быстро быстро решить какую то задачу (на те же 500 строк кода) — это может оказаться преимуществом. А в программах которые потом сопровождать и где исходного кода на пару сотен кбайт, лично я предпочитаю C++ или Java. (Java лучше, поскольку проблемы с версиями Unix/Oracle client задрали..)


        При прочих равных, производительность — это то же важно..


        В повседневной работе сейчас:


        • в основном, новые проекты на Java.
        • Сопровождаю старый код на C++ (которой частично и сам писал).
        • питон — для анализа логов (нестандартные задачи), не стандартные разовые отчеты, вместо sh/bash (когда его возможностей мало), и т.п.
        • js — web морды для пользователей. Регулярно..
        • PL-SQL + SQL — когда долго ждать когда у разработчика Oracle время появится и нужно срочно..

        Для хобби: C++, java и питон.


        Все сказанное — мое личное мнение, на моем личном опыте. А не на теоретических рассуждениях.

        Все эти споры "какой язык лучше"…
        Да пофиг, по большому счету, на чем кодить… У всего есть недостатки и достоинства.


  1. AxisPod
    02.08.2018 09:23

    Для начала следует задать вопросы:
    — Что такое Stackoverflow?
    — Какова ниша данного продукта?
    — Каков уровень активных пользователей в разработке?

    И только после этого делать какие-то выводы.
    Меня напрягают современные методы изучения языков программирования. Вместо того, чтобы почитать книгу или другие материалы, проще сгонять на форум и задать вопрос. Что-то мне подсказывает, что это и есть основной контингент Stackoverflow и подобных сервисов. Особенно идеально это доказывает Тостер.


    1. peresada
      02.08.2018 09:28

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


      1. AxisPod
        02.08.2018 09:54

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

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


    1. FeNUMe
      02.08.2018 23:05

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


      1. AxisPod
        03.08.2018 07:29
        +1

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


    1. CrazyElf
      03.08.2018 09:44

      Stackoverflow — замечательный сервис на тот случай, если нужно быстро получить ответ на какой-то конкретный вопрос. Особенно если попался какой-то совершенно нелогичный баг или фича, про который фиг прочтёшь в книжке. А из реальных программистов кто-нибудь с ним да сталкивался. Ну и не только это, бывают и полезные всякие howto там, о которых тоже бывает в книжках не прочесть.


  1. ivan386
    02.08.2018 23:48

    Странно оценивать популярность языка по количеству поисковых запросов связанным с ним. Этот показатель может указывать на наличие проблем на которые пытаются найти ответ в поисковиках.


    Может народ кучу старых питоновских скриптов народ переводит под 3ю версию. Или пытатся сделать чтоб они работали на обоих версиях.


    1. AxisPod
      03.08.2018 07:35

      Хм, даже не прочитать первую строку статьи и написать комментарий, это конечно сильно. Там написано: провели опрос.


      1. ivan386
        03.08.2018 07:50

        Я об этом:


        В прошлом году Python занимал пятое место в рейтинге TIOBE. Это индекс, оценивающий популярность ЯП, на основе количества поисковых запросов на платформах Google, Wikipedia, YouTube, Amazon и др. В 2018 году популярность языка увеличилась до 6% (почти на 3% c 2017 года), и теперь он занимает четвертое место в рейтинге.


        1. AxisPod
          03.08.2018 13:10

          Ну это да, тогда я с вами согласен. Тут только на попугаев можно посмотреть и всё.


  1. rdndev
    03.08.2018 09:45

    Оценивать популярность языка по количеству запросов может и не правильно. Но факт то, что на HeadHunter количество вакансий по Python иной раз больше чем вакансий по C#.


  1. jetcar
    03.08.2018 09:59

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


    1. FeNUMe
      03.08.2018 12:52

      PyCharm от Jetbrains если нужна полноценная IDE, если же продвинутый редактор, то VSCode/Atom/Brackets/SublimeText с плагинами. Ну а готовые библиотеки есть есть под все что душа пожелает. Самый популярный вебфреймворк Django или более легковестный Flask, для удобной работы с http — requests, для асинхронных приложений asyncio, для тяжелых мат. вычислений NumPy и т.д.