LINUX.ORG.RU

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

 , , ,


0

0

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

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

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

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

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

★★★

Проверено: hibou ()
Ответ на: комментарий от faustus

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

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

yk4ever
()
Ответ на: комментарий от yk4ever

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

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

anonymous
()
Ответ на: комментарий от mio

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

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

volh ★★
()
Ответ на: комментарий от yk4ever

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

volh ★★
()
Ответ на: комментарий от Absurd

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

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

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

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

faustus
()
Ответ на: комментарий от yk4ever

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

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

Ваш Капитан.

faustus
()
Ответ на: комментарий от yk4ever

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

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

faustus
()
Ответ на: комментарий от faustus

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

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

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

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

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

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

Absurd ★★★
()

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

anonymous
()

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

CARS ★★★★
()

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

yk4ever
()
Ответ на: комментарий от volh

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

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

yk4ever
()
Ответ на: комментарий от yk4ever

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

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

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

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

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

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

pazak
()
Ответ на: комментарий от yk4ever

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

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

kto_tama ★★★★★
()
Ответ на: комментарий от yk4ever

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

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

burjui
()
$ 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 ★★★
()
Ответ на: комментарий от pazak

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

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

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

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

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

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

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

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

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

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

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

yk4ever
()
Ответ на: комментарий от kto_tama

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

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

yk4ever
()
Ответ на: комментарий от burjui

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

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

yk4ever
()
Ответ на: комментарий от burjui

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

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

Absurd ★★★
()
Ответ на: комментарий от zenith

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

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

yk4ever
()
Ответ на: комментарий от pazak

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

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

zenith ★★★
()
Ответ на: комментарий от yk4ever

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

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

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

www_linux_org_ru ★★★★★
()

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

закапывайте

k0l0b0k ★★
()
Ответ на: комментарий от zenith

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

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

KRoN73 ★★★★★
()
Ответ на: комментарий от yk4ever

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

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

anonymous
()

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

package main

import "fmt"

func main() {
  fmt.Printf("To dominate 世界\n")
}
ferhiord ★★
()
Ответ на: комментарий от pazak

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

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

faustus
()
Ответ на: комментарий от yk4ever

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

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

faustus
()
Ответ на: комментарий от yk4ever

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

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

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

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

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

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

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

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

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

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

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

pazak
()
Ответ на: комментарий от kto_tama

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

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

faustus
()

> 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 ★★★★★
()

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

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

Casus ★★★★★
()
Ответ на: комментарий от yk4ever

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

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

faustus
()
Ответ на: комментарий от fat_angel

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

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

Attila ★★
()
Ответ на: комментарий от Casus

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

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от pazak

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

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

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

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

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

Deluge. Mercurial. Youtube.

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

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

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

yk4ever
()
Ответ на: комментарий от yk4ever

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

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от fyrer

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

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

k0l0b0k ★★
()
Ответ на: комментарий от pazak

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

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

yk4ever
()
Ответ на: комментарий от pazak

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

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от Casus

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

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

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