Verification: a143cc29221c9be0

Node js или php или python

Node js или php или python

Плюсы Python

Главные преимущества Питона – крупное сообщество программистов и скорость разработки.

Благодаря лаконичности языка и отличным библиотекам проекты на Питоне делать дешевле и быстрее. А широкий набор функций позволяет решать не только типичные для интернет-приложений задачи, но и претворять в жизнь уникальные идеи.

Большое сообщество

Питон – самый быстрорастущий язык программирования, согласно опросу от Stack Overflow.

график популярности языков программирования на Stack Overflow

По индексу PYPL, который сравнивает количество запросов на туториалы в Гугл, Питон также лидирует с большим отрывом

Позиция Язык Доля Тренд
1 Python 31,02% +2,2%
2 Java 16,38% -2,38%
3 JavaScript 8,41% +0,4%
4 C# 6.52 % 0.6 %
5 PHP 5,83 -0.4 %
6 C/C++ 5.56 % -0.4 %
7 R 4.26 %/td> +0.4 %
8 Objective-C 3.48 % +0,8%
9 Swift 2.37 % -0.1 %
10 TypeScript 1,9% +0,1%

Аналогичные результаты в индексах от TIOBE и Бюро статистики труда США. Питон занимает 1–3 место во всех авторитетных рейтингах популярности языков.

Почему это важно?

Популярность языка играет существенную роль по нескольким причинам:

  • Востребованность – индикатор качества: Питон выбирают, потому что он лучше других языков.
  • Большой приток молодых специалистов гарантирует, что вы не столкнетесь с дефицитом кадров для поддержки и обновления проектов.
  • Многомиллионное сообщество помогает постоянно развивать и улучшать язык.
  • Больше людей занимается разработкой готовых оптимизированных библиотек и модулей для всевозможных технических и бизнес-задач.

Чистый синтаксис и лаконичность

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

Сравните размер мини-программы, рисующей пирамиду, на Java и Python.

сравнение кода на Java и Python

При одинаковом результате код Питона в разы компактнее.

Библиотеки
Стандартная библиотека Питона упрощает выполнение многих рутинных задач программиста и дает доступ к системному функционалу с помощью модулей, написанных на C.

Под задачи конкретного проекта можно подключать внешние библиотеки. Они покрывают все сферы разработки – от e-commerce и корпоративных систем до машинного обучения и визуализации статистики.

образцы визуализации данных

Во многих интернет-проектах, основанных на сборе и визуализации данных, используется именно Питон
Создание MVP

Скорость разработки и универсальность делают Питон оптимальным выбором для создания прототипов и MVP – минимальных жизнеспособных продуктов.

С помощью Питона можно быстро создать базовую версию продукта, получить фидбек от пользователей и проверить бизнес-идею.

Затем приложение можно улучшать на основе живой обратной связи.

Асинхронность
С версии 3.5 Python поддерживает асинхронный код. Асинхронное приложение продолжает работать и обрабатывать запросы во время ожидания ответа от сервера.

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

Асинхронная модель повышает производительность и отзывчивость веб-приложений. Поэтому исходя из нашего опыта Питон подходит даже для высоконагруженных сайтов и проектов, где важна скорость обработки сложных запросов.
Интеграция с другими языками
Python хорошо интегрируется с другими языками. Например, в исходный код можно встраивать фрагменты на C++.

C помощью Питона также можно «склеивать» фрагменты кода на других языках.

Open-Source лицензия
Python можно использовать бесплатно. А открытая лицензия способствует быстрому распространению и улучшению языка силами волонтеров со всего мира.

Преимущества динамического языка
Для Питона характерны все преимущества динамического интерпретируемого языка:

  • При разработке не нужно тратить время на компиляцию;
  • Результаты программирования видны в режиме реального времени;
  • Короткие циклы разработки – не нужно наперед продумывать иерархию классов;
  • Меньше кода – значит, его легче поддерживать и обновлять.

Отсутствие отдельной фазы компиляции при разработке позволяет быстро запустить код, проверить результат и внести правки. Это делает разработку удобнее, а запуск программы быстрее.

Минусы Python

Среди минусов Python называют скорость, сложности в поиске ошибок и нехватку опытных программистов. Рассмотрим, какие из этих недостатков действительно присущи языку.
Скорость
Главная версия Питона – CPython. Его скорость ограничивают следующие факторы:

  • Отсутствие компиляции. Команды Python переводятся в машинный код на ходу, во время работы программы. Это делает разработку эффективнее и ускоряет запуск программы, но снижает скорость выполнения команд.
  • Динамическая природа языка. Динамическая типизация делает Питон невероятно гибким при разработке. Но поскольку интерпретатор берет присвоение типов переменных на себя, скорость выполнения кода снижается.
  • Ограниченная многопоточность. В CPython встроен ограничивающий механизм – GIL. Он предотвращает конфликты между потоками одного процесса, но не дает выполнять их одновременно на нескольких ядрах.

Действительно, все три фактора играют роль в отдельных тестах. Но в реальных веб-приложениях дела обстоят иначе.

Дело в том, что процессор редко выступает слабым звеном системы.

Как видно из таблицы ниже, процессор обрабатывает 1 инструкцию за 1 наносекунду. Это в миллионы раз быстрые, чем время пересылки пакета данных между серверами. Таким образом, загрузить процессор в интернет-приложении на 100% очень сложно.

Именно операции ввода/вывода чаще всего выступают узким местом интернет-приложений. Для таких задач важно, чтобы язык поддерживал асинхронность. Она позволяет обрабатывать другие запросы во время ожидания ответа от сервера. Питон версии 3.5 и выше поддерживает асинхронность. Поэтому его производительности более чем достаточно для интернет-приложений. Плюс, проблема обмена данных между серверами решается в SPA и PWA приложениях, в которых большая часть логики сразу загружается в браузер пользователя.

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

Частично это решается подсказками типов, введенными в Python 3.5. Но так или иначе крупные проекты на Питоне требуют тщательного тестирования.

Недостатки Python: вывод
Лишь часть часто упоминаемых минусов Питона основаны на фактах.

Например, Нехватка опытных Python-разработчиков – миф, основанный на устаревших данных. Выше мы приводили актуальные рейтинги популярности языков от Stack Overflow и PYPL. В них Python занимает первое место с большим отрывом.

Действительно, для разработки драйверов, ядер операционных систем и графических движков – где нужно вручную управлять «железом» – используют более низкоуровневые языки.

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

Преимущества и недостатки Django

Когда говорят о веб-разработке на Питоне, чаще всего подразумевают разработку на Django. По данным SimilarTech, 63% сайтов на Питоне построены на этом фреймворке.

Django представляет собой набор проверенных инструментов для создания всех компонентов веб-приложения.

Преимущества

  • Скорость разработки. Django помогает быстро продвигать проект от идеи до рабочего релиза продукта.
  • Универсальность. В Django входят ключевые инструменты веб-разработки: ORM, миграция баз данных, аутентификация пользователей, формы, админ панель. Во многих других фреймворках для работы с этими функциями нужно подключать отдельные библиотеки.
  • Гибкость. Джанго — легко настраиваемый фреймворк. Вместо стандартной базы данных, ORM и системы шаблонов можно подключить свои инструменты.
  • Админ панель и аутентификация «из коробки».
  • Модули и приложения. К проектам на Django можно подключать готовые модули.
  • Самое большое сообщество среди всех фреймворков Питона.
  • Архитектура. Джанго следует паттерну проектирования Модель-Вид-Контроллер (MVC). Он подразумевает разграничение бизнес-логики и ее визуализации. Это позволяет разрабатывать компоненты параллельно, изменять их по отдельности. А также по-разному представлять данные, в зависимости от контекста.
  • Масштабируемость. Django подходит для создания высоконагруженных сайтов с большим трафиком.
  • Безопасность. Django по умолчанию поддерживает защиту от таких видов атак, как внедрение SQL-кода и межсайтовых подделок запросов.
  • Создание API. Поддержка инструментария для создания API: REST API и GraphQL.
  • DRF, или Django REST Framework, упрощает создание продвинутых API. С помощью RESTful API к одному серверу можно подключить несколько оболочек. Например, браузерный фронтенд на Vue, и мобильные приложения для Android и iOS. CRM-система на Django
  • Подробная официальная документация; много туториалов и ресурсов для изучения, например – Django Book.

Недостатки

  • Обучение. Из-за огромного количества встроенных возможностей Django сложнее освоить, чем более легкие фреймворки.
  • Для небольших проектов с простыми требованиями функциональность может быть избыточной.
  • Стандартная Django ORM ограничена в работе со сложными запросами к базе данных. Подключение более новых ORM, например, SQLAlchemy, требует навыков.

Как видно, минусы Django весьма условны. Это стабильный и многофункциональный фреймворк без ярко выраженных слабых сторон. Чем и объясняется его популярность.

Python против других языков программирования

В этом разделе сравним Питон с другими языками для бэкенда. А поскольку на чистых языках веб-приложения пишут редко, будем учитывать и особенности главных фреймворков.
Python или PHP
PHP самый популярный серверный язык. Он работает на 78% всех сайтов. Это бэкенд язык популярных CMS – WordPress, Joomla и Drupal. А набор LAMP (Linux, Apache, MySQL, PHP) предустановлен почти на все хостинги.

Чем PHP лучше Python

  • Много готовых решений – CMS и плагинов. К примеру, простые сайты или приложения с шаблонной логикой лучше делать на PHP и WordPress. Это быстрее и дешевле разработки с нуля.
  • В PHP 7 разработчики добились значительной прибавке к скорости;
  • PHP проще установить на MacOS X и Windows.

Чем PHP хуже Python

  • Количество PHP-разработчиков падает. Если этот тренд продолжится, в скором времени будет трудно найти команду квалифицированных PHP-программистов. Питону такая перспектива не грозит.
  • Менее удобная работа с библиотеками;
  • Больше известных уязвимостей;
  • Не так удобно работать в изолированных средах на одном компьютере;
  • Документация с системой комментариев, в которой легко запутаться;
  • Много технических противоречий;
  • Узкая сфера применения – только простые проекты для веба.

Фреймворки: Django vs Laravel
Laravel – основной веб-фреймворк для PHP. Он достаточно многофункционален, но уступает Джанго по количеству библиотек, скорости разработки и безопасности веб-приложений.
Что выбрать
Чтобы запустить несложный сайт с минимальным бюджетом – подойдет CMS на PHP, например, Вордпресс. Для более сложных, нестандартных и крупных проектов выбирайте Питон.
Python или Java
У Java и Python много общего. Оба языка – объектно-ориентированные, универсальные, кросс-платформенные, с множеством библиотек.
Чем Java лучше Python

  • Большая история использования в длительных, масштабных корпоративных проектах.
  • Компиляция «на лету» (JIT) ускоряет работу программ;
  • Официальный язык разработки на Android, наряду с Kotlin.

Чем Java хуже Python

  • Скорость разработки. При одинаковых требованиях проекты на Java длятся дольше;
  • Стоимость проектов. Нужно оплачивать больше часов работы программистов;
  • JIT-компиляция замедляет запуск приложений;
  • Более громоздкий код сложнее поддерживать;
  • Сложнее изучать.

Фреймворки: Spring vs Django
Spring – более гибкий фреймворк. Но это подразумевают больше микроменеджмента при разработке. Django, напротив, более стандартизированный фреймворк с множеством готовых решений.

Spring также уступает в некоторых важных аспектах:

  • Занимает больше оперативной памяти;
  • Меньше возможностей для создания фронтенд-интерфейсов;
  • Отсутствует инструмент управления, подобный Django Admin.

Что выбрать
Связка Python и Django выигрывает в компактности кода и скорости создания приложений. Java часто выбирают, чтобы вписать новое приложение в экосистему старых legacy-проектов на Java.
Python или JavaScript / Node.js
JavaScript может работать не только в браузере, но и на сервере. Для этого используется среда Node.js, часто в сочетании с бэкенд-фреймворком Express. Поэтому при сравнении учитываем весь стек – JavaScript / Node / Express.
Чем JavaScript лучше Python

Node.js построена на движке Хрома – Google V8. V8 ускоряет работу приложений за счет JIT-компиляции JavaScript в машинный код.

Есть мнение, что под проект, где и фронт, и бэк пишутся на одном языке, легко найти  фулстек-разработчиков. Но на самом деле фреймворки JavaScript отличаются довольно сильно. Разработчик на Angular и на Node – это две разных профессии. И найти программиста с опытом работы в конкретном фреймворке JavaScript сложнее, чем специалиста по Python.
Чем JavaScript хуже Python

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

Фреймворки: Express vs Django
Django гораздо более развитый фреймворк, превосходящий Express по ряду причин.

Express дает лишь базовые инструменты. Разработчику придется писать значительную часть кода с нуля на чистом JavaScript.

В то же время Django предоставляет готовые оптимизированные решения, защиту и систему шаблонов «из коробки».
Что выбрать
«Ноду» часто рекомендуют для приложений реального времени, таких как мессенджеры и видеочаты. Питон – универсальный язык, который подходит почти для любых задач.
Python или Go (Golang)
У Питона и Го много общего. Оба языка ценят за простоту синтаксиса и читабельность. Оба языка относят к высокоуровневым. Хотя Питон иногда считают ультра-высокоуровнaевым.

Главное отличие в том, что Го:

  • Типизированный язык с компиляцией;
  • Появился сравнительно недавно;
  • Чаще используется без фреймворков.

Чем Go лучше Python

  • Скорость и эффективность. Google разработал Го с учетом огромной нагрузки на свою сетевую инфраструктуру;
  • В язык изначально встроена возможность асинхронного выполнения задач с помощью горутин.

Чем Go хуже Python

  • Менее развитые внешние библиотеки;
  • Отсутствие готовых модулей, подобных Django Apps;
  • Больше объем кода;
  • Питон более зрелый язык с гораздо бóльшим комьюнити.

Что выбрать
С большинством рядовых проектов Питон справится быстрее и с меньшими затратами. Большое количество библиотек и сокращенное время вывода продукта на рынок делают Питон идеальным для веб-разработки и создания прототипов.

Go, за счет строгой типизации и компиляции, позволяет добиться более экономного использования ресурсов в проектах с масштабной сетью серверов.

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

Примеры наших приложений на Python

Python – ключевая технология в нашем стеке. За 6 лет мы реализовали более 100 проектов на этом языке – от сложных сайтов до систем автоматизации бизнеса.

Ниже приведем 3 примера веб-приложений, где для разработки функционала бэкенда мы использовали Питон в сочетании с Django.

Brok

Brok – сервис для покупки, продажи, получения справок и других операций с землей.


Особенности проекта:

  • интерактивная карта земельных участков Украины;
  • синхронизация с государственными кадастрами;
  • возможность размещения и продвинутого поиска объявлений;
  • личный кабинет с чатом и отслеживанием заказов.

При разработке Brok пригодились интеграционные возможности Django.

CRM «Срибна Роса»

CRM «Срибна роса» – система для работы с клиентами компании-поставщика питьевой воды.

Особенности проекта:

  • база с контактными данными и историей заказов клиентов;
  • интеграция с сайтом и IP-телефонией;
  • индивидуальная бонусная система;
  • система пользовательских ролей.

Через CRM каждый сотрудник получает доступ к нужным данным. Кладовщик – к товарообороту, бухгалтер – к финансовым показателям, водители оповещаются о заказах через планшет прямо на выезде.

ERP Local Moving Service

ERP Local Moving Service – система управления ресурсами логистической компании. Это еще один тип корпоративного софта, который можно создать на Питоне.

ERP-система на Python
Особенности проекта:

  • система учета заработной платы;
  • дашборд с ключевыми показателями работы компании;
  • опросник для сотрудников;
  • личный кабинет;
  • электронный документооборот.

ERP автоматизирует ежедневные задачи предприятия, упрощает коммуникацию между сотрудниками, собирает и выдает статистику в виде наглядных отчетов.

Последние обновления Python

В октябре 2020 года вышла новая версия языка – Python 3.9. Обновления коснулись синтаксиса, стандартной библиотеки, интерпретатора и самого процесса выпуска новых релизов.

Что нового в последней версии:

  • Ускорение вызова встроенных функций с помощью протокола vectorcall;
  • Новый парсер для синтаксического анализа исходного кода;
  • Новые функции для слияния и обновления словарей;
  • Новые строковые методы;
  • Упрощенный механизм добавления подсказок типов – в Питоне стало удобнее использовать преимущества типизированных языков;
  • Новый встроенный модуль с базой часовых зон;
  • Другие улучшения синтаксиса и производительности языка.

С этой версии Питон переходит к ежегодному выпуску обновлений. До этого новые релизы появлялись каждые 18 месяцев. Уменьшение цикла позволит быстрее внедрять предлагаемые сообществом изменения.
В декабре 2020-го вышел Python 3.9.1 с поддержкой macOS 11 Big Sur.

Вывод

С помощью веб-разработки на Питоне можно решать практические задачи бизнеса. При этом код приложения будет в разы меньше, чем на других языках. Это значит, что проекты на Питоне быстрее разрабатывать и легче поддерживать.

Фреймворк Django стандартизирует процесс разработки и дает проверенные инструменты для бэкенд-программиста.

Связка Python и Django идеальна для разработки сложных сайтов, систем автоматизации бизнеса и MVP для стартапов.

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


▍Исследование 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 в год

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

Почему?

Для примера рассмотрим пару вариантов:

  1. C#. Да, ребята из Microsoft красавцы — они создали .NET Core и всячески продвигают эту платформу. Но кто бы что ни говорил, это относительно новая кроссплатформенная технология, в которой не все гладко (год выпуска — всего лишь 2016). Это во-первых. А во-вторых, это решение обходится дорого, да и соответствующих разработчиков не так уж много просто потому, что платформа не очень популярна.
  2. Java. Это действительно сложно. Создать нормальный сайт на Java — это вам не пару строчек кода, и даже не пару десятков, как на Python. Это действительно много кода, плюс нужны фреймворки, плюс надо знать специфику настройки Java-серверов и т. д. и т. п. Короче говоря, это боль и страдание.
  3. PHP. Вообще-то, в последних версиях PHP хорош. Уже начиная с версии 7.2, язык программирования PHP как минимум не хуже «Пайтона». Однако нельзя просто так взять и начать использовать PHP. Если простой, а не топовый разработчик начнет делать web-сайт на PHP, он не будет его писать только лишь на 7.2 — ему все равно придется читать руководства, учебники и т. д, плюс везде полно legacy-кода, что в совокупности не очень хорошо и тормозит разработку.
  4. JavaScript и Node.js. Да, это прекрасно и современно, когда один и тот же язык используется и на бэкенде, и на фронтенде. Однако на практике получается, что все не так уж и стабильно. Сам по себе Node.js — штука хорошая, однако бывает проблематично развернуть ее в production, причем так, чтобы она не падала, то есть работала стабильно и устойчиво. Вдобавок к этому, если надо написать действительно качественный код на JavaScript, мы будем использовать не JS, а TypeScript. А вот TypeScript уже неожиданно сложный, то есть при его виде у некоторых рядовых разработчиков реально закипает мозг.