Перейти к основному содержимому

Что такое Go?

Go — это кроссплатформенный язык программирования с открытым исходным кодом. Он известен своей простотой и эффективностью, поэтому является надёжным выбором для приложений, которым нужна высокая производительность.

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

Его создали Роберт Гризмер, Роб Пайк и Кен Томпсон в Google в 2007 году.

Если вы видели код на других языках, некоторые части синтаксиса Go, вероятно, покажутся вам знакомыми.


Для чего используется Go?

  • Серверный код для сайтов и веб-сервисов
  • Программы, которые взаимодействуют по сети
  • Корпоративные приложения, которые должны работать на нескольких платформах
  • Программное обеспечение для облака (cloud-native разработка)

Почему стоит использовать Go?

  • Его легко освоить, и с ним приятно работать
  • Программы быстро компилируются и быстро выполняются
  • Поддержка конкурентности встроена в язык
  • Памятью управлять вручную не нужно
  • Он работает на многих платформах, включая Windows, Mac, Linux и Raspberry Pi

Сравнение Go с другими языками

Код на Go компилируется и статически типизирован, он быстро и компилируется, и выполняется. Goroutine и channel дают вам конкурентность, а сборщик мусора автоматически освобождает неиспользуемую память. Классов, объектов и наследования в языке нет.

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

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

Примечание: Некоторые из этих терминов стоит коротко пояснить. Время компиляции — это время, за которое ваш код превращается в исполняемую программу. Конкурентность — это выполнение нескольких задач одновременно или не по порядку, при котором конечный результат остаётся тем же. Статическая типизация означает, что тип каждой переменной известен на этапе компиляции.


Начало работы

Опыт программирования не требуется. Мы начнём с основ Go и будем постепенно двигаться дальше.