Почему Python — идеальный второй язык для фронтендера и первый для бэкендера в 2022 году
2026-02-21 08:53 Diff

#Мнения

  • 6 сен 2022
  • 0

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

Иллюстрация: Оля Ежак для Skillbox Media

Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

Пишет на Perl, Python, Golang. Делает курс по Python в LoftSchool.

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

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

Для уже опытного разработчика второй язык важен ещё и как способ расширить границы понимания разрабатываемых систем и получить новый опыт. Интересный факт: на IT-рынке США разработчик со знанием двух популярных языков зарабатывает в среднем на 50% больше своего «одноязычного» коллеги — при условии, что соответствует вакансии, где требуется кодить именно на двух языках.

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

Изображение: Skillbox Media

Подсчёты, конечно, не суперточные, но они помогают оценить спрос и предложение на рынке. Важно отметить, что средняя указанная зарплата разработчиков на Golang примерно в 1,5 раза выше, чем у кодеров на других языках.

Из таблицы видно, что Python — довольно востребованный язык, а конкуренция среди кандидатов относительно невысокая. Хотя знание Go или TypeScript позволяет устроиться на работу с большей вероятностью.

Для сравнения трендов в области языков программирования я решил воспользоваться Google Trends, инструментом, основанным на статистике поисковых запросов в Google. Он помогает оценить динамику поиска конкретных языков в интернете — то есть общую популярность и востребованность. Из-за ограничений сервиса пришлось разбить график на два изображения.

Популярность языков программирования по данным Google Trends
Скриншот: Skillbox MediaПопулярность языков программирования по данным Google Trends
Скриншот: Skillbox Media

На графике видно, что позиции языка Python укрепились. Прорисовывается спад интереса к Java и PHP. Языки C# и C++ тоже немного теряют в популярности — хотя они всё равно востребованы при решении сложных задач. Из интересного — рост внимания к Golang.

После этого я изучил специализированные рейтинги популярности языков программирования — в частности, TIOBE и IEEE Spectrum. Последний при расчёте популярности использует в качестве источников данных CareerBuilder, GitHub, Google, Hacker News, The IEEE, Reddit, Stack Overflow и Twitter.

Согласно TIOBE, Python в 2022 году вырвался на первую позицию рейтинга и стремительно растёт, обгоняя по скорости роста все остальные языки программирования.

Рейтинг популярности языков программирования TIOBE
Скриншот: Skillbox Media

В рейтинге IEEE Spectrum также лидирует Python.

Рейтинг популярности языков программирования IEEE Spectrum
Скриншот: Skillbox Media

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

Вот пример заглушки API на Flask.

from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/ok', methods=['GET', 'POST']) def successful_case(): if request.method == 'GET': return jsonify({'status': 'ok', 'method': 'GET'}) elif request.method == 'POST': return jsonify({'status': 'ok', 'method': 'POST'}) @app.route('/404', methods=['GET', 'POST']) def unsuccessful_case(): return jsonify({'status': 'error'}), 404 def main(): app.run(host='127.0.0.1', port=8000) if __name__ == '__main__': main()

Этот код поднимает сервер на нужном порте, который отдаёт JSON по двум URL-адресам: http://127.0.0.1/ok и http://127.0.0.1/404.

А вот то же самое — но уже на Golang.

package main import ( "fmt" "log" "net/http" ) func successfulCase(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") if r.Method == http.MethodGet { fmt.Fprintf(w, `{"status": "ok", "method": "GET"}`) } else if r.Method == http.MethodPost { fmt.Fprintf(w, `{"status": "ok", "method": "POST"}`) } } func unsuccessfulCase(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotFound) w.Header().Set("Content-Type", "application/json") fmt.Fprintf(w, `{"status": "error"}`) } func main() { http.HandleFunc("/ok", successfulCase) http.HandleFunc("/404", unsuccessfulCase) err := http.ListenAndServe(":8081", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }

Я руководил несколькими Python-, двумя .NET- и одной Go-командой и обращал внимание на скорость разработки, а общаясь с другими тимлидами и руководителями групп разработки, пришёл к выводу, что создание фич на Golang всё же занимает больше времени, чем на Python. При этом скорость разработки на .NET близка к скорости разработки на Python. Точной причины этого феномена я не выяснил, но всегда учитываю это, планируя дедлайны.

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

Помимо бэкенд и фронтенд-разработки, Python стал одним из наиболее востребованных языков для решения задач, связанных с Data Science, нейронными сетями, машинным обучением и искусственным интеллектом. А популярные Python-библиотеки SciPy, NumPy, Matplotlib помогают упростить сложные расчёты и облегчают жизнь учёных.

Если же вы уже пишете на Python, рекомендую обратить внимание на JavaScript, TypeScript или Golang. JavaScript стабильно востребован, а TypeScript и Golang явно развиваются и набирают популярность.

При этом Golang является довольно перспективным и хорошо оплачиваемым языком с относительно низким порогом входа. Он немного сложнее Python или JavaScript, зато превосходит их в скорости и имеет строгую типизацию. Я в качестве третьего языка выбрал именно Go.

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

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу