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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
Dmitry Shurupov
Сообщения: 336
Статус: Open Source geek
ОС: Ubuntu Linux

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

Сообщение Dmitry Shurupov »

Вышла первая версия нового языка программирования 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.

оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

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

Сообщение serzh-z »

Название неудачное какое-то... :(
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 870
Статус: Оператор вычислительных машин
ОС: Debian

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

Сообщение Janik »

serzh-z писал(а):
29.03.2012 19:44
Название неудачное какое-то... :(

У Си тоже не очень название, ни о чем не говорит.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
phoenixe
Сообщения: 73
ОС: Chromium OS

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

Сообщение phoenixe »

С первого взгляда название не особо привлекательное.
Посмотрим как язык покажет себя.
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

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

Сообщение Voral »

serzh-z писал(а):
29.03.2012 19:44
Название неудачное какое-то... :(

Ну как же достаточно умная логическая игра :)
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Janik писал(а):
29.03.2012 21:30
У Си тоже не очень название, ни о чем не говорит.

Неправда. C - следующая буква после B, значит, язык C - это более совершенный язык, чем B, при этом он перенял многие элементы B.

Посмотрел примеры кода - не понял, чем оно лучше других языков.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

frp писал(а):
30.03.2012 09:32
Посмотрел примеры кода
Это тот "Hello World", который на странице по ссылке? :)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

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

Сообщение diesel »

frp писал(а):
30.03.2012 09:32
Janik писал(а):
29.03.2012 21:30
У Си тоже не очень название, ни о чем не говорит.

Неправда. C - следующая буква после B, значит, язык C - это более совершенный язык, чем B, при этом он перенял многие элементы B.

а гуглить все-равно неудобно :)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

diesel писал(а):
30.03.2012 12:34
а гуглить все-равно неудобно :)
Гугл знает, что такое "C" и в большинстве случаев правильно учитывает наличие "C" в запросе.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

watashiwa_darede... писал(а):
30.03.2012 11:21
Это тот "Hello World", который на странице по ссылке? :)

Нет. http://tour.golang.org/#1
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

frp писал(а):
03.04.2012 16:19
Нет. http://tour.golang.org/#1
Ну, это смотря до какого шага досмотрели. И что понимать под «другими языками». Go, в принципе, находится где-то в нише между Java и C++, а по сравнению с ними:
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

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

Сообщение SinClaus »

Я бы сказал, не совсем логично устроен. Конструкция

Код: Выделить всё

func pi(n int) float64 {...

по моему довольно дурацкая.
Хотя... Всяко лучше того Бейсика который выдают за C#.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

SinClaus писал(а):
03.04.2012 17:26
Конструкция

Код: Выделить всё

func pi(n int) float64 {...

по моему довольно дурацкая.
Это еще цветочки.

Код: Выделить всё

func (p *MyStruct) Method(arg1 Type1, arg2 Type2) (res1 Type3, res2 Type4) {...
Вот где прелесть :)

SinClaus писал(а):
03.04.2012 17:26
Я бы сказал, не совсем логично устроен.
А устроен, как раз, весьма логично. Просто слегка непривычно. Но очень слегка — привыкаешь быстро.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

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

Сообщение sash-kan »

watashiwa_daredeska писал(а):
03.04.2012 17:33

Код: Выделить всё

func (p *MyStruct) Method(arg1 Type1, arg2 Type2) (res1 Type3, res2 Type4) {...
Вот где прелесть :)
и кто тут где? точнее, кто такой "p"?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

sash-kan писал(а):
03.04.2012 17:38
точнее, кто такой "p"?
Ну, если говорить на плюсовом или жабском языке, то "p" это "this".
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

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

Сообщение serzh-z »

watashiwa_darede... писал(а):
03.04.2012 17:20
а по сравнению с ними:
А по сравнению с ними - всего лишь немного синтаксического сахара в собственной упаковке. Современный язык делают только такие вот сладкие штуки, а наличие сообщества, стандартизация, наличие сторонних библиотек и компиляторов, открытость и наличие идейного лидера. Что, по большей части, есть у, скажем, C, Python, JavaScript и не совсем есть, например, у C# и Java.

Встроенная многопоточность - это классно, но отсутствие механизма исключений просто смущает.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

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

Сообщение NickLion »

Этот Go напоминает химеру из C++ и Perl. В целом достаточно понятен, типы справа — в C++11 это тоже появилось для автоматического приведения типов так проще. А вот возвращение массивов, присваивание — это как из Perl прибежало.

Не увидел цикла с постусловием, его там нет?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

NickLion писал(а):
03.04.2012 19:32
это как из Perl прибежало.
Из Perl в Go не прибежало ничего. Go был задуман как язык, на котором легко и непринужденно можно писать так, чтобы это можно было читать.

serzh-z писал(а):
03.04.2012 19:11
всего лишь немного синтаксического сахара
goroutines и channels — это не «всего лишь» и не «синтаксический сахар», они достаточно сильно меняют сам подход к написанию программ.

serzh-z писал(а):
03.04.2012 19:11
отсутствие механизма исключений просто смущает
При наличии defer, type switches и анонимных функций, exceptions не шибко нужны.

serzh-z писал(а):
03.04.2012 19:11
наличие сообщества, стандартизация, наличие сторонних библиотек и компиляторов, открытость и наличие идейного лидера.
Что такое открытость? Кто идейный лидер C и JavaScript? Где стандарт на Python и список соответствующих этому стандарту сторонних компиляторов (интерпретаторов)?

Разве у Go нет сообщества? Сторонних библиотек? Не очень понятно, кто такой «идейный лидер», и чем Ken Thompson не угодил. Опять же, непонятно, что такое «открытость» и чем Go менее открыт, чем тот же Python или, тем более, C. До стандартизации дело пока не дошло по нескольким причинам: молодой ишшо, Google — не MS, а Go — не C#. Однако, спецификация вполне себе имеется. На стандарт по полноте не тянет, конечно, но не хужее, чем у Python.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

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

Сообщение serzh-z »

watashiwa_darede... писал(а):
03.04.2012 21:02
чтобы это можно было читать.
Шутишь? Одной из первых мыслей было - "нечитаемый С". Чего стоят for/if без скобок и отсутствие точек с запятыми.

watashiwa_darede... писал(а):
03.04.2012 21:02
goroutines и channels — это не «всего лишь» и не «синтаксический сахар», они достаточно сильно меняют сам подход к написанию программ.
Ну ты перечислил не только сопроцедуры и каналы. Если язык пытается самостоятельно решить проблемы распараллеливания - это круто, но всё остальное - это или явный сахар или повторение давно уже популярных, в других языках, фич.

watashiwa_darede... писал(а):
03.04.2012 21:02
Опять же, непонятно, что такое «открытость» и чем Go менее открыт, чем тот же Python или, тем более, C.
Язык, который развивается не из под палки компании-разработчика, а по требованию коммунити и промышленности, в которой он используется. Возможность взять и написать компилятор по стандарту, не оглядываясь на компанию-разработчика языка. Google уже далеко не та самая корпорация Добра и её тень делает язык несамостоятельным. Если, например, Гвидо перестанет разрабатывать новые фичи Python или авторы GCC забросят его разработку - эти языки не умрут. Если Google забросит Go, то про него всё это "коммунити" завтра же, скорее всего, забудет.

Буквально вчера в новостях попался разбор нового серьёзного изменения в C# - теперь там решили делать копию итератора на каждый цикл foreach, для удобства пользователей замыканий. Попутно посмотрел во что этот язык выродился: мне доводится с ним сталкиваться раз года так в 3-4. И каждый раз я вижу, что компания разработчик C# кидается из крайности в крайность, меняет чуть ли не идеологию языка и облепляет его сахаром, чтобы привлечь новых студентов. А бедное коммунити, как понимаю, в очередной раз грустно вздыхает, выкидывает увесистые томики Троелсена и идёт в магазин за новыми. Боюсь, что Go и его двухсотенное коммунити ждёт такая же развлекуха.

watashiwa_darede... писал(а):
03.04.2012 21:02
Где стандарт на Python и список соответствующих этому стандарту сторонних компиляторов (интерпретаторов)?
CPython + набор строгих PEP.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

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

Сообщение serzh-z »

watashiwa_darede... писал(а):
03.04.2012 21:02
При наличии defer, type switches и анонимных функций, exceptions не шибко нужны.
Слабо понял, как type switch может заменить исключения. Если так, как я думаю, то чем он тогда будет отличаться от анализа кодов возврата, со всеми вытекающими последствиями, когда на/такой анализ забили/забыли.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

serzh-z писал(а):
04.04.2012 02:36
Одной из первых мыслей было - "нечитаемый С". Чего стоят for/if без скобок и отсутсвие точек с запятыми.
Прям как Python, ага :) Хотя нет, Python — это нечитаемый Perl :)

serzh-z писал(а):
04.04.2012 02:36
всё остальное - это или явный сахар или повторение давно уже популярных, в других языках, фич.
Все остальные языки — это кривое и косое повторение Lisp. А уж как нечитаемы синтаксисы со скобками не в тех местах, а то и вообще без скобок…

serzh-z писал(а):
04.04.2012 02:36
Язык, который развивается не из под палки компании-разработчика, а по требованию коммунити и промышленности, в которой он используется.
Во-первых, с чего ты взял, что язык развивается из под палки? Во-вторых, с чего ты взял, что не по требованию коммунити? В-третьих, Go развивается демократичнее всех известных мне языков, у остальных в начале их жизненного цикла вообще был единоличный рулевой — компания ли, индивидуал ли. На публику выходило лишь что-то более-менее "релизное". Начать хоть с того же C, который изначально развивался «из-под палки AT&T». А Go опубликовали заранее, собрали сообщество, получили фидбек, допилили, зарелизили и уже в первой версии куча контрибьюторов со стороны.

serzh-z писал(а):
04.04.2012 02:36
Возможность взять и написать компилятор по стандарту, не оглядываясь на компанию-разработчика языка.
Да, это хорошо, но… Писать стандарт прежде самой первой реализации — нонсенс, телега поперед кобылы.

serzh-z писал(а):
04.04.2012 02:36
CPython + набор строгих PEP.
Ха-ха-ха… См. например PEP-308. Какой синтаксис у тернарной операции по этому PEP? А какой синтаксис реализован? И да, если почитать многие другие PEP'ы, то выяснится, что язык развивается из-под палки той компании, в которой на данный момент работает Гвидо. Потому что сплошь и рядом: «всем нравится, чтобы было так-то, но это не нравится Гвидо, поэтому будем делать так, как сказал Гвидо». По поводу развития в соответствии с пожеланиями коммьюнити: эту злосчастную тернарную операцию коммунити клянчило еще, по-моему, с прошлого века. Нормальные лямбды так точно с прошлого века и до сих пор клянчит (или уже отчаялось и перестало клянчить?), но нормальные лямбды и оптимизация хвостовых вызовов не нравятся Гвидо.

serzh-z писал(а):
04.04.2012 02:36
и его двухсотенное коммунити
Эти две сотни — это те, кто реально коммитил код в компиляторы и стандартную библиотеку. Для только что выпущенной первой версии — немало. А ведь есть еще сообщество прочих разрабов, которые пилят то, что на http://godashboard.appspot.com/ А сколько еще не засветились на дашборде… В списке рассылки чуть менее 6000 подписчиков.

serzh-z писал(а):
04.04.2012 02:36
Боюсь, что Go ... ждёт такая же развлекуха.
Ты уж меня прости, но Go разрабатывают не менеджеры по продажам и даже не по их инициативе. Более того, Go разрабатывают не на продажу лохам («ха-ха, пусть потрахаются, пока мы будем продолжать писать на C++»), не для загрузки мощностей MicrosoftGoogle press выпуском макулатуры «C#Go для чайников за 24 минуты». Google уже сам довольно активно использует Go. Думаю, сам Google является крупнейшим пользователем и ему самому в первую очередь невыгодно ставить Go с ног на уши. За Гугл говорит то, что император всея Питона не сильно попортил язык, работая в этой компании, хотя когда Гвидо огуглился, тоже предрекали: «всё, кирдык Питону, ща Гвидо начнет пилить чиста для Гугла». И да, Томпсон и Пайк — не мальчики, за ними опыт разработки и раскрутки успешнейшего ЯП современности, который начинался, как «язык без коммунити, из-под палки одного из самых мерзких монополистов того времени».
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

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

Сообщение NickLion »

serzh-z писал(а):
04.04.2012 02:36
Шутишь? Одной из первых мыслей было - "нечитаемый С". Чего стоят for/if без скобок и отсутсвие точек с запятыми.

Непривычно, но не нечитаемо. Скобки в Си в for/if нужны, чтобы отличить условие от оператора, а в Go обязательны {}, и проблемы данной нет. А ";" после Си и вправду смущает сильнее, но думаю, тоже привыкается.

Не в тему, маскот Go действительно выглядит так, как будто ему дали пинка?
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

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

Сообщение Crazy »

watashiwa_daredeska писал(а):
04.04.2012 04:05
Начать хоть с того же C, который изначально развивался «из-под палки AT&T».

Ну придумали для себя более удобный инструмент, для использования в Unix. Кому от этого стало плохо?

Desipere in loco
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

Crazy писал(а):
04.04.2012 08:25
Ну придумали для себя более удобный инструмент, для использования в Unix. Кому от этого стало плохо?
С Go аналогично. Правда, времена чуть изменились. Придумывать внутренний доморощенный язык, никому его не показывая — не выгодно и не интересно, поэтому как только формы языка чуть оформились, стали привлекать сообщество.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

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

Сообщение serzh-z »

watashiwa_darede...
Фанат Go детектед! =) Ну что же - посмотрим, что получится из этого. Если это будет не очередной игрушечный C#, не очередной экспериментальный язык, не язык "под задачи нашей компании", и не язык для зарабатывания денег и привязывания разработчика к технологиям одной компании - я только "за".

Что там с Dart, кстати? Поигрались и забыли или всё пилят?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

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

Сообщение watashiwa_daredeska »

serzh-z писал(а):
04.04.2012 12:33
Что там с Dart, кстати? Поигрались и забыли или всё пилят?
http://www.dartlang.org
Language Specification
...
The current version (0.08) was released March 23, 2012.
Спасибо сказали: