Выбираем язык программирования: что нужно знать о Python

Рассказываем, чем хорош Python, сложно ли его учить, где его используют, — и сравниваем Python с Java и JavaScript.

Python — один из самых популярных языков в мире, и его популярность всё растёт. В рейтинге TIOBE за январь 2020 года он занял третье место, сразу после Java и С. Python используется в Google, Yahoo! , IBM и даже NASA и CERN. Как получилось, что он так популярен? Давайте разберёмся.

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

Рейтинг популярности Python на Google Trends с 2004 года до января 2020-го

Этот язык программирования:

  1. Интерпретируемый. Это значит, что код в Python не переводится в машинный код, а выполняется программой-интерпретатором. Благодаря этому код в Python запустится на любой платформе, на которой установлен интерпретатор. Из минусов — код обрабатывается не заранее, а в процессе, а это снижает скорость;
  2. Объектно-ориентированный. Объектно-ориентированный язык — это язык, созданный по модели объектно-ориентированного программирования (подробнее здесь). В ней существуют классы и объекты. Классы — это типы данных, а объекты — представители классов. Вы создаёте их сами, даёте названия и присваиваете им свойства и операции, которые с ними можно выполнять.Это не значит, что на Python вы можете программировать только по этой модели: он поддерживает и функциональное, и императивное программирование, и другие.
  3. Со строгой динамической типизацией. Это значит, что типы переменных определяются после запуска программы, а не при компиляции, а сочетать в выражениях разные типы нельзя. Несмотря на строгую типизацию, Python позволяет больше, чем некоторые другие языки, — например, вы не можете сложить строку (string) с целым числом (int), зато десятичное число (float) с целым — можете.


Мария Грегуш

В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.


Для чего его используют

Из самых популярных отраслей — Data Science, автоматизация и веб-разработка. Вот области, в которых используется Python:

  • веб-разработка;
  • машинное обучение;
  • интернет вещей;
  • проекты с искусственным интеллектом, нейросети;
  • Data Science, аналитика;
  • некоторые игры.

Подробнее о применении Python можете почитать здесь: Для чего нужен язык программирования Python.

Легко ли учить Python?

Python — один из лучших языков для начинающих. Он гибкий, почти «всепрощающий», и у него минималистичный синтаксис. В работе на Python вам не придётся беспокоиться о тонкостях работы с памятью и указателями (как, например, в C++), зато вы сможете сразу приступить к программированию в дружелюбной среде. А ещё Python подробно пишет, где у вас в коде ошибка и какая (на английском), — это очень удобно.

Плюсы и минусы Python

Плюсы

  • Хорошо подходит для новичков.
  • Простой минималистичный синтаксис: код легко писать, читать и поддерживать.
  • Большая стандартная библиотека и много дополнительных библиотек.
  • Большой выбор фреймворков.
  • Поддерживает объектно-ориентированное программирование и другие парадигмы.
  • Кроссплатформенность и поддержка почти всех современных систем.

Минусы

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

Какие у Python конкуренты

Стоит ли учить именно Python? И чем он отличается от других языков? Давайте сравним его с Java — ещё одним кроссплатформенным объектно-ориентированным языком, с которым Python соревнуется в рейтингах, и с JavaScript — популярным скриптовым языком для веб-разработки.

Python vs. Java

Python и Java — соседи по рейтингу, и у них есть общие черты: например, поддержка объектно-ориентированного программирования и кроссплатформенность.

Но много и различий.

Типизация

Начнём с формальных различий: в Java, в отличие от Python, типизация статическая. Это значит, что типы переменных прописываются в коде и считываются на этапе компиляции, а некорректная программа просто не запустится. В Python вы сэкономите время разработки (типы переменных не надо обозначать), но об ошибках узнаете уже после запуска программы.

Компиляция

Python — интерпретируемый язык (об этом мы чуть подробнее рассказали выше), а Java использует и компиляцию, и интерпретацию. Благодаря этому Java получает выгоду обоих способов — кроссплатформенность и скорость.

Скорость

Здесь выигрывает Java. Скорость — её большое преимущество, в то время как у Python это одна из слабостей. Например, простое двоичное дерево выполняется в Java в 10 раз быстрее.

Синтаксис и читаемость

Синтаксис Java похож на синтаксисы C и С++. У всех этих языков достаточно строгий и «многословный» синтаксис, и для новичков это минус: вместо того чтобы сосредоточиться на том, что писать, приходится больше думать о том, как писать. Впрочем, от витиеватости языка страдают не только новички. Большая часть работы программиста — это работа с уже написанным кодом, поэтому читаемость очень важна.

В Python синтаксис очень лаконичный, а код минималистичный и хорошо читается.

Применение

Java — лидер в разработке мобильных приложений, а ещё хорошо подходит для десктопных приложений, промышленных программ и программ для корпораций.

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

Python vs. JavaScript

Типизация

В Python строгая типизация. Как мы писали выше, несмотря на то что это достаточно гибкий язык, у него есть свои границы. В JavaScript слабая типизация: она даёт большую свободу, но из-за этого могут возникать ошибки или просто странные выражения.

Одна из немногих сфер, где у JavaScript преимущество, — это мобильная разработка. Источник

Скорость

В скорости Python и здесь проигрывает — JavaScript быстрее.

Мультифункциональность и применение

Несмотря на то что JavaScript растёт и начинает распространяться на другие отрасли, веб-разработка всё ещё остаётся его главным применением. Python же ушёл далеко за её пределы, став одним из самых популярных языков в Data Science.

Frontend и Backend

Раньше JavaScript использовался только для frontend-разработки (на стороне пользователя), но с появлением Node.js его возможности расширились, и сейчас JavaScript используют и для frontend-, и для backend-разработки (на стороне сервера). Python в теории тоже можно использовать для обеих, но на практике он лучше подходит для backend-разработки.

Перспективы
для Python-разработчиков

Много ли вакансий? О недостатке рабочих мест беспокоиться не стоит: в конце января — начале февраля 2020 года на HH.ru было около 1600 предложений работы в Москве, а на Яндекс.Работе — более 600. Чаще всего это предложения веб-разработки, анализа и обработки данных, а типичные требования — умение работать с библиотеками и знание фреймворков.

Сколько платят
Python-разработчикам?

Предложения на HH.ru и Яндекс.Работе начинаются от 95 тысяч рублей (в Москве), причём в половине из них зарплата более 150 тысяч рублей в месяц. Опытным разработчикам предлагают от 220 тысяч, но есть и предложения с зарплатой 300–400 тысяч рублей.

Начинающие Python-разработчики могут рассчитывать на зарплату от 30 до 70 тысяч рублей (данные на начало февраля 2020 года).

Для сравнения: средняя зарплата по Москве в конце 2019 года, по данным Банка заработных плат, составила 85 707 рублей — то есть Python-разработчики получают хорошую зарплату даже по московским меркам.

Резюмируем

Python — быстро развивающийся язык с большим количеством библиотек, фреймворков. Он хорошо подходит для начинающих благодаря простому синтаксису и минималистичности. Главные минусы — низкая скорость и слабая мобильная разработка.

Python — замечательный выбор, если вы хотите заниматься веб-разработкой, Data Science, машинным обучением, нейросетями или автоматизацией, а ещё если вы новичок в программировании и пока не знаете, с чего начать.

Если вы хотите выучить Python с нуля, вам поможет наш курс «Python-разработчик». Там вас научат не только основам программирования на Python, но и работе с данными, классами, объектами и разными библиотеками.

Курс

Python-разработчик


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

Записаться на курс

Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox