image

Материал подготовлен Никитой Кузнецовым, старшим разработчиком компании «МегаФон» и преподавателем курса “Go-Разработчик Pro” в Skillbox: «Упрощай! Вот девиз, который, как мне кажется, могли бы использовать разработчики языка Go».

Почему языки могут быть неудобными?


Есть языки, в которых для реализации вложенности конструкций используются пробелы/отступы (например, Python), для определения вложенности используются ключевые слова (например, begin и end в Delphi), используются фигурные скобки (например, Си-подобные языки).

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

Чем удобен Golang?


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

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

Задачи решаются с меньшим количеством ключевых слов, в сравнении с другими языками.

Чем интересен Go?


В Go всего один цикл, а в некоторых языках их три или четыре.

Никита Кузнецов: «У многих возникает вопрос: можно ли упаковать все циклы, с предусловием, постусловием, итератором для прохода по коллекции, – в один? Но я полагаю, что новички запоминают один подход к написанию циклов проще, чем несколько. На помощь приходит for для всех действий! И уже не нужно тратить время, чтобы думать над лишними ключевыми словами».

Для наглядности

Посмотрите, сколько раз выполнится тело этого цикла на языке C# или Java:

for (;;) {
}

Опытный разработчик ответит, что это бесконечный цикл. А новичок?

В Go ни

for  {
}

ни

for ;; {
}

не скомпилируются.

Хочешь бесконечный цикл? Укажи это явно:

for true {
}

Простота Go в сравнении с большинством языков


Большинство современных языков программирования построено на объектно-ориентированных принципах (ООП). Основная загвоздка в ООП – полиморфизм, причем как в реализации самого языка, так и в понимании. Чтобы упростить понимание и снизить количество ошибок, в разработке появились новые принципы, например, SOLID.

  • В Go отказались от ООП в его оригинальной трактовке, но тот же SOLID в нём реализовать можно. Получается, что все возможности по созданию сложных систем есть, а основной трудности ООП – нет!

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

  • Go разрабатывался в парадигме применения системы контроля версий Git, поэтому папки хранятся в одном месте – в $GOPATH/src. Когда вы пишите код или загружаете чьё-то решение с GitHub-а, всё собирается во едино.

В большинстве языков стоит вопрос: как правильно форматировать код?

  • В Go такого вопроса нет. Команда go fmt используется разработчиками во всём мире. Код отформатирован одинаково и в учебном примере, и в интернете, что позволяет новичкам быстрее разбираться с задачами.

Никита Кузнецов: «Разработчики Go создали язык с компактным кодом, быстрой компиляцией, сборкой «мусора», поддержкой параллелизма, но, по моему мнению, у них ещё получился язык, который отлично подходит в качестве первого языка программирования. Или у вас другое мнение? Обсудим?»

Комментарии (25)