Раздел "Язык программирования Go" основывается на материале, изложенном в следующих источниках:
Разработчиками языка программирования Go были Роберт Грисемер (Robert Griesemer), Роб Пайк (Rob Pike) и Кен Томпсон (Ken Thompson) из Google. Это проект с открытым исходным кодом, так что исходные тексты его библиотек и инструментов, включая компилятор, находятся в открытом доступе. Язык Go создавался как высокоэффективное средство для легкого и простого написания надежных высокоинтеллектуальных программ. Он заимствует и приспосабливает для своих нужд хорошие идеи из многих других языков, избегая возможностей, которые могут привести к созданию сложного и ненадежного кода. Как и все современные языки, Go обладает эффективным механизмом сбора мусора, хорошо подходит для построения инструментария и систем для работы других программистов.
Go, работает на большом количестве Unix-подобных систем (Linux, FreeBSD, OpenBSD, Mac OS X), а также на Plan 9 и Microsoft Windows; при этом программы, написанные для одной из этих сред, легко можно перенести на другие.
На дизайн Go оказали влияние следующие языки программирования (рис. 1):
Рис.1. Иерархия языков, оказавших влияние на дизайн Go
Go унаследовал от:
Go часто описывают как "C-подобный язык" или "язык Си XXI века" – это компактный и эффективный язык программирования с низкоуровневыми возможностями (указатели). Go обладает особенностями, характерными для высокоуровневых языков (поддержка строк Юникода, высокоуровневые структуры данных, динамическая типизация, автоматическая сборка мусора и высокоуровневая поддержка взаимодействий, основанных на обмен сообщениями, а не на блокировках и разделяемых данных, обширная и всесторонняя стандартная библиотека).
На следующем шаге постараемся провести сравнительный анализ языков программирования Go, C (C++) и Java.