Кто, когда и с какой целью создал язык Go?

Ответ

Язык Go (или Golang) был разработан в компании Google. Работа над ним началась в 2007 году, а первый публичный релиз состоялся в ноябре 2009 года.

Создатели:

  • Роб Пайк (Rob Pike): Участник команды разработки операционной системы Unix и кодировки UTF-8.
  • Кен Томпсон (Ken Thompson): Один из создателей Unix, языка B (предшественника C) и UTF-8.
  • Роберт Гризмер (Robert Griesemer): Работал над движком V8 для JavaScript и платформой HotSpot для Java.

Цель создания:

Создатели хотели объединить лучшие черты существующих языков, чтобы получить инструмент, идеально подходящий для разработки в Google — для больших, масштабируемых сетевых сервисов и многопоточных приложений. Основные цели:

  • Эффективность компилируемых языков, таких как C++.
  • Простота и скорость разработки, как у динамических языков (например, Python).
  • Встроенная поддержка конкурентности для эффективного использования многоядерных процессоров.
  • Быстрая компиляция для ускорения цикла разработки.

Пример кода, демонстрирующий одну из ключевых идей — простоту и встроенную поддержку Unicode (благодаря опыту создателей с UTF-8):

package main

import "fmt"

func main() {
    // Поддержка UTF-8 "из коробки"
    fmt.Println("Hello, 世界") 
}

Ответ 18+ 🔞

А, слушай, вот эта история с Гоуленгом, она же пиздец как показательна! Язык, который, по сути, родился из того, что трое мужиков в Гугле посмотрели на то, чем они каждый день занимаются, и сказали: «Ну это же ёбаный стыд, блядь!»

Представь себе: сидят три таких, с позволения сказать, титана. Один, Роб Пайк, — это ж тот самый, кто с Юниксом на «ты», с UTF-8 вообще спал в обнимку. Второй, Кен Томпсон, — это вообще, блядь, живая легенда, отец того самого Си и пол-Юникса. Третий, Роберт Гризмер, — мозги, которые V8 для Жабаскрипта и HotSpot для Явы прокачивали. И вот они смотрят на свои задачи в 2007 году: сервисы, которые должны держать овердохуища запросов, тысячи потоков, распределённые системы — и понимают, что существующие инструменты — это как молотком гвозди забивать, когда тебе нужно небоскрёб построить.

И они такие: «Так, блядь. C++ — это мощно, да, но там можно так накосячить, что потом месяц будешь искать, где у тебя память потекла. Питон — просто, да, но когда он на сотне ядер ползёт, как черепаха, хочется повеситься. А конкурентность, эта вся многопоточная хуйня — там такие танцы с бубном, что волосы дыбом!»

И вот они, эти три чувака, садятся и говорят: «А давайте сделаем язык, который будет быстрым, как Си, но без этой ебанины с ручным управлением памятью. Который будет простым для чтения и написания, чтобы не тратить полжизни на разбор чужого говнокода. У которого прямо в ядре будет вшита поддержка этой всей параллельной хуйни — горутин, каналов — чтобы не изобретать велосипед каждый раз. И который будет компилироваться за секунды, а не за кофе-брейк!»

И ведь сделали, суки! В 2009 выкатили на публику. И главная их фишка — они не стали выёбываться со сложным синтаксисом. Всё по-человечески. Вот смотри, даже пример их философии — работа с текстом. Они же UTF-8 придумали, так они его в язык сразу, нахуй, встроили. Никаких тебе костылей.

package main

import "fmt"

func main() {
    // Поддержка UTF-8 "из коробки"
    fmt.Println("Hello, 世界")
}

Видишь? Написал 世界 (это «мир» по-китайски, если что) — и ни одной проблемы. Не надо никаких импортов специальных, конвертаций — работает, блядь, как часы. Потому что для них это было очевидно: язык для всего мира делаем, а не для избранных.

Вот так и получился Go. Не от большого ума, а от большого, блядь, беспокойства. Когда надоело каждый раз решать одни и те же проблемы, которые другие языки создают просто своим существованием. Собрали лучшее, отсеяли хуйню, добавили свою магию — и получился инструмент, на котором сейчас пол-интернета сидит. Ёпта, вот что значит, когда за дело берутся не теоретики, а практики, которые сами в этом дерьме по уши!