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 году?