Выбираем язык программирования: что нужно знать о Python
Рассказываем, чем хорош Python, сложно ли его учить, где его используют, — и сравниваем Python с Java и JavaScript.
vlada_maestro / shutterstock
Python — один из самых популярных языков в мире, и его популярность всё растёт. В рейтинге TIOBE за январь 2020 года он занял третье место, сразу после Java и С. Python используется в Google, Yahoo! , IBM и даже NASA и CERN. Как получилось, что он так популярен? Давайте разберёмся.
Python — скриптовый язык общего назначения. Скриптовые языки обычно используются для небольших задач, но Python никак не вписывается в эти рамки. В отличие от, например, JavaScript, сфера применения Python не ограничивается веб-разработкой: подробнее мы об этом расскажем ниже.
Этот язык программирования:
- Интерпретируемый. Это значит, что код в Python не переводится в машинный код, а выполняется программой-интерпретатором. Благодаря этому код в Python запустится на любой платформе, на которой установлен интерпретатор. Из минусов — код обрабатывается не заранее, а в процессе, а это снижает скорость;
- Объектно-ориентированный. Объектно-ориентированный язык — это язык, созданный по модели объектно-ориентированного программирования (подробнее здесь). В ней существуют классы и объекты. Классы — это типы данных, а объекты — представители классов. Вы создаёте их сами, даёте названия и присваиваете им свойства и операции, которые с ними можно выполнять.Это не значит, что на Python вы можете программировать только по этой модели: он поддерживает и функциональное, и императивное программирование, и другие.
- Со строгой динамической типизацией. Это значит, что типы переменных определяются после запуска программы, а не при компиляции, а сочетать в выражениях разные типы нельзя. Несмотря на строгую типизацию, 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 слабая типизация: она даёт большую свободу, но из-за этого могут возникать ошибки или просто странные выражения.
Скорость
В скорости 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, машинным обучением, нейросетями или автоматизацией, а ещё если вы новичок в программировании и пока не знаете, с чего начать.