Язык программирования Go Исполняется 3 года


Проект Go с открытым исходным кодом, который возник в Google, достиг своей третьей годовщины, и это хороший момент, чтобы спросить: откуда взялся Go? Где он сейчас? Куда он направляется? 

Третий день рождения Go 10 ноября 2012 года был отмечен сообщением в блоге языка программирования Go, в котором говорилось о том, как далеко он продвинулся с тех пор, как был объявлен в ноябре 2009 года в качестве экспериментального языка, который: 

сочетает в себе скорость разработки при работе на динамическом языке, таком как Python, с производительностью и безопасностью скомпилированного языка, такого как C или C++.

Изначально Go был внутренним проектом Google, инициированным Робом Пайком, Робертом Гриземером и Кеном Томпсоном, соавтором с Деннисом Ричи как Unix, так и языка программирования C.

Go берет свой основной синтаксис из C – блоки кода окружены фигурными скобками, а его поток управляющих структур включает в себя for, switch и if. Согласно его часто задаваемым вопросам, он также имеет значительный вклад от семейства Pascal/Modula/Oberon в виде объявлений и пакетов.

Часто задаваемые вопросы также объясняют обоснование создания нового языка:

Go родился из-за разочарования в существующих языках и средах для системного программирования. Программирование стало слишком сложным, и отчасти в этом был виноват выбор языков. Нужно было выбрать либо эффективную компиляцию, эффективное выполнение, либо простоту программирования; все три не были доступны на одном и том же основном языке. Программисты, которые могли бы, предпочли легкость безопасности и эффективности, перейдя на динамически типизированные языки, такие как Python и JavaScript, а не на C++ или, в меньшей степени, на Java.

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

По словам Роба Пайка, именно потребность в большей скорости была первоначальной мотивацией для Go:

“Отправной точкой было длительное время компиляции—для некоторых наших крупных программ в Google время сборки может быть неоправданно долгим, даже с нашими большими распределенными кластерами компиляции. Управление зависимостями (или их отсутствие) в C и C++ приводит к тому, что слишком много кода проходит через компилятор.”

Можно сказать, что Go был задуман в ожидании большой компиляции.”

Отличительной особенностью Go является поддержка параллелизма. В своем выступлении на Google I/O 2012, посвященном шаблонам параллелизма Go, Роб Пайк начал с объяснения предыстории этой функции.  

Основополагающей работой по параллелизму, согласно Пайку, является статья Тони Хоара 1978 года “Коммуникация последовательных процессов”. Отсюда произошли такие языки, как Оккам и эрланг, а также два языка, в которых участвовал сам Пайк, – Newsqueak и Limbo.

В марте 2012 года Go достигла важной вехи с выпуском первой стабильной версии Go 1. Это также был первый выпуск, доступный в поддерживаемых двоичных дистрибутивах, и первый, который был доступен для Windows, а также Linux, FreeBSD и Mac OS X.

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

Go продолжает использоваться Google, и в сообщении в блоге на третий день рождения упоминаются некоторые способы его использования. Примечательными примерами являются:

обслуживание Chrome и других загрузок

масштабирование базы данных MySQL на YouTube

Также недавно запущенный сайт Jam with Chrome обслуживается Go. programs.

Другие компании и проекты, использующие Go, включают BBC Worldwide, Canonical, CloudFlare, Heroku, Iron.io, Novartis, SoundCloud, SmugMug, StatHat, Tinkercad. Четыре из этих компаний делятся своим опытом использования Go в производственных средах в этом видео из Google I/O 2012:

Итак, что же ждет нас в наступающем году?

Версия 1.1 ожидается в 2013 году с “некоторыми новыми функциями”, но в остальном просто лучшей производительностью.

До сих пор команда программистов I скептически относилась к необходимости новых языков, и Google также представила Dart, свою альтернативу JavaScript. Тем не менее, мы согласны с идеей о том, что языки программирования должны быть веселыми и эффективными, и команда Go очень хорошо подходит для того, чтобы предположить, что Go обладает этими качествами.

Если вы хотите узнать больше, посмотрите это видео, в котором Расс Кокс дает нам экскурсию с кодом по трем аспектам Go, которые делают его быстрым, веселым и продуктивным – Интерфейс, отражение и параллелизм:


Добавить комментарий