Привет, Хабр! Представляю вашему вниманию перевод статьи "Python has brought computer programming to a vast new audience".

А его основатель ушел в отставку

В Декабре 1989 года Гвидо ван Россум, голландский специалист в области информатики, запланировал для себя некий проект на рождественские каникулы. Уставший от недостатков в других языках программирования он пожелал создать собственный. Его принципы были просты. Во-первых, он должен был быть простым для прочтения. Вместо того, чтобы растягиваться по окончаниям строк и быть разбитым путаницей фигурных скобок, каждый кусок кода был бы окружен отступами с пробелами. Во-вторых, он должен был позволять пользователям создавать свои собственные пакеты специальных модулей кодирования, которые затем могли быть доступны другим для создания основы для новых программ. В-третьих, он хотел «короткое, уникальное и слегка загадочное» имя, поэтому он был назван Monty Python, в честь британской комедийной группы. Репозиторий пакетов стал известен как Cheese Shop (Сырный магазин).

Почти через 30 лет после своего рождественского изобретения г-н Ван Россум напоминает технологическую версию персонажа Монти Пайтона, который случайно стал Мессией в фильме «Жизнь Брайана». «Я, конечно, не собирался создавать язык, предназначенный для массового потребления», — поясняет он. Однако, за последние 12 месяцев пользователи Google в США чаще искали Python, чем Ким Кардашян, звезду реалити-шоу. Частота запросов увеличилось втрое с 2010 года, в то время как запросы об иных языках программирования были на том же уровне или снижались (см. Диаграмму).

image

Популярность языка выросла не только среди профессиональных разработчиков: почти 40% которых используют его, а кроме них, 25% желают это сделать (согласно форуму по программированию Stack Overflow), но также и среди обычных людей. Веб-сайт «Codecademy», научивший 45 миллионов неопытных пользователей программировать на разных языках, сообщает, что на сегодняшний день наблюдается существенное увеличение желающих изучить Python. Таким образом, программирование стало доступно тем, кому когда-то эта область знаний была недоступна. Питонисты, так называют приверженцев этого языка, способствовали увеличению Cheese Shop более чем на 145,000 пакета, охватывающих все самое важное: от астрономии до разработки игр.

Г-н Ван Россум, даже восхитился такому энтузиазму относительно его проекта, за которым он осуществлял суровый надзор, в роли «доброжелательного пожизненного диктатора». Он боится, что стал чем-то вроде идола. “Я чувствую себя неловко из-за такой известности” — говорит он, что кажется странным, поскольку напоминает Брайана, пытающегося разогнать толпу учеников. “Иногда мне кажется, что все, что я говорю или делаю, рассматривается как насильственное принуждение”. 12-го июля 2018 года он ушел в отставку, покинув питонистов с намерением предоставить им самоуправление.

Никто не ждет забавного статистика


Python не совершенен. Другие языки обладают лучшей эффективностью обработки и специализированными возможностями. C и C ++ — являются разновидностями языков “нижнего уровня”, которые предоставляют пользователю больше контроля над тем, что происходит в процессоре компьютера. Java очень популярен для создания больших и сложных приложений. JavaScript — это язык исключительно для приложений, доступных для веб-браузера. Существует несчетное количество иных языков разработанных для разнообразных целей. Но особенности Python — это простой синтаксис, который делает его код легким для изучения и обмена, а также его огромный массив сторонних пакетов — делает его хорошим языком универсального назначения. Его универсальность продемонстрирована широкой областью его применения. Центральное разведывательное управление использовало его для хакинга, Pixar — для производства фильмов, Google — для продвижения веб-страниц и Spotify — для рекомендации песен.

Некоторые из самых привлекательных пакетов, которые Питонист может найти в Cheese Shop, используют искусственный интеллект (ИИ). Пользователи могут создавать нейронные сети, которые имитируют связи в мозге, выбирать шаблоны в больших количествах данных. Г-н ван Россум говорит, что Python стал избранным языком для исследователей ИИ, которые создали для этого множество пакетов.

Однако не все питонисты настолько амбициозны, все таки. Зак Симс, владелец Codecademy, считает, что многие посетители его сайта пытаются приобрести навыки, помогающие в решении тех задач, которые обычно не считаются техническими. Маркетологи, например, могут использовать язык, чтобы построить статистические модели, которые измеряют эффективность кампаний. Преподаватели колледжей могут проверить, правильно ли они распределяют оценки. (Даже журналисты The Economist, очищая веб-данные, часто используют программы, написанные на Python, для этого).

Для профессий, которые долгое время полагались на электронные таблицы, Python особенно ценен. Citigroup, американский банк, внедрил ускоренный курс в Python для своих стажеров-аналитиков. Веб-сайт рабочих мест, eFinancialCareers, сообщает о четырехкратном увеличении объявлений, в которых упоминается Python между первыми кварталами 2015 и 2018 годов.

Тяга к получению этих навыков тоже опасна. Цезарь Бреа, партнер консалтинговой компании Bain & Company, предупреждает, что самым опасным в его профессии является «тот, кто изучил механизм, но не знает, что происходит внутри него». Без надлежащего контроля, игра новичка, с библиотеками ИИ, может привести к непредсказуемым последствиям. Бернд Зиглер, партнер Boston Consulting Group, говорит, что его фирма рассмотрит этот вопрос с членами своей группы анализа данных.

Универсальный робот Россума


Одно из решений проблемы полуобразованных специалистов заключается в том, чтобы правильно обучать их нюансам языка. Python уже был самым популярным вступительным языком в американских университетах в 2014 году, но его преподавание обычно ограничено среди тех, кто изучает науку, технологии, инженерные науки и математику. Более рациональное предложение представляется в том, чтобы заинтересовать также детей, предложив информатику всем им, в том числе и в начальных школах. Хади Партови, руководитель благотворительного фонда Code.org, отмечает, что 40% американских школ теперь предлагают такие уроки, по сравнению с 10% в 2013 году. Приблизительно у двух из трех 10-12-летних детей есть аккаунт на веб-сайте Code.org. Возможно, разочаровавшись в будущем, заполненном автоматизированными рабочими местами, 90% американских родителей хотят, чтобы их дети изучали информатику.

Никто не может предсказать, как долго будет продолжаться рост популярности Python. В прошлом существовали другие лидирующие компьютерные языки, которые, теперь отошли на задний план. В 1960-х годах всемирно распространенным был Fortran. Для преподавания программирования новичкам — Basic и Pascal, занимающие свое место под солнцем. А сам г-н Партови перешел на JavaScript как основной язык программы Code.org, поскольку он остается наилучшим выбором для анимации веб-страниц.

Никакой компьютерный язык никогда полностью не сможет быть универсальным. Специализация всегда будет важна, но правда в том, что далеко в прошлом г-н Ван Россум зародил что-то незабываемое. Он не Мессия, он просто был очень умным парнем.

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


  1. Meklon
    27.08.2018 17:45
    -1

    Офигенный язык. Хотя иногда внешние зависимости сильно пьют кровь. Устанавливал сегодня свой скрипт для аудита безопасности HTTPS на серверах. В итоге внезапно установка через pip упала с ошибкой, так как sslyze захотела версию пакета 10-часовой давности. Комитет ещё не остыл. Конечно, из GitHub в PyPi никто не переложил.


    1. immaculate
      28.08.2018 05:56

      С зависимостями иногда бывают проблемы, но все в общем довольно просто решается. Просто указывайте корректно версии в requirements.txt. Например:
      elasticsearch>=5,<6


      И еще: pip позволяет устанавливать пакеты прямо из Git репозитория, так что необязятельно ждать, пока авторы выложат пакет в PyPI:
      pip install git+https://github.com/django-haystack/django-haystack.git#egg=django-haystack


      1. Meklon
        28.08.2018 09:02

        Спасибо. Попробую. В данном варианте, я не расписывал отдельно setup. Мне для работы несложный скрипт нужен был. Попробую напрямую установить.


    1. AssaNix
      29.08.2018 08:59

      Сам еще не использовал, но закинул в закладки, чтобы воспользоваться, когда будет необходимость решить вопрос с зависимостями. Может, вам поможет. Там предлагается разбор проблем использования requirements и pipenv для её решения.

      Ссылка


      1. Meklon
        29.08.2018 22:38

        Спасибо, я попробую. Пока что уткнулся в необходимость компиляции. Надо права запросить на установку на рабочей машине.


  1. lestvt
    27.08.2018 23:58

    приятно было прочитать


  1. hzs
    28.08.2018 06:47

    Python оставил приятное впечатление.
    Надо было написать простую напоминалку для трея, старая версия была написана в QT Creator, и старый код ну вот вообще не получилось адаптировать под новую версию компилятора.
    Пробовал писать напрямую под gtk, но документации и примеров просто крупицы.
    Решил попробовать Python, раньше никогда не писал на нём, взял простой пример, запустил, посмотрел как работает, разобрался с кодом. Синтаксис очень простой и понятный, порог вхождения минимальный.
    Так как я без прочтения чего-либо по Python решил сразу программировать, сначала было непонятно отсутствие скобок и наличие отступов, когда уже немного почитал литературы, всё встало на свои места.
    В итоге приложение написано и работает.
    Единственное чего не хватает, это полноценного компилятора, чтобы можно было делать независимые бинарники, типа как в QuickBasic, 25 лет назад.
    Вообще, мне кажется что именно Python в скором временем станет учебным языком программирования в школах/техникумах. Он прост для понимания, достаточно гибок и при этом очень мощный, куча мануалов и примеров. Язык хорош и для обучения и для профессиональной работы.


    1. immaculate
      28.08.2018 06:51

      Единственное чего не хватает, это полноценного компилятора, чтобы можно было делать независимые бинарники, типа как в QuickBasic, 25 лет назад.

      В Linux это в общем не нужно, а для Windows такой компилятор есть.


      1. hzs
        28.08.2018 07:00

        Ну некоторым разработчикам под Linux может понадобиться закрыть код в коммерческих продуктах. Всё таки живём не единым GPLем.
        Так может оказаться, что хороший продукт будет написан под винду, а на никсах этот софт не выйдет из-за отсутствия хорошего компилятора, хотя написанный код при этом будет скорее всего кроссплатформенным.


    1. Vlad_IT
      29.08.2018 09:17

      Единственное чего не хватает, это полноценного компилятора, чтобы можно было делать независимые бинарники, типа как в QuickBasic, 25 лет назад.

      Есть же всякие утилиты, которые создают exe файл, и пихают в него питон и используемые библиотеки. Например cx_Freeze, pyinstaller (для него даже гуй есть https://github.com/brentvollebregt/auto-py-to-exe )


      1. hzs
        29.08.2018 09:42

        Я про linux.


        1. Vlad_IT
          29.08.2018 10:01

          PyInstaller is a program that freezes (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, FreeBSD, Solaris and AIX.

          http://www.pyinstaller.org/


          1. hzs
            29.08.2018 10:13

            О, надо глянуть ради интереса.
            Хотя, у меня всё GPL3.


  1. na9ort
    29.08.2018 09:44
    +1

    Могут здесь отписаться разработчики, у которых основной язык Python?
    Мой основной язык PL/SQL. Решил выучить более распространённый язык. Выбор пал на Python. Меня постоянно не покидает чувство, что я не тем занимаюсь. Как не зайдёшь в какой-нибудь пост про ЯП, везде только и обсуждают Java и JavaScript, хотя питон вроде как не уступает в популярности этим ЯП. Я уже несколько раз думал кинуть Python и взяться за Java. Единственное, что меня останавливает — это пословица: « За двумя зайцами погонишься ни одного не поймаешь». Это хорошо, что Google и остальные корпорации используют Python, но хотелось бы примеров из российских реалий. Хочу отдельно выделить машинное обучение и ИИ. Я считаю, что для этого нужно специальное математическое образование, чтобы работать на реальных проектах. То есть ИИ не совсем из области российских реалий. Вот выучишь Python, а потом окажется, что он бизнесу нужен, как слону пятая нога. Или нужен в таком количество, что не идёт ни в какое сравнение с Java. В целом про Python могу сказать, что язык мне нравится. Синтаксис, языковые оконструкции, работа с коллекциями, но вот как язык чувствует себя на рынке?
    В общем, чем питонисты занимаются?


    1. Stormwalker
      29.08.2018 11:54

      Буквально, всем.
      Рекомендую на youtube посмотреть записи с PyCon, чтобы оценить спектр применения языка, от высоконагруженных веб-приложений (нет, серьезно), до анализа картин средневековья.


    1. immaculate
      29.08.2018 12:36

      У меня основной язык Python уже лет 15 точно. В основном, веб-разработка. Был краткий период, когда делал GUI приложения на Python (PyGTK).


      А вообще Python используется практически везде. От науки до devops (многие инструменты, такие как ansible, написаны на Python). И разработчиков не хватает.


      Что будет через 5-10 лет никому не известно, но в ближайшее время человек, знакомый с Python, без куска хлеба с маслом точно не останется.


  1. alex_zzzz
    29.08.2018 14:50

    Есть кто-нибудь, кто использует одновременно C# и Питон? Что вы пишете на последнем, как разделяете языки по областям применения? Я периодически порываюсь разобраться в Питоне, но за отсутствием практической необходимости через месяц забываю почти всё, что успел узнать.


    Думал, попробовать использовать для автоматизации. Недавно была простая задача: взять пару десятков zip-архивов одного и того же разных версий, отсортировать по версиям, поочерёдно распаковать и закомитить в mercurial-репозиторий с соответствующим комментарием, получив в репозитории историю изменений. Вспомнил про Питон. Написал на C#. Заняло два десятка строк кода и минут 15 до получения желаемого функционала. Снова забыл про Питон.


    1. immaculate
      30.08.2018 04:31

      Я не использую одновременно с C#, но данную задачу написал бы на bash. Мне кажется, что у меня получилось бы быстрее, чем на Python, хотя писать большие и сложные скрипты на bash не люблю.