Найти в Дзене
Golang-news

Глава 2: Язык Go

Оглавление

Глава 2: Язык Go
Глава 2: Язык Go

1 Что вы узнаете из этой главы?

  • Происхождение Go: когда и кем он был создан.
  • Мотивы создания Go.
  • Каковы основные характеристики языка?

2 охваченных технических концепции

  • Время сборки
  • Статически типизированный язык
  • параллелизм
  • Уборщик мусора
  • Программная зависимость

3 Миф о творении

Существует миф о создании Go. Язык родился в офисе Google, и это произошло во время очень долгой сборки, которая заняла 45 минут.

Эту историю рассказал Роб Пайк. Это дает нам ценную информацию о мотивах создания Go. Время сборки было слишком долгим и болезненным... им нужно было найти способ избежать этого; это была точка входа Go Genesis.

Роберт Гриземер, Кен Томпсон и Роб Пайк — разработчики, которые начали работу над Go еще в 2007 году. Роб Пайк утверждает, что к середине 2008 года язык «в основном был разработан, а реализация (компилятор, среда выполнения) начала работать. ». После этого в 2008 году к команде присоединились Ян Лэнс Тейлор и Расс Кокс.

Go — это язык программирования с открытым исходным кодом, поддерживаемый его сообществом и основной командой разработчиков, работающих в Google. 16 марта 2011 года — дата первого релиза Go. (Он был назван « r56 »). Первая версия Go была выпущена 28 марта 2012 года.

4 мотивации

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

Каковы проблемы программного обеспечения в крупных мировых компаниях?

  • Кодовая база сервисов Google огромна. У Google миллионы строк кода.
  • Эти строки написаны на разных языках: C, C++, Java и других.
  • Время сборки этих приложений «растянулось на многие минуты, даже часы».
  • Обновления некоторых частей приложения могут быть дорогостоящими.

Цель первого Gophers состояла в том, чтобы облегчить жизнь разработчиков за счет:

  • Значительно сократить время сборки программ.
  • Разработка языка, который легко изучать, читать и отлаживать для молодых разработчиков, знакомых с C, C++ или Java.
  • Разработка эффективной системы управления зависимостями .
  • Создание языка, который может создавать программное обеспечение, которое хорошо масштабируется на оборудовании.

4.1 Определение некоторых понятий

  • Время сборки : количество времени, необходимое компилятору для создания машиночитаемого исполняемого файла.
  • Статически типизированный язык : давать точное определение этой концепции сейчас преждевременно. Мы рассмотрим этот термин в следующих главах.
  • Зависимость : часть программного обеспечения, которое используется другим программным обеспечением.
  • Масштабируемость : способность программы справляться с растущим количеством задач, которые необходимо выполнить. Например, веб-сайт называется масштабируемым, если он может принимать увеличивающееся количество запросов без простоев или увеличения задержки загрузки.

5 ключевых функций Go

Создатели Go сосредоточили свои усилия на нескольких важных вариантах дизайна. :

  • Компилируемый язык
  • С семантикой легко понять и изучить
  • Статически типизированный
  • Со встроенным параллелизмом система, над которой легко работать разработчикам
  • С надежным управлением зависимостями
  • С сборщиком мусора

Основная цель, как заявил Роб Пайк, заключалась в том, чтобы дать разработчикам простой в освоении язык для «разработки крупных программных проектов».

5.1 Некоторые концепции

  • Параллелизм : программа является параллельной, когда задачи могут выполняться не по порядку или в частичном порядке 2 .
  • Сборщик мусора (часто называемый GC): когда мы создаем программы, нам нужно хранить данные и извлекать данные из памяти. Память не бесконечный ресурс. Поэтому разработчик должен следить за тем, чтобы неиспользуемые элементы, хранящиеся в памяти, время от времени уничтожались. Помещение некоторых данных в память называется размещением; обратное действие, заключающееся в удалении данных из памяти, называется освобождением памяти. Роль сборщика мусора заключается в освобождении памяти, когда она больше не используется. Когда в языке нет никакого сборщика мусора, разработчику приходится собирать свой мусор и освобождать память, которая больше не используется... Случайно в Go есть сборщик мусора.

6 Состояние Go

  • Проект рос очень быстро, и сейчас насчитывает более тысячи участников.
  • На момент написания статьи (8 января 2020 г.) последней версией Go была 1.15.6.
  • Организуется множество встреч и конференций для объединения сообщества. В 2018 году было организовано 19 конференций: 3 в США и 16 в других странах. В 2017 году было организовано 13 конференций.
  • Go нужен разработчикам: в 2018, 2019 и 2020 годах в опросе разработчиков Stackoverflow Go входит в тройку самых востребованных языков программирования.