LINUX.ORG.RU

Google представляет Go

 , , ,


0

0

Go — экспериментальный язык програмирования, разработанный в Google. Основные разработчики языка — Роб Пайк и Кен Томпсон, также известные как разработчики unix и plan9.

Go предназначен в первую очередь для написания крупных серверных приложений и способен сократить время сборки с десятков минут до нескольких секунд (в сравнении с C++) за счет системы модулей и явного указания зависимостей.

В языке отсутствуют классы, исключения, метапрограммирование и ручное управление памятью, однако присутствуют указатели, сборщик мусора и goto. Также на уровне языка поддерживаются легковесные процессы (goroutines) и каналы (channels).

Можно использовать фигурные скобки и юникод в идентификаторах.

>>> Подробности

★★★

Проверено: hibou ()

Ответ на: Google представляет Go от faustus

Google представляет Go

> Вообще, непонятно, зачем Гугл тратит ресурсы на разработку велосипедов. У них NIH-синдром?

Нет, у них просто 20% свободного времени для разрабов. А поскольку разрабам в основном приходится пользоваться такой мерзостью как кресты и жабо - исессна им мечтается о новых, красивых языках.

yk4ever ()
Ответ на: Google представляет Go от yk4ever

Re: Google представляет Go

> питон ничему людей не научил??

Я думаю, что это создатели питона учились у этих людей. Гвидо Ван Россум еще девочек за косички дергал, когда Кен Томпсон работал над unix

anonymous ()
Ответ на: Google представляет Go от mio

Google представляет Go

>От ооп нужнее всего : пишешь имя объекта, ставишь точку и список вываливается что с ним можно делать :) Ну, вы понели

Мы понели. Все так и есть. Феерическая расстановка точек над ООП ^)^

volh ★★ ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

что вы привязались к этому синтаксису? вам не пофигу, есть там фигурные скобочки или нет? ощущаете нежную привязанность к непечатным символам? хотите об этом поговорить?

volh ★★ ()
Ответ на: Re: Google представляет Go от Absurd

Google представляет Go

> ООП имхо частный случай работы с сетами.

ООП - частный случай lexical scope.

> Это старая религия родом из анти-фортрановской реакции 70-х и людей учившихся на книжках людей подверженных анти-фортрановской реакции 70-х.

Да? Сколько лет, какое образование, какой опыт работы в команде?

faustus ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Но автодополнение - это самая малополезная фича, сделанная для клинических даунов и нубов, которые не умеют читать мануал.

Автодополнение - одна из самых полезных фич современных IDE.

Ваш Капитан.

faustus ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Нет, у них просто 20% свободного времени для разрабов. А поскольку разрабам в основном приходится пользоваться такой мерзостью как кресты и жабо - исессна им мечтается о новых, красивых языках.

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

faustus ()
Ответ на: Google представляет Go от faustus

Re: Google представляет Go

>> ООП имхо частный случай работы с сетами.

>ООП - частный случай lexical scope.

Secretary это подмножество Employee который поджмножество Person. По крайней мере начиналось это так.

>> Это старая религия родом из анти-фортрановской реакции 70-х и людей учившихся на книжках людей подверженных анти-фортрановской реакции 70-х.

>Да? Сколько лет, какое образование, какой опыт работы в команде?

Я, кстати, за всю жизнь не разу не употребил goto. На Си я в основном писал под винду и использовал __leave из SEH-блока. То как goto используется при отсутствии SEH в ANSI C я видел только в чужом коде и мне такой подход кажется вполне нормальным.

Absurd ★★★ ()

Google представляет Go

Чувакам не дают покоя лавры Erlang. Скрестили ужа с ежом и получился Пщ. Отправлялись бы дедушки на пенсию что ли уже...

anonymous ()

Google представляет Go

Вроде всё ясно. Noop они значит замутили типа в замену Java, ну там ООП, все дела… А Go — это типа весь такой низкоуровневый язык с указателями и инструкцией goto. Чего не хватает? Правильно, чего-нибудь чисто функционального! Через месяц-другой анонсируют. И название у него будет «Ffuu» или что-нибудь в этом роде.

CARS ★★★★ ()

Google представляет Go

самое главное что лицензия правильная у языка!

anonymous ()
Ответ на: Re: Google представляет Go от anonymous

Google представляет Go

> Гвидо Ван Россум еще девочек за косички дергал, когда Кен Томпсон работал над unix

Ну так у ван Россума продукт-то и попродуманней получился, чем Томпсоновская халтурка :]

yk4ever ()
Ответ на: Google представляет Go от volh

Google представляет Go

> что вы привязались к этому синтаксису? вам не пофигу, есть там фигурные скобочки или нет?

Нет, не пофигу. Они мешают.

yk4ever ()
Ответ на: Google представляет Go от yk4ever

Re: Google представляет Go

>Про язык: семантика хорошая; за слайсы, замыкания, интерфейсы и корутины зачот. Однако синтаксис стрёмный (фигурные скобки фу, питон ничему людей не научил??). Отсутствие итераторов после LINQ/Haskell/Python - это тоже уже несерьёзно.

Ну предположим, что говнопитонище уё$%&ое, для таких корифеев как Роб Пайк и Кен Томсон не то что не пример, а просто антипример. Даже Гнида Опоссум сам в своём говнопитоне, недавно путаться начал (несмотря на диктатуру синтаксиса фортрана-4).

>Вы в каких-то диких терминах мыслите - "приятно видеть классы". Вам что от ООП нужно? Нэймспейсы? Есть в Go, см. модули. Декларативная диспетчеризация? Есть в Go, см. интерфейсы. Вы в шоколаде.

Спалился питонщик :) ООП неймспейсами даже не начинается, не то-что не заканчивается. А наследование ? А инкапсуляция ?

Совсем другое дело когда язык безтиповый, - тогда нафиг всё ооп ненужно.

Да вместо goto для выхода из 3-х вложеных циклов всегда можно использовать нечто боллее удобоваримое: 1. удовлетворить условия завершения всех циклов разом 2. сгенерировать исключение. 3. воткнуть все вложеные циклы в отдельную функцию, и там где вам хочется вызвать goto просто вернуть управление и эвентуально значение :)

pazak ()
Ответ на: Google представляет Go от faustus

Google представляет Go

> Автодополнение - одна из самых полезных фич современных IDE.

Для детей и индусов - очень даже может быть.

yk4ever ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

>> Три вложенных цикла, где из внутреннего надо вывалиться совсем наружу

брэйк - завуалированный гоуту

kto_tama ★★★★★ ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

>> Нет, не пофигу. Они мешают.

сразу видно , откуда ноги растут

kto_tama ★★★★★ ()
Ответ на: Google представляет Go от yk4ever

Re: Google представляет Go

>автодополнение - это самая малополезная фича, сделанная для клинических даунов и нубов, которые не умеют читать мануал.

Автодополнение - полезная фича для тех, кто не любит опечатки и концентрируется на кодинге, а не набивке килобайтов текста. Не надо проецировать свой мазохизм на людей.

burjui ()

Google представляет Go

$ hg log | grep '^user:' | awk '{print $2" "$3}' | sort | uniq -c | sort -rn
   1273 Russ Cox
    933 Rob Pike
    862 Robert Griesemer
    418 Ken Thompson
    132 Ian Lance
    116 Kai Backman
     98 Austin Clements
     60 David Symonds
     31 Adam Langley
     13 Nigel Tao
     ...

Старички халтурят :)

zenith ★★★ ()
Ответ на: Re: Google представляет Go от pazak

Google представляет Go

> Ну предположим, что говнопитонище уё$%&ое, для таких корифеев как Роб Пайк и Кен Томсон не то что не пример, а просто антипример.

Ну, предположим, Пайк не написал ни одного контуперного языка, а поделка Томсона давно уже почила в бозе.

> ООП неймспейсами даже не начинается, не то-что не заканчивается.

Класс - частный случай нэймспейса. Вы не знали?

> А наследование ?

Наследование - частный случай декларативной диспетчеризации. Вы не знали?

> А инкапсуляция ?

Инкапсуляция - частный случай модульности. Вы не знали?

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

> Да вместо goto для выхода из 3-х вложеных циклов всегда можно использовать нечто боллее удобоваримое:

У вас странные понятия об удобоваримом.

yk4ever ()
Ответ на: Google представляет Go от kto_tama

Google представляет Go

> брэйк - завуалированный гоуту

Если брэйк с меткой - то гоуту не нужен. Если брэйк без метки - его недостаточно.

yk4ever ()
Ответ на: Re: Google представляет Go от burjui

Google представляет Go

> Автодополнение - полезная фича для тех, кто не любит опечатки и концентрируется на кодинге,

Опечатки хорошая иде поймает до компиляции и пометит красненьким. Там вы их и поправите. А автодополнение в большинстве случаев только мешает.

yk4ever ()
Ответ на: Re: Google представляет Go от burjui

Re: Google представляет Go

>Автодополнение - полезная фича для тех, кто не любит опечатки и концентрируется на кодинге, а не набивке килобайтов текста.

В голом не-ООПшном Си автодополнение по TAG-сам обычно работает как часы. Прозреваю что в Go TAG-сы тоже будут работать как часы. В отличие от...

Absurd ★★★ ()
Ответ на: Google представляет Go от zenith

Google представляет Go

> Старички халтурят :)

Ну, ясное дело, они в проекте как свадебные генералы, для солидности. Большинство гуру 70-х ныне впали в маразм.

yk4ever ()
Ответ на: Re: Google представляет Go от pazak

Google представляет Go

Да вместо goto для выхода из 3-х вложеных циклов всегда можно использовать нечто боллее удобоваримое

У функции должен быть один выход, иначе получается такая же лапша как и с goto.

zenith ★★★ ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Класс - частный случай нэймспейса. Вы не знали?

феерический бред, если ты о плюсах

если бы ты в своем языке выбрал реализовывать классы через немспейсы, то это можно было бы понять, однако в нынешних плюсах это нереально

www_linux_org_ru ★★★★★ ()

Google представляет Go

>В языке отсутствуют классы, исключения, метапрограммирование и ручное управление памятью, однако присутствуют указатели, сборщик мусора и goto

закапывайте

k0l0b0k ★★ ()
Ответ на: Google представляет Go от zenith

Google представляет Go

>У функции должен быть один выход, иначе получается такая же лапша как и с goto.

Выбирая между множественными выходами и goto выбирать однозначно стоит первое :)

KRoN73 ★★★★★ ()
Ответ на: Google представляет Go от yk4ever

Re: Google представляет Go

> Ну, предположим, Пайк не написал ни одного контуперного языка, а поделка Томсона давно уже почила в бозе.

Лучше не предполагайте. За Пайком как минимум соваторство в Alef, Limbo и Newsqueak. Вы не знали?

anonymous ()

Google представляет Go

По-моему первым туториалом должно быть:

package main

import "fmt"

func main() {
  fmt.Printf("To dominate 世界\n")
}
ferhiord ★★ ()
Ответ на: Re: Google представляет Go от pazak

Google представляет Go

> воткнуть все вложеные циклы в отдельную функцию, и там где вам хочется вызвать goto просто вернуть управление и эвентуально значение :)

Вообще, если по уму, то return тоже нужно запретить. А значения возвращать как в Матлабе.

faustus ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Для детей и индусов - очень даже может быть.

Для всех программистов, кому не по барабану гладкий процесс работы.

faustus ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Класс - частный случай нэймспейса. Вы не знали? > Инкапсуляция - частный случай модульности. Вы не знали?

Мы то знали, и знать будем и не только о "частных случаях" :)

>Наследование - частный случай декларативной диспетчеризации. Вы не знали?

Ну если для тебя наследование этим и заканчивается ...

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

Мальчонка, я уже 18 лет в бизнесе :) Меня твоей голой задницей, даже элементарной аргументацией не прикрытой, совсем не напугать. Это ты тут про частные случае попугайничаешь.

>Ну, предположим, Пайк не написал ни одного контуперного языка, а поделка Томсона давно уже почила в бозе.

Говнопитонище, - прибежище недоумков. На питоне ни одной приличной массовой программы не написано до сих пор. Все что ты сейчас в пример приведёшь будет иметь ограниченый контингент пользователей. На "мёртвом"-же С, люди до сих пор продолжают писать приличные вещи.

Познакомся с теми на кого лаешь:

http://en.wikipedia.org/wiki/Rob_Pike

http://en.wikipedia.org/wiki/Ken_Thompson

pazak ()
Ответ на: Google представляет Go от kto_tama

Google представляет Go

> брэйк - завуалированный гоуту

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

faustus ()

Google представляет Go

> Rather than requiring the programmer to declare ahead of time that two types are related, in Go a type automatically satisfies any interface that specifies a subset of its methods.

мягко говоря небезопасно, в особенности учитывая

>We debated this issue but decided implementing len and friends as functions was fine in practice and didn't complicate questions about the interface (in the Go type sense) of basic types.

значит, стоит мне чуть слажать и не сделать метод функцией (как сделали они), так сразу получатся осложнения

______________________________________

их подход был бы вполне приемлем, если бы они ограничили множество интерфейсов, которые удовлетворяются (satisfies) неявно

www_linux_org_ru ★★★★★ ()

Google представляет Go

Зачитал. Интересно. Отсутствие исключений огорчает, хотя можно, конечно, по старинке, как в Си писать. Невозможность сделать комплексные типы ключами в map тоже огорчительна, мне бы нефиг не сдались генерики при наличии такой фичи. Библиотека в принципе достаточна для простых серверных приложений, но не хватает интерфейса типа DBI. Для десктопа не хватает интерфейса к Gtk/Qt. Потенциал у языка очень хороший.

P.S. Питонофилам -- БАЯЦЦА фигурных скобок :)

Casus ★★★★★ ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Наследование - частный случай декларативной диспетчеризации. Вы не знали?

Я не знаю, что такое "декларативная диспетчеризация", но наследование - это прежде всего полиморфизм, виртуальные функции. Это, в принципе, и есть главная фича ООП (вместе с lexical scope), все остальное малосущественно.

faustus ()
Ответ на: Google представляет Go от www_linux_org_ru

Google представляет Go

> феерический бред, если ты о плюсах

Нет, я не о плюсах, я о нэймспейсах. Нахрен мне сдались плюсы.

yk4ever ()
Ответ на: Re: Google представляет Go от anonymous

Google представляет Go

> За Пайком как минимум соваторство в Alef, Limbo и Newsqueak.

Ну я рад за него. И где они, эти языки?

yk4ever ()
Ответ на: Google представляет Go от fat_angel

Google представляет Go

>Епт, сколько ж говнокодеров не мыслящих существования без goto спалилось в треде.

Страус головного мозга? Почему все недотёпы пинают goto, зло от которого за пределы одного файла не вылезет, а "добро" от перегруженых операторов не замечают в упор.

Attila ()
Ответ на: Google представляет Go от Casus

Google представляет Go

> Невозможность сделать комплексные типы ключами в map тоже огорчительна, мне бы нефиг не сдались генерики при наличии такой фичи.

язык без дженериков обречен

www_linux_org_ru ★★★★★ ()
Ответ на: Google представляет Go от pazak

Google представляет Go

> Ну если для тебя наследование этим и заканчивается ...

Оно к этому сводится.

> Мальчонка, я уже 18 лет в бизнесе

Тем более печально, что у вас мышление на таком зачаточном уровне.

> На питоне ни одной приличной массовой программы не написано до сих пор.

Deluge. Mercurial. Youtube.

Первый краулер Гугла, кстати, работал на питоне.

> На "мёртвом"-же С,

Кто сказал что C мёртв?

yk4ever ()
Ответ на: Google представляет Go от yk4ever

Google представляет Go

> Нет, я не о плюсах, я о нэймспейсах. Нахрен мне сдались плюсы.

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

www_linux_org_ru ★★★★★ ()
Ответ на: Google представляет Go от fyrer

Google представляет Go

>Предвкушаю реализацию от майкрософт [dot]G

ай да жжош :D в квотез

k0l0b0k ★★ ()
Ответ на: Google представляет Go от pazak

Google представляет Go

> Познакомся с теми на кого лаешь:

Я? Лаю? Это вы тут начали набрасываться на беднягу ван Россума :]

yk4ever ()
Ответ на: Google представляет Go от pazak

Google представляет Go

> Познакомся с теми на кого лаешь:

ты *неправильно* перевести обсуждение на личности, а не фич языка программирования -- грамотность "тех" должна быть, заслуги роли почти не играют, важным может быть только безграмотность оппонента

www_linux_org_ru ★★★★★ ()
Ответ на: Google представляет Go от Casus

Re: Google представляет Go

>Невозможность сделать комплексные типы ключами в map тоже огорчительна, мне бы нефиг не сдались генерики при наличии такой фичи.

Указатель же можно сделать ключем, так что задачу сваливания каких-то identity в пачку без дубликатов такие хеши решают.

Absurd ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.