В этом году Python вошел в пятёрку самых популярных языков программирования в мире сразу в трёх уважаемых рейтингах. Журнал IEEE Spectrum поставил его на третье место после C и Java, но перед C++ и R. Аналитики RedMonk назвали Python четвёртым по востребованности, его пока опережают JavaScript, Java и PHP. Опубликованный в декабре рейтинг TIOBE Software тоже ставит Python на четвёртое место после Java, C и C++. Чем так крут Python, что его выбирает всё большее число разработчиков?

А как вообще их выбирают?

С чего начать, если вы выбираете язык программирования на старте, или чтобы расширить свои возможности?

IT-специалисты рекомендуют оттолкнуться от ваших целей.

Если вы хотите сразу же искать стартовую позицию программиста, то стоит посмотреть на рынок. Пока компании чаще ищут разработчиков на PHP и JavaScript. Но структура спроса на программистов быстро меняется. Сейчас на hh.ru 850 предложений для PHP-программистов и 570 вакансий ― для разработчиков на Python. А ведь ещё в прошлом году соотношение было 4 к 1.

Есть мнение, что первый осваиваемый язык программирования должен быть функциональным. И тогда выбор будет между Scala, F#, Clojure, Haskell. С другой стороны, если для написания строчки кода придётся читать книги и перерывать форумы, то желание осваивать такой язык может и пропасть. Чтобы избежать этого, возможно, стоит начать с императивного языка, например ― Ruby. Или с ещё более универсального Python.

О чём говорят гиганты

Можно опираться на выбор ряда крупных корпораций. На Python написаны Instagram, Youtube, Pinterest и другие популярные ресурсы.

Автор Python Гвидо Ван Россум участвовал в создании сервиса хостинга сайтов и веб-приложений Google App Engine, и с тех пор одной из любимых присказок пайтонистов стала фраза разработчиков Google о применении языков: «Python ― где можем, C++ ― где должны» (“Python where we can, C++ where we must”).

Используют Python наряду с другими ассемблерами и Spotify, и Netflix, и Dropbox, где с 2013 года работает Ван Россум.

Чем Python крут для новичков

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

Из-за простого синтаксиса и прозрачной структуры язык легко читать. Вам даже не нужно использовать фигурные скобки в каждой строчке кода. Если вы знаете Python, то сможете работать с любой версией этого языка, приложив к её освоению минимальные усилия. Даже модули Python воспринимаются легко, в отличие, например, от фреймворков Java.

Ещё одно преимущество Python — скорость разработки. Масштабирование возможностей кроется в стандартной библиотеке этого языка. Комбинируя фреймворки, можно находить для себя всё новые и новые инструменты.

А есть ли недостатки?

Главный недостаток, как говорят сами разработчики на Python, — в том, что программы, написанные на нём, работают медленнее, чем созданные на компиллируемых языках (C, C++). Тесты производительности систем, полностью написанных на Python уступают и Java VM. Но важно помнить, что скорость разработки порой важнее, чем быстродействие продукта. А писать на Python выходит быстрее, чем на многих других языках.

РЕКОМЕНДАЦИЯ ПРОФИ

Технический руководитель группы разработчиков медицинского портала emias.info Сергей Никитин:

Реализация CPython не может похвастаться вычислительной производительностью. Но медленный код можно переписать на C или C++ и связать его с Python. А чтобы поднять производительность в целом, используют реализацию с JIT-компиляцией — PyPy («ПайПай»).

Для каких задач подходит Python

Скрипты Python используются для широкого спектра задач — от аналитики до создания программ и даже XML-роботов. Вот их неполный список:

  • анализ данных;
  • разработка интернет-сайтов;
  • создание десктопных и веб-приложений;
  • управление системами и базами данных;
  • автоматизация процессов;
  • создание прототипов;
  • тестирование программ;
  • проведение расчётов (с использованием расширений, например, NumPy);
  • машинное обучение.

Это далеко не все возможности языка. NASA применяет Python для шифрования данных. У компаний JPL и Fermilab есть написанные на Python сервисы для вычислений. UBS, Citadel, JPMorgan Chase используют этот ассемблер для создания рыночных прогнозов.

РЕЗЮМЕ ОТ ПРАКТИКА

Сергей Никитин:

Я постоянно отсматриваю чужой код. И для меня главное преимущество Python перед всеми известными мне языками (C, C++, PHP, Java Script и другими) — это читаемость, преемственность и неизменность кода. На Python сложно написать одну и ту же программу по-разному — синтаксис языка жестко регламентирует конечный код. Python прост, языковых конструкций в нём на порядок меньше, чем в других языках, и изучать его легко.

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

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

Этот язык делает разработчика профессионально мобильным. ― Тот, кто изучил Python досконально, сможет погрузиться в любой другой язык за несколько часов или пару дней. Стандартная библиотека и тысячи модулей дают возможность разрабатывать на Python не только приложения и утилиты, но также драйверы для железа, мобильные приложения и игры. Например, на Python была написана всем известная «Цивилизация» (Civ4).

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

Алина Драгун,

Автор #tceh