Что такое Golang ?
В сентябре 2007 года разработчики Google Роберт Гриземер, Роб Пайк и Кен Томпсон сосредоточили свое внимание на создании оптимизированного и упрощенного языка программирования, заложив основу для Go и Golang соответственно. То, что начиналось как небольшой проект, быстро превратилось в перспективное и амбициозное предприятие, и Google сознательно поощрял его развитие, предоставляя компании необходимые ресурсы. После того, как Go был официально представлен как проект с открытым исходным кодом (лицензия BSD) в конце 2011 года, он быстро нашел большое количество сторонников в сообществе, которые все еще участвуют в дальнейшей разработке и оптимизации языка программирования. Финальный выпуск первой стабильной версии (1.0) состоялся 28 марта 2012 года. Начиная с версии 1.1, которая последовала через год спустя, Google публикует обновления примерно каждые шесть месяцев.
Забавный факт: Логотипом Golang является суслик
Синтаксис Golang сильно ориентирован на базовый синтаксис языков C-семейства, но демонстрирует явное влияние языков Pascal, Modula и Oberon, разработанных Никлаусом Виртом. Также были включены такие аспекты языков, как Newsqueak и Limbo, которые, в свою очередь, вдохновлены алгеброй процессов Тони Хора CSP (взаимодействие последовательных процессов). Golang совместим, и с самого начала ориентировался на высокую скорость перевода. Кроме того, язык программирования Golang имеет автоматическую сборку мусора (GC), которая обеспечивает оптимальное управление доступными ресурсами памяти в фоновом режиме, что предотвращает проблемы с хранением.
Одной из основных причин разработки нового языка программирования была неудовлетворенность устоявшимися языками, которые либо эффективны в компиляции кода, либо в быстром выполнении кода, либо в простом процессе программирования, но никогда не сочетали в себе все три преимущества.
Golang подает хороший пример для других языков программирования: язык сочетает в себе простоту программирования, которая отличает интерпретируемый динамический язык от эффективности и безопасности статически типизированного компилируемого языка. Кроме того, структура Go призвана обеспечить короткий процесс разработки, который позволяет создавать большие исполняемые файлы на одном компьютере за секунды. При всей похвале современного языка программирования Google не следует забывать, что он также имеет некоторые незначительные недостатки. В первую очередь это связано с простотой Golang, которая, с одной стороны, является его величайшей силой, но с другой стороны, также означает, что в нем отсутствуют определенные аспекты, которые некоторые разработчики ценят в других языках программирования.
Прежде всего, следует отметить отсутствие универсальных типов (то есть типов данных с возможностью указания отдельных параметров типа) в стандартной библиотеке. Тем, кто выступает за безопасное программирование типов и использование универсальных типов в Java, например, придется мириться с отсутствием аналогичной функции в Go - хотя команда Go не исключает реализации универсальных типов в будущих версиях. Отказ от классов, наследования и конструкторов - это тоже то, к чему многим разработчикам нужно будет привыкнуть. Еще одна особенность Golang - автоматическое удаление неактивных файлов импорта, что многие считают непрактичным. Другие языки получают здесь оценку из-за возможности «закомментировать» соответствующие компоненты, чтобы они оставались в программном коде, несмотря на бездействие. Еще один недостаток Golang по сравнению с языками старой школы, такими как C, C ++ и подобными, Заключается в новой истории языка. Он имеет гораздо меньший арсенал стандартных и импортируемых пакетов. Для Go в сети также меньше руководств, учебных пособий, чем для других, более устоявшихся языков программирования. Для начинающих программистов процесс обучения с Golang часто бывает проще - вы извлечете выгоду из простоты современного языка. Поскольку экспертов по Go еще не так много, знакомство с языком программирования Golang может дать большие возможности – стать одним из тех, кто сможет освоить и оптимизировать новый язык и найти ему его нишевое применение.
Авторы статьи: Черноморский Денис и Парцев Матвей