В 2007 году компания Google хотела повысить эффективность программирования для своих сетевых машин с одновременными пользователями, использующими многоядерные процессоры и обширные базы данных. Роберт Гризмер, Роб Пайк и Кен Томпсон придумали язык Go. В марте 2012 года Go стал одним из языков программирования, ставших общедоступными.
Go стал популярен среди разработчиков, потому что это простой, безопасный с точки зрения типов язык, и это один из самых простых языков программирования для изучения. В этой статье мы поговорим о том, кто и для чего использует Go, в том числе о том, какие компании его применяют.
Что такое Go?
Go — один из ведущих современных языков программирования, в котором особое внимание уделяется простоте, надежности и скорости выполнения. Разработчики Go смешали практичные и эффективные языковые особенности других популярных языков. Он сочетает статическую типизацию языка C и быстрое время выполнения с простым и лаконичным синтаксисом Python и JavaScript. Кроме того, в него встроены такие функции, как безопасность памяти за счет использования виртуальной памяти, сборка мусора и статическая проверка типов.
Go используется для фронт- и бэкенд-сервисов. Встроенные фреймворки тестирования отлично подходят для бэкенд-проектов. Разработчики бэкенда могут использовать Go для удовлетворения требований серверной стороны, которой требуется как можно меньше памяти. Он также не отстает даже при одновременной работе в сети с несколькими пользователями. Многие компании используют этот современный язык программирования именно поэтому.
Насколько популярен язык Go?
Go завоевывает все большую популярность в качестве языка сценариев для разработчиков. Он является основным языком для тех, кто использует продукты Google. Ниже приведены некоторые факты, свидетельствующие о популярности Go.
- Он занимает 9-е место в рейтинге самых популярных языков программирования в мире. Согласно индексу популярности языков программирования (PYPL) по состоянию на август 2024 года в рейтинге TIOBE язык Go занимает 9-е место по популярности в мире.
- В 2022 году он приобрел большую популярность, чем в 2021 году. В индексе TIOBE за январь 2022 года Go поднялся на тринадцатое место с четырнадцатого места в 2021 году, а в 2024 он уже в топ-10.
- Go — в 2021 году был четырнадцатый наиболее часто используемый язык программирования для разработчиков. Согласно опросу разработчиков, проведенному компанией Insight в 2021 году, более 10% респондентов сообщили, что используют его. Более того, 62,74% участников опроса заявили, что им нравится использовать Go.
Для чего используется Go?
Изначально Go был разработан и использовался для высокопроизводительных сетевых и инфраструктурных программ. С течением времени различные отрасли промышленности и бизнеса перешли на использование Go благодаря его превосходной обработке больших рабочих нагрузок. Ниже перечислены некоторые области применения Go.
Разработка облачных приложений
Go отлично подходит для различных облачных сервисов и вычислительных платформ. Он идеально подходит для больших облачных распределенных систем и масштабируемых сетевых серверов. Go используется для разработки различных инструментов облачных вычислений, таких как Dockers и Kubernetes, а также облачного почтового сервиса Google, известного как Gmail. Крупные поставщики облачных сервисов, такие как Azure и AWS Lambda от Microsoft, перешли на Go.
Эксплуатация и обслуживание медиаплатформ
Go — основной язык, на котором ведутся и управляются музыкальные трансляции на SoundCloud и видеопотоки на YouTube. Эти онлайновые медиаплатформы имеют большие объемы данных в виртуальной памяти и кэш-сервисе, к которым необходимо получить доступ и распространить среди обширной базы пользователей.
Протоколы HSL и скорость выполнения Go идеально подходят для одновременных пользователей и сетевых потребностей, обеспечивая потребителям плавное потоковое вещание и минимальные сбои.
Системы онлайн-бронирования
Системы онлайн-бронирования в таких сервисных приложениях, как Uber, Delivery Hero и Trivago, созданы с помощью Go. Геобаза Uber написана на Go, а облачная микросервисная архитектура Delivery Hero использует облачные инструменты Docker и Kubernetes, созданные на Go. Go упрощает управление приложениями и их взаимодействие с другими платформами. Кроме того, строчки кода для сервисов заказов и платежей легко настраивать и расширять.
Кибербезопасность
Кибербезопасность набирает популярность и, как ожидается, будет продолжать расти как отрасль. Статическая типизация Go, которая используется в серверах и облачных средах, идеально подходит для кибербезопасности. Компания 1Password защищает пароли и ценную, конфиденциальную бизнес-информацию более 60 000 предприятий. Ее внутренний сервер, 1Password Administrator Tools, был создан с использованием Go.
Компании использующие Go: обзор
Компания | Область | Сотрудников |
---|---|---|
1Password | Кибербезопасность | 570 |
Alibaba | Разработка облачных приложений | 258 578 |
American Express | Кибербезопасность | 63 700 |
Capital One | Кибербезопасность | 51 985 |
Dropbox | Разработка облачных приложений | 2 760 |
Riot Games | Эксплуатация и обслуживание медиаплатформ | >3 000 |
Samsara | Разработка облачных приложений | 1 500 |
Slack | Разработка облачных приложений | 1 664 |
Twitch | Разработка облачных приложений | 1 800 |
Uber | Системы онлайн-бронирования | 19 000 |
Компании использующие Go: подробнее
Помимо Google, многие компании начали использовать Go в качестве языка программирования. Ниже вы найдете подробную информацию о десяти самых известных компаниях, использующих Go.
1Password
1Password — самый популярный безопасный менеджер паролей для предприятий. Это самый простой и безопасный способ хранения логинов, паролей и другой ценной и конфиденциальной информации, например данных кредитных карт. Внутренний сервер 1Password использует язык Go для своих инструментов администратора. Это позволяет владельцам бизнеса управлять 1Password для своей компании, делая восстановление учетных записей простым и безопасным.
Средняя зарплата сотрудников 1Password, использующих Go
- Старший инженер полного стека — $155 000
- Инженер по веб-разработке фронт-энда — $108 000
- Разработчик программного обеспечения для настольных компьютеров — $97 000
Alibaba
Alibaba — международная технологическая компания, занимающаяся электронной коммерцией, розничной торговлей и технологиями. Ее контейнерный движок, PouchContainer, написан на языке Go. Он может выполнять любые программы с высокой степенью изоляции, низкими требованиями к хранению данных и более коротким временем выполнения. PouchContainer был развернут на сотнях нод, что позволило обеспечить безопасные и бесперебойные онлайн-транзакции в приложении и на сайте Alibaba.
Средняя зарплата сотрудников Alibaba, использующих Go
- Веб-разработчик переднего плана — $115 000
- Инженер DevOps — $152 000
- Инженер систем распределения — $100 000
American Express
Компания American Express (Amex) известна во всем мире своими кредитными картами и комплексной обработкой платежей. В 2016 году Amex искала язык программирования с высоким параллелизмом и низкой задержкой для своей платформы платежей и вознаграждений. Amex протестировала Go наряду с другими языками программирования, и он превзошел все остальные, оправдав свои амбиции. Кроме того, сборщик мусора в Go помог улучшить обработку транзакций Amex в режиме реального времени.
Средняя зарплата сотрудников American Express, использующих Go
- Инженер DevOps — $112 000
- Инженер баз данных — $121 751
- Разработчик приложений — $106 619
Capital One
Capital One — американская банковская холдинговая компания, которая специализируется на технологических финансовых продуктах, таких как кредитные карты, автокредиты, банковские и сберегательные счета. Одним из ее предложений является API Credit Offers, который позволяет партнерам, таким как CreditCards.com и Bankrate, показывать пользователям различные варианты кредитных карт. Созданный в 2016 году API на Go распознает, получил ли клиент предложение по продукту или промо-акцию.
Средняя зарплата сотрудников Capital One, использующих Go
- Инженер по автоматизации — $108 655
- Разработчик баз данных — $118 540
- Инженер по облачным технологиям — $128 780
Dropbox
Dropbox — это облачное хранилище, сервис синхронизации файлов и клиентское программное обеспечение. В связи с ростом числа пользователей компании потребовалось найти новые способы эффективного масштабирования систем. Критичные по производительности бэкенды Dropbox были переведены с Python на Go для большей поддержки параллелизма и более быстрого времени выполнения.
Компания также выпустила несколько библиотек Golang для улучшения кэш-сервисов и стандартного интерфейса ошибок. В 2020 году Dropbox начала переход на бессерверную управляемую платформу. Цель — уменьшить запутанность кода и снизить нагрузку на инженерные команды.
Средняя зарплата сотрудников Dropbox, использующих Go
- Инженер по автоматизации — $138 787
- Инженер по инфраструктуре — $180 286
- Инженер по машинному обучению — $167 757
Riot Games
Riot Games, Inc. — разработчик видеоигр, издатель и организатор киберспортивных турниров. Riot Games наиболее известна своим флагманским продуктом, League of Legends, многопользовательской онлайн-игрой с ареной для сражений. В большинстве случаев разработчики используют Go для разработки кода.
Docker runtime используется инструментом развертывания для установки и управления жизненным циклом сервисов. Вся микросервисная архитектура бэкенда Riot Games — от контроля за работой игрового сервера до покупки различных товаров — построена на сервисах Go.
Средняя зарплата сотрудников Riot Games, использующих Go
- Инженер DevOps — $130 224
- Инженер инфраструктуры — $121 784
- Инженер платформы — $183 486
Samsara
Samsara Inc. — компания, специализирующаяся в области Интернета вещей (IoT), которая разрабатывает и производит сенсорные системы с облачной аналитикой и удаленным подключением к сети. Ее промышленная IoT-платформа на базе Go позволяет следить за парком транспортных средств и оборудования.
Программы безопасности на основе искусственного интеллекта (ИИ), обзор в реальном времени и интегрированная экосистема — все это является частью платформы. Внутренние сервисы Samsara работают на Go, включая собственный открытый GraphQ, облачные настройки и прошивку.
Средняя зарплата сотрудников Samsara, использующих Go
- Разработчик бэкенда — $192 000
- Инженер полного стека — $188 692
- Разработчик приложений — $100 753
Slack
Slack — это коммерческое приложение для совместной работы и общения, насчитывающее более 10 миллионов пользователей. В нем доступны многие функции в стиле IRC, включая постоянные чаты, сгруппированные по темам, приватные группы и прямые сообщения. В связи с растущей пользовательской базой разработчикам Slack пришлось искать способы повысить производительность функций и обеспечить их работоспособность в условиях высокой нагрузки.
Инженерные команды компании используют Go для нагрузочного тестирования и масштабирования очередей заданий. Параллелизм Go идеально подходит для чат-серверов Slack, выполняющих множество функций. Его высокая масштабируемость и быстрое время выполнения идеально подходят для создания приложений для обмена сообщениями.
Средняя зарплата сотрудников Slack, использующих Go
- Инженер по интеграции — $98 900
- Инженер по надежности сайта — $115 654
- Инженер по платформе — $98 900
Twitch
Twitch — это платформа для прямых трансляций видеоигр. Она специализируется на трансляции видеоигр, киберспортивных соревнований, музыки и творческого контента в режиме реального времени. Twitch использовал Go для разработки RPC-фреймворка под названием Twrip — средства коммуникации между внутренними серверами. Он используется для обеспечения высочайшего качества видеопотоков для своих пользователей.
Средняя зарплата сотрудников Twitch, использующих Go
- Инженер DevOps — $138 863
- Разработчик полного стека — $199 558
- Инженер по безопасности приложений — $191 000
Uber
Uber — это международная компания, предоставляющая услуги по перевозке пассажиров, чьи серверы построены на Go. Благодаря высокой производительности и низкой задержке, Uber использует Go для написания своих сервисов, таких как GeoFence и GeoBase. Сервис GeoFence показывает пользователям доступные автомобили и рассчитывает цены в зависимости от расстояния. Водители и пассажиры сопрягаются через Geobase, один из самых актуальных сервисов Uber, созданный на Golang.
Средняя зарплата сотрудников Uber, использующих Go
- Разработчик полного стека — $143 351
- Android-разработчик — $153 900
- Облачный инженер — $134 631
Подходит ли Go мне?
Язык Go завоевал популярность в технологических компаниях, особенно в сфере разработки программного обеспечения, благодаря своим возможностям параллелизма, безопасности типов и возможности повторного использования кода.
С развитием технологий растет потребность в более эффективных результатах при создании новых языков программирования. Внедрение языка программирования Go может привести к более быстрому и эффективному написанию кода, что приведет к повышению производительности.
Многие компании переводят свои бэкэнд-сервисы на Go, что повышает спрос на специалистов по Go. Сейчас самое время изучать этот язык программирования для разработки приложений и веб-сайтов, если вы собираетесь сменить работу или просто продвигаетесь по карьерной лестнице разработчика.
Вопросы и ответы по использованию го
Стоит ли изучать Го?
— Да, Go стоит изучать. Многие компании сейчас используют этот язык программирования для различных целей, а специалисты по Go часто востребованы ведущими компаниями.
Востребован ли Go?
— Да, в настоящее время Go является востребованным языком программирования, особенно для корпораций, использующих продукты Google. Uber, Medium, Dropbox, Salesforce и Netflix — вот некоторые из самых популярных компаний, использующих Go.
Используется ли Go для разработки фронт-энда или бэкэнда?
— Go используется как для фронт-энда, так и для бэкэнда. Он более предпочтителен в качестве языка программирования бэкенда из-за высокой производительности при создании приложений с одновременной обработкой данных.
Каковы ограничения Go?
— Go менее описателен, чем другие языки. Написание кода для функций и приложений может включать несколько строк кода на Go. Однако Python может выполнить ту же задачу с помощью более короткой последовательности кода.