Что такое Go и как его используют
Что такое язык программирования Go, почему он стал популярным и в чём его преимущество перед C-языками и Python.
Язык программирования Go был создан 10 ноября 2009 года. Его создателями являются Роб Пайк, Роберт Гризмер и Кен Томпсон.
Основной целью являлось создание эффективного, быстрого языка программирования, который был бы схож с С, C++ или Java, но имел более простой, понятный синтаксис.
Язык Go объединяет в себе высокую производительность и безопасность С, C++, Java и легкость синтаксиса, характерную Python. Проект представляет собой многопоточный компилируемый язык с открытым исходным кодом.
Неофициальным символом языка Go является голубой суслик, благодаря чему Go-разработчики получили прозвище «гоферы» (с англ. gopher — суслик).
Язык программирования Go занимает 6-е место по популярности среди языков программирования, которые используются на GitHub.
Как используют Go
Go используется как язык для backend-разработки в таких направлениях, как:
- Облачные и серверные приложения, веб-сервисы;
- DevOps и автоматизация процессов;
- Приложения для работы с командной строкой;
- Искусственный интеллект и работа с большими данными;
- Программирование микроконтроллеров и робототехники.
Go больше всего подходит как язык программирования для работы с инфраструктурой. Самые популярные инструменты в этой области написаны именно на Go — Kubernetes, Docker и Prometheus.
За что любят Go
Язык программирования — это не просто связующее звено между продуктом и базой данных. Это сердце продукта. Производительность самого языка имеет немаловажное значение.
Go любят за его простоту и быстроту. Например, код для сортировки данных. Если сравнить его с аналогичными реализациями на других языках, этот код будет работать быстрее.
Как известно, Go намного быстрее Python. На нем легко писать высокопроизводительные приложения, он отлично подходит для автоматизации процессов больших масштабов.
Go–разработчики сохраняют простоту — их код легко понять. Работу одного разработчика можно передать другому, и второму будет легко внести правки. Когда программисты имеют возможность с первого взгляда понять работу друг друга, они могут быстрее вносить изменения, следовательно производительность труда повышается.
Язык программирования не перестает обновляться и с каждым разом работает все быстрее. Сегодня это уже самостоятельный язык с упором на веб-разработку.
Например, с помощью такого кода можно создать gif-картинку. Немногие из языков программирования для backend-разработки дают такую возможность.
Недостатки Go
У Go нет единого доминирующего фреймворка. Существует несколько проектов, которые предоставляют фреймворк для Go. Например, Revel, Iris, Echo, Macaron и Buffalo. Однако для многих новых продуктов отсутствие доминирующего фреймворка будет серьезным недостатком.
Также, несмотря на то, что Go создавался как аналог С, он не может заменить его во всех задачах. В связи с этим разработчики С редко переходят на язык Go.
Еще одним недостатком можно считать тот факт, что создание определенных функций на Go занимает намного больше времени по сравнению с Python или Ruby.
Можно ли самостоятельно выучить Go
Сочетание отличной экосистемы, высокой производительности и продуктивной среды программирования делает Go отличным выбором.
IT-специалисты предполагают, что в будущем весь код, требующий высокой производительности, может быть написан на Go. По данным GitHub, Go используется более широко, чем такие языки, как Erlang, Scala и Elixir, но при этом он менее популярен, чем Java и C++.
Это простой и легкий в изучении язык. Он предоставляет только основные, самые необходимые функции.
Любой разработчик, освоивший Python, Elixir, C++, Scala или Java, сможет легко выучить язык программирования Go в течение месяца.

Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Go язык программирования для чего
Go (Golang) — компилируемый многопоточный язык программирования с открытым исходным кодом, анонсирован 10 ноября 2009 года. В основном его применяют в веб-сервисах и клиент-серверных приложениях. Авторы языка попытались совместить удобство разработки на Python со скоростью выполнения программ на С и C++, поэтому они сделали Go компилируемым. Хотя экосистема Go имеет свой собственный интерпретатор, он редко используется. На этом языке программирования можно писать программы от консольных приложений до сложных многопоточных программ. Язык программирования подходит для серверных приложений, в нем также есть библиотека для создания графических интерфейсов [1] .
- 1 История
- 2 Особенности
- 3 Эволюция Go
- 4 Достоинства и недостатки
- 4.1 Достоинства
- 4.2 Недостатки
История
Роберт Грисмер — разработчик приложений в Google, в прошлом был привержен высокопроизводительной генерации кода на JavaScript, он занимался разработкой языка программирования Sawzall и современной реализацией Smalltalk-Strongtalk. Интерес Роберта к языкам программирования возник, когда он познакомился с языком Pascal, будучи аспирантом, он учился у Никлауса Вирта, создателя Pascal.
Когда Роберт окончил университет и посвятил себя реальному миру индустрии профессионального программирования, он решил разработать современный компилируемый язык, который сочетал бы в себе удобство разработки на Python со скорость выполнения программ на С и C++. Всё началось с установки следующих ориентиров [2] :
- Простота, безопасность, читабельность первостепенны. Однако, простота языка не означает, что созданный на нем продукт обязан быть простым — иногда это просто неосуществимое условие.
- Стремление к ортогональности в дизайне языка. Означало множество средств языка, которые бы не пересекались между собой и которые можно было бы проще комбинировать (combine) и составлять композиции (compose). Авторам хотелось, чтобы существовал только один путь написания конкретной конструкции.
- Минимализм: существует всего один способ написать некоторый кусок кода (для этого правила сейчас есть несколько исключений — например, определения переменных)
- Все дело в выразительности алгоритмов, а не в системе типов.
- Отсутствие желания приспосабливать язык к какому-либо одному способу использования (к примеру, разработчики не хотели делать написание lock-freeалгоритмов суперпростым, потому что эта область интересует лишь немногих экспертов, в то время как большинство программистов на Go не должны о них беспокоиться).
- Коллективное осознание истории развития языков программирования.
Критики Go любят говорить, что в данном языке программирования нет ничего нового, но они упускают из виду тот факт, что это хорошее качество для языков программирования, так как цитируя Алана Кея, «Большинство идей проистекают из предыдущих идей», но более точно сказал Чарльз Хоар в 1973 году [3] :
Задача разработчиков языков программирования — консолидировать идеи, а не вводить новшества Хоар, Чарльз Энтони Ричард
Особенности
Язык программирования Go разработан для того, чтобы позволить разработчикам заниматься архитектурой приложений, не тратя время на утомительные вещи — например, создание документов или отслеживание устаревших грамматических структур. Язык программирования Go прост в использовании и хорош именно потому, что выполнение всех рутинных операций было перенесено с программиста на встроенные инструменты. Основные особенности языка программирования Go [4] :
- Автоматическое управление памятью и сборщик мусора. Go — быстрый, как C/C++, но программировать на нём легче. Если в C/C++ приходится вручную управлять памятью, то компилятор Golang берёт эти заботы на себя.
- Синтаксический сахар. Это синтаксические послабления, которые позволяют писать код быстрее. Например, формально некоторые операции в Go (if, for) должны заканчиваться точкой с запятой, но на деле компилятор сам способен расставить точки с запятыми в нужных местах.
- Автоматическое форматирование программ. Golang сам расставляет отступы и выравнивает элементы по колонкам с помощью команды gofmt. Но важно использовать только табуляцию для отбивки строк — пробелы в начале строки gofmt не поймёт.
- Автоматическое создание документации. Команда godoc найдёт все комментарии и сделает из них мануал к программе.
- Отслеживание устаревших конструкций. Инструмент gofix сканирует код и отмечает синтаксические конструкции, которые считаются устаревшими по современным стандартам.
- Инструменты тестирования. В Go включено множество инструментов тестирования. Например, typecheck проверяет соответствие типов в коде, golint даёт рекомендации на основе официальной документации — Effective Go и CodeReviewComments, gosimple упрощает сложные синтаксические конструкции, а gas находит уязвимости в коде.
- Отслеживание состояния гонки. Для работы с многопоточными системами очень важно выполнять функции в правильном порядке, чтобы не перепутать данные, потому что состояние гонки — очень коварная ошибка. Она может возникать случайным образом, из-за этого локализовать её почти невозможно. Golang изначально спроектирован так, чтобы свести такие ошибки к минимуму. А если что-то и проскочит — есть дополнительные инструменты для проверки кода на состояние гонки. Чтобы включить детектор гонки, надо добавить флаг —race — на этапе компилирования, сборки, тестирования или установки пакета.
- Профилирование. В языке программированияGo есть пакет pprof и консольная утилита go tool pprof. Профайлер pprof исследует, какие фрагменты кода выполняются слишком долго, где программа ест много памяти или чересчур нагружает процессор. Результат его работы — текстовый отчёт, профайл. Чтобы визуализировать профайл и построить из него схему, надо установить утилиту graphviz.
- Низкоуровневое программирование. Безусловно, язык Go не смог бы претендовать на лавры C и C++, если бы не умел непосредственно работать с памятью. Для этого в нём есть пакет unsafe.
Эволюция Go
Со временем язык программирования Go сильно изменился — особенно изменились грамматика и семантика языка. Полезным решением являлась разработка стандартной библиотеки при создании языка. Утилиты Gofmt (для изменений в языке) и gofix (для изменений в API) предоставили разработчикам хорошие услуги, когда необходимо или возникает необходимость в тщательном рефакторинге.
Впоследствии в язык программирования были добавлены такие функции, как: необязательные точки с запятой, необязательные типы составного текста, необязательные границы для фрагментов. При добавлении этих языковых средств разработчикам неоднократно помогал инструментарий, который позволяет им вносить серьезные изменения без необходимости вручную переписывать большое количество программного кода [5] .
Достоинства и недостатки
Достоинства и недостатки языка программирования Go (Golang) [6] :
Достоинства
- Простота. Упрощенный синтаксис позволяет уменьшить время на освоение языка и увеличить скорость разработки. Именно это делает Go подходящим для больших корпораций языком. Когда разработкой занимаются сотни программистов одновременно — это имеет значение.
- Быстрая компиляция.
- Хорошая версионность и бесплатные обновления.
- Большое количество библиотек. Многое можно реализовать через простую и понятную библиотеку Go, но также эффективно можно работать и с библиотеками на C.
Недостатки
- Небольшое количество вакансий. Потребность даже в опытных в разработчиках на Go относительно невелика, а вариантов для новичков еще меньше.
- Принудительное форматирование. Это спорная особенность, которую не всегда можно считать недостатком: каждый следующий разработчик точно знает, чего ждать от кода предшественника.
- Упрощенный синтаксис иногда создает проблемы. Язык буквально навязывает его, не позволяя писать код по-своему. Если разработчику доступен только единственно верный вариант, сохранить уникальный стиль программирования у него не получится.
Почему язык Go пользуется популярностью
Язык программирования Go приобрел популярность из-за того, что этот молодой язык программирования позволяет создавать безопасные и масштабируемые приложения с минимальными усилиями. Go используется такими компаниями, как IBM, Intel, Ozon, Avito и ВКонтакте. Сохраняется вероятность того, что другие ит-гиганты постепенно перейдут на этот язык программирования, поскольку среди крупных команд разработчиков этот вариант кажется наиболее надежным.
Благодаря своей простоте, ясности и небольшому руководству Go также идеально подходит для обучения начинающих — его часто выбирают в качестве первого языка программирования. Go — это амбициозная попытка извлечь максимум пользы из таких языков, как C++, Java и Pascal. Это относительно простой язык, которым можно овладеть за короткое время, а это значит, что можно быстро развивать своих специалистов внутри компании. Нет никакой гарантии, что Go станет самым популярным в будущем, но несомненно, что принципы, использованные при его создании, применимы к любому новому языку [7] .
Примечания
- ↑Язык Go: что под капотом и зачем программисту учить его как второй(рус.) . Скилбокс. Дата обращения: 7 октября 2023.
- ↑История языка Golang(рус.) . Ответы на вопросы про IT. Дата обращения: 7 октября 2023.
- ↑Эволюция Go(неопр.). Хабр. Дата обращения: 8 октября 2023.
- ↑Язык Go: особенности и сферы применения(рус.) . ООО «ГикБреинс». Дата обращения: 8 октября 2023.
- ↑История возникновения языка программирования Go(рус.) . Perfect Quality Hosting. Дата обращения: 8 октября 2023.
- ↑Где используется язык программирования Go?(рус.) . Библиотека программиста. Дата обращения: 8 октября 2023.
- ↑Язык программирования Go: почему все его любят и что на нем можно писать(рус.) . Хекслет – лучший IT-колледж. Дата обращения: 8 октября 2023.
Ссылки
- История языка Golang
- Язык Go: особенности и сферы применения
- Где используется язык программирования Go?
- Язык Go: что под капотом и зачем программисту учить его как второй
- Язык программирования Go: почему все его любят и что на нем можно писать
Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!
- Знание.Вики:Cite web (неверный код языка)
- Знание.Вики:Статьи без ссылки на Викисклад
- Языки программирования по алфавиту
- Языки программирования, появившиеся в 2009 году
- Технологии
- Все статьи
- Языки программирования
- Свободное и открытое программное обеспечение
- Google LLC
- Языки программирования семейства Си
- Многопоточные языки программирования
- Процедурные языки программирования
- Языки программирования с автоматическим управлением памятью
- Свободные компиляторы и интерпретаторы
- Кроссплатформенное программное обеспечение
Go язык программирования для чего
Если сравнивать с Python, то Go обходит его в производительности в несколько, а порой и в десять раз. Есть целый ряд случаев, когда это имеет решающее значение для бизнеса.
Как пример — интернет-реклама и скорость открытия баннера. Одно дело, когда баннер отображается через 500 миллисекунд, а вместе с тем подвисает весь сайт, что раздражает пользователя. Другое — когда всё загружается за 50 миллисекунд и проходит гладко.
Еще один сервис, где скорость работы критична, — маркетплейс. Пользователи открывают десятки страниц, выставляют фильтры и надеются, что всё быстро загрузится. Медленная работа сервиса имеет высокую цену: покупатель уходит на другую площадку, потому что не дождался загрузки страниц. И здесь снова приходит на помощь Go.
RB.RU рекомендует лучших поставщиков цифровых решений для вашего бизнеса — по ссылке
Когда данных очень много
Go отлично справляется с нестандартными кейсами, когда нужно написать свою базу или параллельно обрабатывать большое количество данных, — например, в такси.
Пользователь делает заказ и надеется, что машина будет быстро найдена. В это время сервис получает точку отправления и должен вычислить, какой из десяти автомобилей к ней ближе всего, определить рейтинг водителя и дистанцию будущего маршрута, предложить взять заказ тому или иному водителю и так далее.
В памяти сервиса оказывается огромное количество информации по каждому такси, и все это нужно смоделировать, чтобы выдать пользователю самый релевантный вариант.
Здесь не получится написать код, который будет работать с обычной базой данных, — задача слишком большая и в ней множество нюансов. Приходится писать свою базу данных под конкретную задачу — подбор машины. Для этого используют языки, которые эффективно работают с компьютерной памятью. Сюда входят Go, С# и C++.
Вернемся к примеру с маркетплейсами. На них параллельно идут десятки и сотни тысяч скидочных программ разного формата. И нужно сделать так, чтобы скидки считались корректно, зависимости между ними учитывались и в итоге пользователь видел цену с учетом всех акций.
Здесь не получится взять стандартную базу данных и внести в нее пару скидочных программ — задача гораздо сложнее.
Когда проект состоит из микросервисов
Если у вас большой сервис, состоящий из нескольких маленьких, то Go подойдет для написания отдельных его частей. Данный язык — надежный вариант, когда создали сервис, оставили на серверах на пару лет и за это время он стабильно работает, ничего с ним неожиданного не приключилось.
Таким образом, можно написать на нем лишь часть продукта, а потом к нему не возвращаться какое-то время.
Пример этого — голосовые помощники, которые состоят из разных навыков. Та же Алиса работает как калькулятор, отдельная ее часть может рассказывать о погоде или читать детскую сказку. Каждый из этих навыков можно отдельно писать на Go.
Более того, Go помогает экономить на поддержании работы микросервисов. Когда продукт — цельный монолит, проблем нет. Когда же он состоит из небольших частей, то за каждой из них разработчикам приходится постоянно следить и «подкручивать» любой микросервис, если он дает сбой. Это приводит к тратам бизнеса.
Go же по стоимости его поддержки намного дешевле за счет надежности. То же такси сильно завязано на надёжности, поэтому Go для него — прекрасный вариант.
Когда проект быстро растет
У языка Go не такой высокий порог входа. Разработчик, владеющий, скажем, PHP, быстро разберется в Go и сможет влиться в работу над проектом. В этом смысле Go уникален: нет необходимости два года погружаться в устройство языка, если до этого был опыт бэкенд-разработки — достаточно общих навыков программирования.
Вся спецификация языка заключена буквально в одной веб-странице, он прост для освоения — начать изучать Go можно уже в школе. При этом на нем можно сразу писать промышленный код, создавать проекты и собирать портфолио для работы.
Благодаря простоте и гибкости Go популярен в стартапах и пилотных запусках. Если проект перейдет в стадию быстрого масштабирования, нанять специалистов будет достаточно просто.
Кроме того, благодаря активному сообществу, в котором специалисты по Go делятся своими рабочими решениями, производительность таких программистов значительно выше. Во многих случаях разработчик может использовать под свою задачу готовое решение вместо того, чтобы реализовывать его с нуля.
Большое количество готовых решений ведет к стандартизации. А значит, разработчику будет проще переходить работать из одного проекта в другой, а бизнесу — проще нанимать новых специалистов. Вместе с тем через активное сообщество проще находить кадры.
Случаи, когда Go не подойдет
Главное, что следует помнить, — Go нужен для сложной и продуманной архитектуры. Если же речь об MVP, прототипе, который нужен, чтобы протестировать гипотезы, смысла выбирать Go нет: выйдет дольше и дороже.
Второй момент, где Go не силен, — работа с машинным обучением. Для этой задачи попросту нет хороших библиотек на Go. Лучше использовать языки, в которых есть интеграции с системами машинного обучения, — например, Python или Scala.
В любом случае при выборе языка программирования для изучения или работы важно понимать его сильные стороны и ограничения. А в случае бизнеса следует прописать, какие задачи предстоит решать, и разобраться, подходит ли для них Go. Тогда вы сможете найти самого подходящего техлида, на которого сможете положиться и который поможет с дальнейшим вектором развития.
Фото на обложке: go.dev
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!
Язык программирования Go: мнения и перспектива

Go – это язык программирования, который был разработан корпорацией Google. Часто его еще называют «Golang» – сокращение от «Google language». Это компилируемый и многопоточный язык, релиз которого состоялся в ноябре 2009 года, а самый свежий выпуск 1.6 датируется февралем 2016 года. Одной из ключевых фигур, которые принимали участие в создании Go, является Роб Пайк, известный разработчик языков программирования, а также операционных систем, в данный момент работающий в Google. Выступая на одной из конференций, он отметил, что язык Go – это попытка перенять лучшие стороны таких языков, как C++ и Java.
В этой статье мы попробуем разобраться, насколько популярен язык Go, есть ли у него перспективы развития и что об этом языке думают сами программисты.
Применение Golang
Язык Go разрабатывался как язык для создания различных высокоэффективных программ, однако большинство программистов сходятся во мнении, что лучше всего он подходит для создания веб-приложений (в качестве back-end). При этом Go дает возможности писать и другие проекты, к примеру, Docker, InfluxDB и Kubernetes. По сути, применение языка Go ограничивается тремя основными направлениями: сетевое программное обеспечение, консольные утилиты и бэкенд.
Одной из отличительных особенностей языка является оригинальная система типов: в языке отсутствует наследование (один из принципов объектно-ориентированного программирования). Также в Go используется сокращенный синтаксис определения переменных и синтаксис анонимных функций.
Еще одна особенность этого языка – параллелизм, который заключается в том, что любая функция может быть выполнена одновременно с другой.Так как Go является одним из молодых языков программирования, регулярно возникают обсуждения целесообразности его использования.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостейПлюсы языка Go
У языка Go есть несколько положительных черт, выделяемых программистами, которые на нем пишут.
Во-первых, это его простота. Язык Go разрабатывался в качестве замены C: его высокая производительность почти сопоставима с языком Си, но более простой синтаксис дает возможность разрабатывать приложения гораздо быстрее (к примеру, как на Python). При этом многие разработчики изучают этот язык после Python или PHP либо используют два языка в связке (Python/Go и PHP/Go). Упрощенный синтаксис облегчает не только написание своего собственного кода, но и чтение кода, написанного другими программистами, что особенно важно в командной работе. Эта особенность Go, в свою очередь, ведет к другому важному факту: быстрое освоение Go позволяет перевести внимание с изучения самого языка на изучение программирования в целом.
Программисты постоянно сравнивают язык Go с другими языками: в его пользу свидетельствует тот факт, что, к примеру, в PHP существует 67 ключевых слов, а в Go их всего лишь 25.
Тут необходимо сделать отступление и сказать о том, что желание создать простой язык программирования родилось у разработчиков Google неслучайно: изначально они задумывали Go как быстро изучаемый язык, который запросто могут выучить несколько не очень опытных программистов для того, чтобы затем вместе написать какое-нибудь приложение. Именно поэтому некоторые считают язык Go языком, пригодным для больших корпораций, где в разработке продуктов будет участвовать множество разных людей. Как уже было замечено выше, простой и понятный синтаксис ведет к тому, что программистам Go не нужно вводить какие-то другие стандарты, обозначения или комментарии – они и без этого отлично поймут код друг друга. Многословность Go радует одних разработчиков и огорчает других, но именно благодаря ей код Go читается так легко.
Поэтому некоторые компании (к примеру, CrowdStrike) сознательно переходят с других языков программирования на Go для того, чтобы в дальнейшем более легко расширять пул своих разработчиков.
Во-вторых, Go имеет большое количество библиотек, благодаря которым можно выполнить практически любую поставленную задачу. Многое можно реализовать, используя только стандартную библиотеку Go, которая легко читается, а также отличается хорошим качеством и скоростью. Отдельного внимания заслуживает эффективное взаимодействие с библиотеками языка Си; некоторые отмечают, что Go-библиотеки по факту являются просто обертками над С-библиотеками.
В-третьих, Go это компилируемый язык, на котором можно быстро написать необходимое приложение. Go имеет такую же строгую статическую типизацию, как Pascal, но в то же время он имеет гораздо больший прикладной характер (и это роднит его с Python). Тут необходимо отметить высокую производительность Golang, которая характерна для компилируемых языков. Также в Go значительно облегчена кроссплатформенность.
Нельзя не отметить и четкую направленность языка: в отличие от PHP, на котором пишут большие проекты, Go больше предназначен для некрупных сервисов, которые необходимо быстро внедрить и которые должны отличаться чрезвычайной надежностью (так называемое robust software).
Развертка Go-приложения также выглядит намного проще, чем развертка приложения, написанного на PHP. Программируя на Go, вы можете создать артефакты для всех операционных систем или архитектур процессора, вам не нужно будет устанавливать Go на используемые вами сервера.
Синтаксис Go может быть непривычен тем, кто до этого программировал на PHP или Python. Если рассматривать код Go в сравнении с PHP, то Go не имеет объектов или классов, зато в нем есть структура, а точнее тип, который содержит именованные поля:
type Circle struct
Еще одной причиной, по которой Go завоевывает все большую популярность, является наличие go fmt – инструмента, который помогает стандартизировать код. А использование go vet поможет вам найти возможные проблемы в коде. Иными словами, авторы языка Go попытались максимально упросить задачу разработки приложений на этом языке, особенно для новичков.
Именно поэтому многие на данный момент считают Go одним из лучших языков программирования и советуют изучать его не только студентам, но и школьникам. Кстати, такой прецедент уже был: учитель научил несколько 11-летних школьников писать и разбираться в коде на таком уровне, что они смогли написать генератор фракталов Мандельброта. А главное, для этого ему понадобилось всего 12-13 часов!
Стать профессиональным Go-разработчиком можно всего за 12 месяцев! Хотите узнать как? Заходите на сайт GeekBrains по этой ссылке.
Минусы языка Go
В качестве негативной стороны Go часто называют его малую на данный момент распространенность – действительно, есть куда более распространенные языки программирования, которые используются для выполнения большинства задач. Значит ли это, что изучать Go не стоит? Совсем нет. Существует множество корпораций, которые используют язык Go в своих разработках. В первую очередь это, конечно же, Google Inc., а также Basecamp, BBC Worldwide, Canonical, DigitalOcean, Dropbox, eBay, Yahoo и многие другие компании по всему миру. Поэтому перспективы у этого языка программирования точно есть. Безусловно, программисты Go могут быть менее востребованы, чем, к примеру, PHP-разработчики, однако и конкуренция ниже, а значит, выше шанс найти интересную и хорошо оплачиваемую работу.
Те, кто пытаются предугадать перспективы языка Go, также говорят о другом минусе, который фактически является противоположностью предыдущего пункта: из-за легкости языка, а значит, и низкого порога вхождения, количество людей, программирующих на Go, будет расти в геометрической прогрессии, при этом качество кода и сами проекты будут оставлять желать лучшего. Похожая ситуация в начале XXI века случилась с PHP, когда на этом языке стало писать множество начинающих программистов, не очень волнующихся за работоспособность своего кода (и готовых получать небольшую плату за свой труд). Главное отличие PHP от Go на данный момент заключается в том, что PHP в итоге стал полноценным языком с богатой инфраструктурой и множество фреймворков, без знания которых вы едва ли найдете хорошую работу. Go же позиционируется как простой язык, поэтому перспективы его развития не очень определены.
В рамках данной статьи я не буду останавливаться на сугубо технических моментах, которые вызывают недоумение у программистов, так как это абсолютно субъективные впечатления. Вопросы часто вызывает система типов, отсутствие дженериков, перегрузки операторов, возможности расширить ключевые слова, а также многое другое. Безусловно, Go не является идеальным языком, и при первом знакомстве с ним кому-то может не понравится различия с более привычным ему языком программирования.
Вывод
Язык Go еще достаточно молод для того, чтобы говорить о какой-то определенной перспективе. Однако уже сейчас многие воспринимают Go как современный или даже передовой язык, который способствует развитию языков программирования в целом. Даже если вы уже долго время являетесь сторонником какого-то определенного языка программирования, Go может предложить вам много новых инструментов, которые расширят ваш кругозор или даже вызовут желание разрабатывать приложения на Go. При этом вы потратите минимальное время на знакомство с синтаксисом этого языка (вплоть до пары дней), поэтому, даже если ваши ожидания в отношении Go не оправдаются, вы получите интересный и ценный опыт.