Это общий обзор того, что делает Go желательным для:

  • Веб-разработка
  • Облачные и сетевые сервисы
  • DevOps и надежность сайта
  • Интерфейсы командной строки

Двоичный исполняемый файл

ИМО, это один из самых недооцененных аспектов Go. Возможность компиляции в один исполняемый двоичный файл означает:

  • Интерпретатор времени выполнения не требуется, поэтому двоичный файл может быть намного тоньше, чем набор подкаталогов проекта. Это полезно для производительности контейнеризации и оркестровки.
  • Для выполнения не требуется дополнительная среда выполнения, так как это машинный код, поэтому двоичный исполняемый файл может выполняться и восстанавливаться с устойчивостью.

Минималистский

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

Автоматический сбор мусора

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

Формат

Существует один встроенный механизм форматирования, нет необходимости использовать такие вещи, как «prettier.js», и нет необходимости заново изобретать велосипед.

Встроенное тестирование и бенчмаркинг

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

Расширенные методы параллелизма

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

Низкий шаблонный код

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

Сеть

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

Один из самых быстрых серверных языков программирования

В последние годы было проведено несколько бенчмарков (и разглагольствований), указывающих на то, что серверные приложения Go иногда работают быстрее, чем серверные приложения Java и Rust. Не вдаваясь в подробности, получаем картину, Go быстрый.

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

Молодой язык

Не существует единого размера для всех. Зрелость иногда может иметь преимущество перед молодежью, но также стоит уважать то, что многие качественные аспекты новых языков, таких как Swift, Go, Dart, Clojure и т. д., многому научились у гигантов, которые были до них.

Проверить: