Снова приветствую всех читателей! В этой статье я хочу продолжить серию статей про языки программирования. Ведь эта тема практически неисчерпаемая. В этот раз мы поговорим про относительно молодой язык программирования, у которого просто потрясающий потенциал. Имя этому языку Go или же в простонародье Golang. И да, именно этот язык я учу на данный момент.
Язык Go был придуман в недрах секретной лаборатории Google, и первый его релиз состоялся в 2009 году. Сразу после выхода язык наделал много шума, и встретить программиста, который не знает о нём, довольно трудно. Почему, спросите вы? Потому что Golang – не просто новый красивый язык программирования с милым маскотом, он – функциональный, практичный и чертовски быстрый. Но давайте по порядку.
До того, как Роберт Гризмер, Роб Пайк и Кен Томпсон создали свой шедевр по имени Go, разработка современных проектов велась на таких языках программирования, как: Java, Python, JavaScript, PHP или же на всевозможных Си подобных языках. Конечно, были и другие, но они гораздо менее популярны.
Что общего между этими языками? Почтенный возраст. Они появились на свет, когда автора этих строк не было на нём. Java, JavaScript и PHP в 1995, Python в 1991, Си вообще в 1972.
«Ну, старые они, и что?» – появится у вас в голове такой вопрос. Проблема заключается в том, что эти языки создавались в то время, когда про многоядерные процессоры можно было прочитать лишь в фантастических журналах, тогда как в наше время обычно в процессоре минимум 4 ядра (даже на процессорах смартфонов их 4). Эти языки не были созданы для эффективного использования многоядерных чипов. Возникает ситуация, что компьютер позволяет сделать больше, но язык программирования - нет. Следует заметить, что сейчас у всех этих языков реализован функционал для работы с многоядерными процессорами, однако это выглядит скорее как костыль, а не новая фишка. В сравнении, главный герой сегодняшней статьи имеет этот функционал прямо из коробки. Для сравнения, ниже представлен простой код, который использует потенциал многоядерных процессоров (сверху Java, снизу Go):
Не буду вдаваться в детали кода, просто скажу, что на Golang писать многопоточный код намного проще. Это и есть первое его преимущество над другими языками.
Вторая особенность языка заключается в том, что он компилируемый. В целом, существует два типа языков: интерпретируемые и компилируемые. Первые требуют время на интерпретацию, что негативно влияет на время выполнения программы. В свою очередь вторые – сразу компилируются в бинарный код, и выполняются процессором.
Ну а теперь настало время вкусовщины. Почему Golang нравится именно мне?
В первую очередь мне импонирует то, что Go – язык со строгой типизацией. Это значит, что у каждой переменной есть свой тип, и, например, сложить один тип с другим у вас не выйдет. По простому говоря, строку с цифрой сложить не выйдет. Для меня, как начинающего программиста, это огромный плюс, поскольку наделать ошибок на ровном месте не получится.
Второй плюс Go – это его синтаксис. Он лаконичный, и писать на нём одно удовольствие. Даже если взглянуть на пример выше, кажется, что код на Java более громоздкий.
В третьих, это команда gofmt. Благодаря ей, код, написанный на Go, приобретает единый стиль, из-за чего читать «творение» другого программиста не так больно, как на других языках.
Конечно, это всё мелочи в отличии от его выдающихся характеристик. Однако именно такие мелочи позволяют программисту максимально комфортно писать код.
В заключении можно сказать, что Go – хорошо продуманный язык с простым для понимания синтаксисом, хорошей встроенной безопасностью, быстродействием и имеет набор свежих функций, что актуально для новейших компьютеров. Сейчас он находится на 13 месте в рейтинге TIOBE, однако многие не сомневаются, что он будет карабкаться все выше и выше.
Пожалуй, закончу я именно на этой ноте. До новых встреч!