В следующей серии статей я собираюсь предоставить руководство по изучению языка Go. Язык Go - это язык программирования, разработанный исследователями информатики в Google. Два из первоначальных разработчиков, Роб Пайк и Кен Томпсон, участвовали в разработке C и Unix в Bell Labs. Go имеет несколько технических функций, которые выделяют его среди других языков программирования, и вам следует подумать о его изучении в своем следующем проекте по изучению языков программирования.

Go похож на C

Поскольку два разработчика Go также входили в группу C / Unix в Bell Labs, логично предположить, что этот язык во многом похож на C. Go унаследовал многие функции программирования от C, такие как формирование выражений и т. Д. базовые структуры потока управления (хотя в Go нет конструкции цикла while), параметры вызова по значению и указатели. Однако наиболее важной особенностью Go, унаследованной от C, является упор на эффективную компиляцию и ее близость к способам работы современных операционных систем. (См. Книгу Алана Донована и Брайана Кернигана The Go Programming Language, чтобы узнать больше о сходстве с C.)

Концепции, заимствованные из других языков

Разработчики Go также искали идеи на других языках. Пакеты в Go используются функциями Oberon и Oberon-2. Эти языки были разработаны известным компьютерным ученым Никлаусом Виртом, и на концепции, касающиеся пакетов, импорта и объявлений методов, реализованных в Go, сильно повлияла работа Вирта с Oberon и Oberon-2.

Язык Go был разработан частично для продвижения определенных концепций, касающихся параллелизма, которые были разработаны Робом Пайком и его коллегами из Bell Labs. Эти языки, в том числе Alef, Squeak и Newsqueak, а также операционная система, разработанная в Bell Labs, но не реализованная за пределами этой организации, Plan 9, малоизвестны в индустрии программирования, но оказали большое влияние на исследования в области компьютерных наук в область параллелизма.

В своей книге Донован и Керниган также упоминают, что Go находился под влиянием таких языков, как APL, Scheme, а также современных версий языка динамического программирования, таких как Python.

Акцент в дизайне на мощь, но простоту

Одним из наиболее интересных аспектов Go является то, что он имеет возможности наряду с функциями, которые есть во многих «современных» языках программирования, которые Go решил не включать. Функции программирования, которые он содержит, включают лексическую область видимости, функции первого класса, неизменяемые строки, сборку мусора и систему пакетов. Список функций, которые он не учитывает, намного длиннее (этот список взят непосредственно у Донована и Кернигана): неявные числовые преобразования, конструкторы или деструкторы, перегрузка операторов, значения параметров по умолчанию, наследование, универсальные шаблоны, исключения, макросы, аннотации функций или поток -местное хранилище.

Go имеет хорошо оснащенную стандартную библиотеку для выполнения ввода / вывода, обработки текста, графики, криптографии, работы в сети и распределенных систем.

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

Скачивание и установка Go

Вы можете скачать язык с веб-сайта проекта: golang.org. Есть бинарные файлы для всех обычных операционных систем. Я расскажу вам о загрузке и установке для Windows.

Сначала перейдите на страницу загрузки языка Go (https://golang.org/dl/). Вот скриншот страницы:

Выберите Microsoft Windows. Затем просто следуйте инструкциям и выберите все значения по умолчанию, и он будет установлен на ваш компьютер. Когда он закончится, нажмите кнопку «Готово», и вы готовы приступить к работе.

Привет, мир! в Go

Следуя традиции, восходящей к C, предку Go, я представлю Go, написав программу, которая отображает «Hello, world!» на экране.

Откройте окно командной строки и перейдите в подкаталог, в котором установлен Go. Это должно быть c: \ go, если при установке вы следовали значениям по умолчанию. Теперь перейдите в каталог c: \ Go \ bin, где находится компилятор. Введите следующую программу в текстовый редактор, сохранив ее как hello.go:

package main
import "fmt"
func main() {
  fmt.Println("Hello, world!")
}

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

c:\Go\bin\go run hello.go

После компиляции вы увидите результат на экране, как показано на этом снимке экрана:

Продолжайте идти с Go

Это только первая из серии учебных статей, в которых вы узнаете больше о программировании на Go. Я собираюсь организовать статьи вокруг шаблонов программирования, чтобы представить язык как инструмент решения проблем и ориентировать свои статьи на использование языка для решения проблем, а не просто на объяснение функций языка Go.

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