Golang

Go — компилируемый многопоточный язык программирования, разработанный внутри компании Google

Официальный сайт

Описание

Язык Go разрабатывался как язык программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языкам Си и C++ с учётом изменившихся компьютерных технологий и накопленного опыта разработки крупных систем. По словам Роба Пайка, «Go был разработан для решения реальных проблем, возникающих при разработке программного обеспечения в Google».

В качестве основных таких проблем он называет:

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

Основными требованиями к языку стали:

  • Ортогональность. Язык должен предоставлять небольшое число средств, не повторяющих функциональность друг друга.
  • Простая и регулярная грамматика. Минимум ключевых слов, простая, легко разбираемая грамматическая структура, легко читаемый код.
  • Простая работа с типами. Типизация должна обеспечивать безопасность, но не превращаться в бюрократию, лишь увеличивающую код. Отказ от иерархии типов, но с сохранением объектно-ориентированных возможностей.
  • Отсутствие неявных преобразований.
  • Сборка мусора.
  • Встроенные средства распараллеливания, простые и эффективные.
  • Поддержка строк, ассоциативных массивов и коммуникационных каналов.
  • Чёткое разделение интерфейса и реализации.
  • Эффективная система пакетов с явным указанием зависимостей, обеспечивающая быструю сборку.
  • Go создавался в расчёте на то, что программы на нём будут транслироваться в объектный код и исполняться непосредственно, не требуя виртуальной машины, поэтому одним из критериев выбора архитектурных решений была возможность обеспечить быструю компиляцию в эффективный объектный код и отсутствие чрезмерных требований к динамической поддержке.

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

Хотя для Go доступен и интерпретатор, практически в нём нет большой потребности, так как скорость компиляции достаточно высока для обеспечения интерактивной разработки.

Информация была полезна для вас?

Расскажите пожалуйста что мы можем улучшить?

Сравнение Golang и др. решений

Рассмотрим плюсы и минусы, преимущества Golang относительно других решений

Смотреть все сравнения с Golang

Блог, обзоры, новости

Кодогенерация в Go на примере создания клиента к БД

В данной статье хотелось бы рассмотреть вопросы кодогенерации в Golang. Заметил, что часто в комментариях к статьям по Go упоминают кодогенерацию и рефлексию, что вызывает бурные споры. При этом на хабре статей по кодогенерации мало, хотя она применяется довольно много где в проектах на Go. В статье попытаюсь рассказать, что из себя представляет кодогенерация, описать сферы применения с примерами кода. Также не обойду стороной и рефлексию.

(далее…)

Продолжить чтение Кодогенерация в Go на примере создания клиента к БД

Посмотреть блог по теме: Golang

Отзывы

Плюсы и минусы продукта

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Golang”

Ваш адрес email не будет опубликован. Обязательные поля помечены *