[NIXP] Go 1 — первый крупный релиз языка программирования от Google
Модератор: Модераторы разделов
-
Dmitry Shurupov
- Сообщения: 336
- Статус: Open Source geek
- ОС: Ubuntu Linux
[NIXP] Go 1 — первый крупный релиз языка программирования от Google
Вышла первая версия нового языка программирования 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
оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Название неудачное какое-то... :(
-
Janik
- Сообщения: 870
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
У Си тоже не очень название, ни о чем не говорит.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
phoenixe
- Сообщения: 73
- ОС: Chromium OS
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
С первого взгляда название не особо привлекательное.
Посмотрим как язык покажет себя.
Посмотрим как язык покажет себя.
-
Voral
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Ну как же достаточно умная логическая игра
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Это тот "Hello World", который на странице по ссылке? :)
Мои розовые очки
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Гугл знает, что такое "C" и в большинстве случаев правильно учитывает наличие "C" в запросе.
Мои розовые очки
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
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
Ну, это смотря до какого шага досмотрели. И что понимать под «другими языками». Go, в принципе, находится где-то в нише между Java и C++, а по сравнению с ними:
- http://tour.golang.org/#8 A function can return any number of results.
- http://tour.golang.org/#36 Functions are values too.
- http://tour.golang.org/#37 functions are full closures.
- http://tour.golang.org/#52, http://tour.golang.org/#53 An interface type is defined by a set of methods.
A type implements an interface by implementing the methods.
There is no explicit declaration of intent. - http://tour.golang.org/#61 A goroutine is a lightweight thread managed by the Go runtime.
- http://tour.golang.org/#62 Channels are a typed conduit through which you can send and receive values with the channel operator, <-.
Мои розовые очки
-
SinClaus
- Сообщения: 1952
- Статус: Мучитель Мандривы
- ОС: Arch,BSD
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Я бы сказал, не совсем логично устроен. Конструкция
по моему довольно дурацкая.
Хотя... Всяко лучше того Бейсика который выдают за C#.
Код: Выделить всё
func pi(n int) float64 {...по моему довольно дурацкая.
Хотя... Всяко лучше того Бейсика который выдают за C#.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Это еще цветочки.SinClaus писал(а): ↑03.04.2012 17:26Конструкция
Код: Выделить всё
func pi(n int) float64 {...
по моему довольно дурацкая.
Код: Выделить всё
func (p *MyStruct) Method(arg1 Type1, arg2 Type2) (res1 Type3, res2 Type4) {...А устроен, как раз, весьма логично. Просто слегка непривычно. Но очень слегка — привыкаешь быстро.
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
и кто тут где? точнее, кто такой "p"?watashiwa_daredeska писал(а): ↑03.04.2012 17:33Вот где прелестьКод: Выделить всё
func (p *MyStruct) Method(arg1 Type1, arg2 Type2) (res1 Type3, res2 Type4) {...
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Ну, если говорить на плюсовом или жабском языке, то "p" это "this".
Мои розовые очки
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
А по сравнению с ними - всего лишь немного синтаксического сахара в собственной упаковке. Современный язык делают только такие вот сладкие штуки, а наличие сообщества, стандартизация, наличие сторонних библиотек и компиляторов, открытость и наличие идейного лидера. Что, по большей части, есть у, скажем, C, Python, JavaScript и не совсем есть, например, у C# и Java.
Встроенная многопоточность - это классно, но отсутствие механизма исключений просто смущает.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Этот Go напоминает химеру из C++ и Perl. В целом достаточно понятен, типы справа — в C++11 это тоже появилось для автоматического приведения типов так проще. А вот возвращение массивов, присваивание — это как из Perl прибежало.
Не увидел цикла с постусловием, его там нет?
Не увидел цикла с постусловием, его там нет?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Из Perl в Go не прибежало ничего. Go был задуман как язык, на котором легко и непринужденно можно писать так, чтобы это можно было читать.
goroutines и channels — это не «всего лишь» и не «синтаксический сахар», они достаточно сильно меняют сам подход к написанию программ.
При наличии defer, type switches и анонимных функций, exceptions не шибко нужны.
Что такое открытость? Кто идейный лидер 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
Шутишь? Одной из первых мыслей было - "нечитаемый С". Чего стоят for/if без скобок и отсутствие точек с запятыми.
Ну ты перечислил не только сопроцедуры и каналы. Если язык пытается самостоятельно решить проблемы распараллеливания - это круто, но всё остальное - это или явный сахар или повторение давно уже популярных, в других языках, фич.watashiwa_darede... писал(а): ↑03.04.2012 21:02goroutines и channels — это не «всего лишь» и не «синтаксический сахар», они достаточно сильно меняют сам подход к написанию программ.
Язык, который развивается не из под палки компании-разработчика, а по требованию коммунити и промышленности, в которой он используется. Возможность взять и написать компилятор по стандарту, не оглядываясь на компанию-разработчика языка. Google уже далеко не та самая корпорация Добра и её тень делает язык несамостоятельным. Если, например, Гвидо перестанет разрабатывать новые фичи Python или авторы GCC забросят его разработку - эти языки не умрут. Если Google забросит Go, то про него всё это "коммунити" завтра же, скорее всего, забудет.watashiwa_darede... писал(а): ↑03.04.2012 21:02Опять же, непонятно, что такое «открытость» и чем Go менее открыт, чем тот же Python или, тем более, C.
Буквально вчера в новостях попался разбор нового серьёзного изменения в C# - теперь там решили делать копию итератора на каждый цикл foreach, для удобства пользователей замыканий. Попутно посмотрел во что этот язык выродился: мне доводится с ним сталкиваться раз года так в 3-4. И каждый раз я вижу, что компания разработчик C# кидается из крайности в крайность, меняет чуть ли не идеологию языка и облепляет его сахаром, чтобы привлечь новых студентов. А бедное коммунити, как понимаю, в очередной раз грустно вздыхает, выкидывает увесистые томики Троелсена и идёт в магазин за новыми. Боюсь, что Go и его двухсотенное коммунити ждёт такая же развлекуха.
CPython + набор строгих PEP.watashiwa_darede... писал(а): ↑03.04.2012 21:02Где стандарт на Python и список соответствующих этому стандарту сторонних компиляторов (интерпретаторов)?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Слабо понял, как type switch может заменить исключения. Если так, как я думаю, то чем он тогда будет отличаться от анализа кодов возврата, со всеми вытекающими последствиями, когда на/такой анализ забили/забыли.watashiwa_darede... писал(а): ↑03.04.2012 21:02При наличии defer, type switches и анонимных функций, exceptions не шибко нужны.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Прям как Python, ага :) Хотя нет, Python — это нечитаемый Perl :)
Все остальные языки — это кривое и косое повторение Lisp. А уж как нечитаемы синтаксисы со скобками не в тех местах, а то и вообще без скобок…
Во-первых, с чего ты взял, что язык развивается из под палки? Во-вторых, с чего ты взял, что не по требованию коммунити? В-третьих, Go развивается демократичнее всех известных мне языков, у остальных в начале их жизненного цикла вообще был единоличный рулевой — компания ли, индивидуал ли. На публику выходило лишь что-то более-менее "релизное". Начать хоть с того же C, который изначально развивался «из-под палки AT&T». А Go опубликовали заранее, собрали сообщество, получили фидбек, допилили, зарелизили и уже в первой версии куча контрибьюторов со стороны.
Да, это хорошо, но… Писать стандарт прежде самой первой реализации — нонсенс, телега поперед кобылы.
Ха-ха-ха… См. например PEP-308. Какой синтаксис у тернарной операции по этому PEP? А какой синтаксис реализован? И да, если почитать многие другие PEP'ы, то выяснится, что язык развивается из-под палки той компании, в которой на данный момент работает Гвидо. Потому что сплошь и рядом: «всем нравится, чтобы было так-то, но это не нравится Гвидо, поэтому будем делать так, как сказал Гвидо». По поводу развития в соответствии с пожеланиями коммьюнити: эту злосчастную тернарную операцию коммунити клянчило еще, по-моему, с прошлого века. Нормальные лямбды так точно с прошлого века и до сих пор клянчит (или уже отчаялось и перестало клянчить?), но нормальные лямбды и оптимизация хвостовых вызовов не нравятся Гвидо.
Эти две сотни — это те, кто реально коммитил код в компиляторы и стандартную библиотеку. Для только что выпущенной первой версии — немало. А ведь есть еще сообщество прочих разрабов, которые пилят то, что на http://godashboard.appspot.com/ А сколько еще не засветились на дашборде… В списке рассылки чуть менее 6000 подписчиков.
Ты уж меня прости, но Go разрабатывают не менеджеры по продажам и даже не по их инициативе. Более того, Go разрабатывают не на продажу лохам («ха-ха, пусть потрахаются, пока мы будем продолжать писать на C++»), не для загрузки мощностей MicrosoftGoogle press выпуском макулатуры «C#Go для чайников за 24 минуты». Google уже сам довольно активно использует Go. Думаю, сам Google является крупнейшим пользователем и ему самому в первую очередь невыгодно ставить Go с ног на уши. За Гугл говорит то, что император всея Питона не сильно попортил язык, работая в этой компании, хотя когда Гвидо огуглился, тоже предрекали: «всё, кирдык Питону, ща Гвидо начнет пилить чиста для Гугла». И да, Томпсон и Пайк — не мальчики, за ними опыт разработки и раскрутки успешнейшего ЯП современности, который начинался, как «язык без коммунити, из-под палки одного из самых мерзких монополистов того времени».
Мои розовые очки
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
Непривычно, но не нечитаемо. Скобки в Си в for/if нужны, чтобы отличить условие от оператора, а в Go обязательны {}, и проблемы данной нет. А ";" после Си и вправду смущает сильнее, но думаю, тоже привыкается.
Не в тему, маскот Go действительно выглядит так, как будто ему дали пинка?
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
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
С Go аналогично. Правда, времена чуть изменились. Придумывать внутренний доморощенный язык, никому его не показывая — не выгодно и не интересно, поэтому как только формы языка чуть оформились, стали привлекать сообщество.
Мои розовые очки
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
watashiwa_darede...
Фанат Go детектед! =) Ну что же - посмотрим, что получится из этого. Если это будет не очередной игрушечный C#, не очередной экспериментальный язык, не язык "под задачи нашей компании", и не язык для зарабатывания денег и привязывания разработчика к технологиям одной компании - я только "за".
Что там с Dart, кстати? Поигрались и забыли или всё пилят?
Фанат Go детектед! =) Ну что же - посмотрим, что получится из этого. Если это будет не очередной игрушечный C#, не очередной экспериментальный язык, не язык "под задачи нашей компании", и не язык для зарабатывания денег и привязывания разработчика к технологиям одной компании - я только "за".
Что там с Dart, кстати? Поигрались и забыли или всё пилят?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Go 1 — первый крупный релиз языка программирования от Google
http://www.dartlang.org
Language Specification
...
The current version (0.08) was released March 23, 2012.
Мои розовые очки