nixp.ru v3.0

28 апреля 2024,
воскресенье,
21:38:01 MSK

29 марта 2012, 18:22

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

4
Талисман языка Go
Талисман языка Go
Иллюстрация с сайта Блог языка Go

Вышла первая версия нового языка программирования Go, созданного компанией Google. Впервые он был анонсирован в 2009 году, а над его созданием трудились такие известные UNIX-специалисты, как Роб Пайк (Rob Pike) и Кен Томпсон (Ken Thompson).

Go — это язык программирования, призванный «обеспечить эффективность компилируемого языка со статической типизацией, обладая простотой динамических языков». Его синтаксис в целом похож на язык Си. Разработчики Go сообщают, что его первый релиз — Go 1 — призван «стабилизировать» язык: «Создатели программ, написанных на Go 1, смогут быть уверенными в том, что эти программы будут компилироваться и запускаться без потребности в каких-либо изменениях в разных средах на протяжении многих лет» (авторы обещают совместимость для релизов Go 1.x).

Также сообщается, что с выпуском Go 1 язык и его стандартная библиотека получили ряд новых возможностей. Релиз Go 1 доступен в бинарных сборках для операционных систем GNU/Linux, FreeBSD, Mac OS X и Windows. Информация об установке языка Go доступна на golang.org.

Постоянная ссылка к новости: http://www.nixp.ru/news/11668.html. Дмитрий Шурупов по материалам Блог языка Go.

fb twitter vk
myst

Go-вно, на самом деле.

Дмитрий Шурупов

Про Go были публикации в «Open Source» (091, 092, 093), автор которых в целом с тобой солидарен. Впрочем, нашлись и те, кто потом его критиковал в форуме.

pinnocio964

а чем он плох, если в кратце?

Дмитрий Шурупов

Выдержка из статьи Семена Есилевского «Языки программирования «новой волны». Часть 9: стандартная библиотека языка Gо и общие выводы» («Open Source» №093):

Так ли хорош язык Go, как его рекламирует Google? Оценка языка программирования всегда очень субъективна и сильно зависит от решаемых задач, но постараюсь все же ее дать. Язык Go не универсален, не особенно быстр и, на мой вкус, не особенно красив синтаксически и идейно. В нем недостает многих привычных вещей, таких как нормальное наследование и обобщенные классы. Стандартную библиотеку нахожу эклектичной и не особенно продуманной — взять хотя бы упомянутую путаницу в методах контейнерных классов. Создается впечатление, что и сам язык, и стандартная библиотека создавались очень быстро, в спешке. Зато на Go очень легко работать с нитями и организовывать их параллельное взаимодействие. Впрочем, пожалуй, это и всё, чем он заметно превосходит другие языки новой волны (кстати, работа с нитями в D реализована немногим сложнее). Вот в чем Go на голову превосходит конкурентов, так это в качестве документации и рекламе.

Лично у меня осталось негативное впечатление от Go. Сложилось впечатление, что своим успехом он обязан больше тому, что за ним стоит всесильный Google, а не своими объективными качествами. Будь Go создан малой группой энтузиастов, вряд ли он стал бы известнее своего идейного предшественника Limbo, о котором знают лишь немногие люди, причастные к «субкультуре» системы Plan 9.

И оттуда же, из выводов по всему циклу статей о D, Vala, Go:

В этом цикле статей я описал свои впечатления от нескольких новых для меня языков программирования. Они изначально субъективны и не претендуют на истину в последней инстанции, поскольку являются всего лишь моим мнением. Выбор языка — это вообще довольно «интимное» дело вкусов и пристрастий. Мне очень понравился D, не так сильно понравился Vala и совсем не понравился Go. Синтаксис и объектная система последнего мне откровенно «не зашли», но для кого-то они могут показаться идеальными. И это прекрасно: чем больше разных языков будет существовать, тем больше программистов останутся довольны.

pinnocio964

Спасибо :) А то у меня от него до сих пор двойственное чувство. Хотя теперь понятно чем оно было вызвано (»… что своим успехом он обязан больше тому, что за ним стоит всесильный Google…»)

myst

Там проблемы другого рода, на самом деле. Во-первых, конечно же, «автоматическая» простановка «;» — это, пожалуй, ярчайший, в моей жизни, пример инженерного слабоумия. Во-вторых, дело не в непривычной объектной модели, а в ненужности этой самой объектной модели. Сознавая факт того, что объектная модель — тупик, ярко освещаемый пепелищем C++, авторы Go оказались не в силах мыслить дальше рамок C-шного дизайна, в результате Go — это идейно тот же C++, только костыли к C приделали и синей изолентой намотали с другой стороны. В целом, средняя температура по «моргу»: (Haskell | OCaml) > Go.