В середине 2000-х инженеры Google — Роб Пайк, Кен Томпсон, Роберт Грисмер — писали миллионы строк на C++ и Java.
Они строили распределённые системы, писали под высокие нагрузки, но с каждым годом сталкивались с одними и теми же болями:
— 👩💻 C++ заставлял компилироваться по 45 минут, даже при мелких изменениях кода (собрать серьезный проект на C++ тот еще квест).
— 👩💻 Java требовал абстракции ради абстракции: «фабрика фабрик интерфейсов» (абстракции это круто, когда это уместно, но не всегда это требуется)
— 👩💻 Python тормозил в проде (на масштабах Google это сильно решало)
— Код расползался, его невозможно было читать, а уж тем более — быстро понимать
Роб Пайк прямо говорил:
Мы были недовольны масштабируемостью программирования — не систем, а команд.
Именно тогда в Google всерьёз задумываются о новом языке.
Что они хотели от него?
– минимальный синтаксис
– быстрый компилятор
– простую конкурентность
– читаемость на первом месте
– минимум магии и синтаксического сахара
Go не должен быть «умным». Он должен быть понятным.
👩💻 Так родился Go.
Не как игрушка.
А как ответ на очень конкретную боль — в реальной разработке, с реальными дедлайнами, в самых нагруженных системах мира.
Пару цитат от создателей:
🗣 Rob Pike:
"Go was born out of frustration with existing languages.
"C++ compilation times were killing us. We’d make a small change and wait forever."
"Go is not about innovation. It’s about making the right compromises."
— Go at Google (2012)
"I can’t tell you how many times I’ve had to dig through 5 layers of indirection in Java just to understand what a function does."
— Google Tech Talk (2012)
🗣 Robert Griesemer (V8, Go):
"It was time to ask: what do we actually need? Go is the result of that question."
"Languages that grew organically became too complex. We wanted to reset the baseline."
— Go Proverbs Talk (2015)
Постепенно Go стал вытеснять Python в инфраструктуре, Perl в автоматизации, Java в микросервисах. Сегодня Go — основа k8s, Docker, Prometheus, Etcd и тысяч продакшн-сервисов в Google, Meta, Uber, Netflix и т.д.
Go придумали, чтобы писать быстро, читать легко и меньше страдать (я бы сказала начать наконец-то получать удовольствие от процесса разработки).
И это работает!
Просто открой Go-код — и всё поймёшь.
