The Go Blog

Go Turns 10

Расс Кс, от имени команды Go
8 ноября 2019

С днём рождения, Go!

В этот уикенд мы отмечаем 10-летнюю годовщину выпуска Go, что соответствует 10-летию Go как языка программирования с открытым исходным кодом и экосистемы для создания современных сетевых программных решений.

В честь этого события, Рини Френч, создатель Go gopher, нарисовала этот замечательный сценарий:

Празднование 10 лет Go заставило меня вспомнить начало ноября 2009 года, когда мы готовились поделиться Go с миром. Мы не знали, какую реакцию вызовет язык, поймёт ли кто-нибудь этот маленький язык программирования. Я надеялся, что даже если никто не будет использовать Go, мы хотя бы привлечём внимание к хорошим идеям, особенно подходу Go к параллелизму и интерфейсам, которые могут повлиять на последующие языки.

Когда стало ясно, что люди интересуются Go, я обратился к истории популярных языков, таких как C, C++, Perl, Python и Ruby, и изучил, сколько времени потребовалось каждому из них, чтобы получить широкое распространение. Например, Perl казался мне полностью сформированным в середине-конце 1990-х годов, с CGI-скриптами и вебом, но был впервые выпущен в 1987 году. Этот паттерн повторялся почти для каждого языка, который я рассматривал: кажется, что новому языку требуется примерно десять лет тихого и стабильного развития и распространения, прежде чем он действительно начнёт набирать популярность.

Я задавался вопросом: где будет находиться Go через десять лет?

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

Первоначальная цель Go была сетевая инфраструктура систем, что мы теперь называем облачным программным обеспечением. Каждый крупный облачный провайдер сегодня использует основную облачную инфраструктуру, написанную на Go, такую как Docker, Etcd, Istio, Kubernetes, Prometheus и Terraform; большинство проектов Cloud Native Computing Foundation написаны на Go. Бесчисленные компании также используют Go для переноса своих собственных работ в облако, от стартапов, строящих всё с нуля, до корпораций, модернизирующих свои программные стеки. Go также нашёл применение далеко за пределами своей первоначальной облачной цели, с использованием, варьирующимся от управления миниатюрными встроенными системами с помощью GoBot и TinyGo до обнаружения рака с помощью массивного анализа больших данных и машинного обучения в GRAIL, и всего остального между ними.

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

В 2009 году язык был хорошей идеей с рабочим эскизом реализации. Команда go ещё не существовала: выполнялись команды вроде 6g для компиляции и 6l для компоновки бинарных файлов, автоматизированные с помощью makefile. В конце инструкций ставились точки с запятой. Весь программный код останавливался во время сборки мусора, которая затем не могла эффективно использовать два ядра процессора. Go работал только на Linux и Mac, на 32- и 64-битных x86 и 32-битных ARM.

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

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

Конечно, экосистема нуждается в поддержке процветающего сообщества. В 2019 году по всему миру проходят десятки конференций Go, а также более 150 групп встреч Go с более чем 90 000 участниками. GoBridge и Women Who Go помогают привлекать новые голоса в сообщество Go, через наставничество, обучение и стипендии на конференции. В этом году они уже обучили сотни человек из традиционно недооценённых групп на мастер-классах, где члены сообщества преподают и наставляют тех, кто только начинает изучать Go.

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

Как #GoTurns10, надеемся, что каждый возьмёт немного времени, чтобы отметить сообщество Go и всё, чего мы достигли. От имени всей команды Go в Google, спасибо всем, кто присоединился к нам за последние десять лет. Давайте сделаем следующее десятилетие ещё более невероятным!

Следующая статья: Go.dev: новый центр для разработчиков на Go
Предыдущая статья: Go Modules: v2 и далее
Индекс блога

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang