python

JavaScript, Python или Go: что лучше всего подойдёт для бэкенд-разработки в 2021 году?

  • пятница, 28 августа 2020 г. в 00:32:02
https://habr.com/ru/company/ruvds/blog/516302/
  • Блог компании RUVDS.com
  • Разработка веб-сайтов
  • Python
  • JavaScript
  • Go


Уже прошло почти восемь месяцев 2020 года, а технические прогнозы на этот год всё выходят и выходят. И это — несмотря на то, что очень сложно предсказать будущее в такой динамично развивающейся индустрии, как разработка программного обеспечения. Тот, кто работает в этой индустрии, видел, как технологии приходят и уходят. Иногда эти технологии проводят свою недолгую жизнь практически незаметно. Технологиям нелегко выживать в мире программирования.

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



Я — программист. Мне очень нравится JavaScript (у меня с этим языком, так сказать, «вечная связь»), я пишу на этом языке уже давно. Но если немного оглядеться, то можно заметить, что в мире разработки ПО есть и другие языки. Предлагаю поразмыслить о том, что лучше использовать для серверной разработки в 2021 году: JavaScript, Python или Go. Но, прежде чем говорить о сильных сторонах каждого из этих языков, давайте взглянем на результаты некоторых исследований.

Результаты исследований и другие данные


▍Исследование Stack Overflow


Ежегодное исследование Stack Overflow — это самое масштабное из существующих мероприятий, направленных на изучение мнений программистов по различным вопросам, касающихся современных технологий. В нём, в 2019 году, приняло участие более 90000 программистов. По его результатам можно сделать вывод о том, что лидером среди языков программирования является Python. А второе и третье места, соответственно, занимают JavaScript и Go. Но это, напомню, исследование 2019 года. За год много чего может измениться. Например, Go — это язык, который развивается крайне быстро, и популярность которого постоянно растёт. Я думаю, что в аналогичном исследовании этого года мы, возможно, увидим другую таблицу лидеров.


Результаты исследования StackOverflow

▍Рейтинги GitHub (GitHut)


Ниже показан график GitHut 2.0, который демонстрирует количество PR, сделанных с 2013 по 2019 год с разбивкой по языкам программирования. Как видно, JavaScript уверенно обходит все остальные языки. Python занимает второе место, а Go тут даже и не видно.


GitHut 2.0, данные по PR

Но если проанализировать рейтинги языков программирования, взглянув на таблицу, расположенную ниже графика, то окажется, что популярность Go растёт, а популярность JavaScript и Python падает.


Популярность Go растёт, а популярность JavaScript и Python падает

▍GitHub-репозитории


Давайте заглянем в GitHub-репозитории, связанные с интересующими нас языками, и посмотрим на то, насколько активно ведётся работа над ними.


Репозиторий cpython


Репозиторий node


Репозиторий go

Видя эти данные, несложно сделать вывод о том, что Go пользуется большим вниманием разработчиков. У соответствующего репозитория больше наблюдателей, чем у репозиториев, связанных с двумя другими языками, у него больше звёзд. Правда, у этого репозитория меньше форков, чем у двух других.

Теперь давайте поговорим о том, в каких ситуациях может быть интересен каждый из обсуждаемых нами языков.

Python


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

▍Сильные стороны Python


  • Python позволяет быстро решать сложные задачи, создавая при этом небольшие объёмы кода.
  • Python упрощает использование сложных конструкций благодаря простому но мощному синтаксису.
  • Это — высокоуровневый язык. Поэтому тому, кто им пользуется, не приходится заботиться, как при C++-разработке, о чём-то вроде управления памятью.
  • Это — кросс-платформенный язык. То есть — Python-приложения можно запускать на Windows, Mac и Linux.
  • Вокруг Python сложилось огромное сообщество. Если вы столкнётесь с какой-то проблемой — всегда найдётся тот, кто сможет вам помочь.
  • Существует множество библиотек, фреймворков, вспомогательных инструментов для Python. То есть — какая бы перед вами ни стояла задача, весьма вероятно то, что кто-то её уже решил. Ведь Python используется для решения самых разных задач уже более 20 лет.

В целом можно отметить, что Python — это многоцелевой язык, имеющий простой, чистый и не слишком сложный синтаксис, освоение которого не вызывает затруднений даже у новичков. Всё вышесказанное означает, что Python — это замечательный язык. Если смотреть с технической точки зрения, то все те задачи, которые решают с помощью Python, можно решать и с помощью других языков. Но простота и ясность Python сделали его тем, чем он является сейчас — самым популярным языком программирования. Именно поэтому Python — это «язык №1» из тех, что интересует компании, которые ищут программистов. Поэтому, являетесь ли вы программистом с некоторым опытом, или пока не знаете о программировании абсолютно ничего, изучение Python откроет вам интересные возможности трудоустройства в 2021 году. На самом деле, усреднённый годовой заработок Python-разработчика составляет впечатляющие $116,000.

JavaScript (Node.js)


Лично мне очень нравится платформа Node.js. Именно с неё я начал заниматься серверной разработкой. До сих пор я говорил о языках программирования. Но здесь мне хотелось бы поговорить о Node.js, об одной из самых популярных платформ, предназначенных для выполнения JavaScript-кода. Как всем известно, платформа Node.js популярна в IT-индустрии в качестве среды для разработки серверных приложений. Одна из основных причин этого заключается в том, что эта платформа основана на JavaScript. Если вы — JS-разработчик, то вы без особых сложностей можете стать фулстек-программистом. Это — одно из конкурентных преимуществ того, кто знает JavaScript.

▍Сильные стороны JavaScript и Node.js


  • Платформа Node.js поддерживает эффективные механизмы ввода-вывода, использование которых не блокирует выполнение основного кода программы. Это говорит нам о том, что Node.js — это по-настоящему быстрая платформа. Дело в том, что чтение и запись файлов — это одна из важнейших задач серверов. Node.js справляется с этой задачей очень хорошо.
  • Для того чтобы создавать фронтенд- и бэкенд-приложения, достаточно знать один язык — JavaScript.
  • Платформа Node.js используется крупными компаниями, такими, как Uber, LinkedIn, Netflix и Facebook.
  • Node.js-приложения являются кросс-платформенными. Их можно запускать на Windows, Mac и Linux.
  • Вокруг Node.js и JavaScript сложилось огромное сообщество. Вот, например, группа любителей Node.js, в которую вхожу и я. Кроме того, существуют Slack-каналы и дискуссии на Stack Overflow, посвящённые Node.js и JavaScript.
  • Node.js — это не некая система, перегруженная возможностями. То есть — перед нами платформа для выполнения кода на сервере, на базе которой можно, пользуясь самостоятельно подобранными фреймворками и библиотеками, создать именно то, что нужно. Среди популярных Node.js-фреймворков можно отметить Express.

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


JavaScript пользуется популярностью в клиентской и серверной разработке

Если говорить о средней зарплате Node.js-разработчика в США, то это будет что-то в районе $48,000 — $130,000 в год.

Go


Go — это опенсорсный язык программирования, применение которого облегчает разработку простых, надёжных и эффективных приложений. Он появился в 2009 году, но не стал столь же популярным, как Python и JavaScript. Однако Go с тех пор два раза называли «языком года». 67,9% разработчиков, участвовавших в исследовании Stack Overflow, назвали Go своим самым любимым языком. Очевидно, всё это происходит не без причины.


Самые любимые языки

▍Сильные стороны Go


  • Go — это C-подобный язык, поэтому тому, кто знаком с C или с другими похожими языками, не придётся, осваивая Go, изучать что-то совершенно новое.
  • Go — это кросс-платформенный язык.
  • Это — простой язык. Почему? Дело в том, что в нём есть всего 25 ключевых слов, а количество структур данных меньше, чем в других языках. В нём нет классов. В Go имеются только функции и типы данных.
  • Это — надёжный язык, позволяющий разрабатывать высокопроизводительные приложения. Он поддерживает конкурентность и разработку серверного кода, что называется, «из коробки».
  • Обновления Go выходят не слишком часто. А при выходе обновлений не страдает обратная совместимость. Старый код остаётся полностью работоспособным при выходе новых версий языка.
  • В наши дни Go — это уже зрелый язык. В частности, если говорить о вспомогательных инструментах, в экосистеме Go есть стандартный менеджер пакетов и фреймворк для тестирования кода.

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

Если взглянуть на среднюю зарплату Go-разработчика в США, то это будет что-то вроде $45,000-$130,000 в год

Мои самые любимые вещи в жизни не стоят никаких денег. Для меня совершенно ясно, что самый драгоценный ресурс, который у нас есть – это время.
Стив Джобс

Итоги


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

Какой язык вы назвали бы самым перспективным языком для серверной разработки в 2021 году?