LINUX.ORG.RU

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

 , , ,


0

0

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

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

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

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

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

★★★

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

Так вот на чем писали ДыроХром!

Vargos
()

Не нужно. Есть D.

anonymous
()

Зашёл на их сайт, ткнул наугад в страницу Memory Model, увидел следующее - про их goroutines:

The go statement that starts a new goroutine happens before the goroutine's execution begins. For example, in this program:

var a string;

func f() {
	print(a);
}

func hello() {
	a = "hello, world";
	go f();
}
calling hello will print «hello, world» at some point in the future (perhaps after hello has returned).

Как это «some point in the future», «perhaps»? Это из разряда эзотерической стохастической Java, где-то читал про такую шутку. Создаётся впечатление, что ребята просто решили выбить из Гугла денежек, какбэ под перспективную разработку.

hexenlord
()

Новый взгляд так сказать. Сейчас как раз пишу серверную аппликуху на С++. Представляю как это могло бы выглядеть на го. В задумчивости. Не везде без ооп хорошо. В играх например приятно видеть классы игрок. нпс, итем и т.д.

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

> Новый взгляд так сказать. Сейчас как раз пишу серверную аппликуху на С++. Представляю как это могло бы выглядеть на го. В задумчивости. Не везде без ооп хорошо. В играх например приятно видеть классы игрок. нпс, итем и т.д.

А ты на Эрланге попробуй её писать.

mv ★★★★★
()

> однако присутствуют указатели, сборщик мусора и goto.

Ах, от возможностей просто кружится голова!...
:)))))

Опять гуглу чешется навелосипедить? То браузер сделали убогее IE, то якобы ОС написали - причём закрытую, теперь вот недоязык... чо им не спится-то!?!

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

> А вообще, молодцы ребята из Google - не гуи пинают...

Что смешно, именно ГУЙ последнее время - больная мозоль многих девелоперов. Ещё как-то вырвался вперёд M$ с WPF, но остальные жуют сопли и перекрашивают устаревшие концепции. Нам бы и не надо всяких ХАМЛов, лишь бы сама библиотека была вразумительной. Но такой нет. :(

matumba ★★★★★
()

А мне оно php напомнило. Для некоторых целей идеальный язык.

farafonoff ★★
()

Идея отличная.

Классы в системном программировании не нужны... Но с памятью надо быть аккуратным (хрен найдёшь в большом проекте, что где течёт). goto видимо оставили, т.к. это действительно удобный способ переходов, если правильно использовать, — позволяет уменьшить размер кода и повысить читабельность. Юникод из коробки требует время (в смысле 21 век на дворе :)).

И даже если так стоит вопрос: почему не C++? а) да, он жутко медленный при сборке б) нечитабельный в) мешанинина в библиотеке из «старого» Си и «нового» Си++ (только моё ИМХО)

В общем, я за такой язык... А то иногда из-за того, что не хочется много отлаживать, пишу системный код на Питоне.

ferhiord ★★
()

Пока первое, что мне не понравилось: os.Stdout.WriteString(s) — ну зачем разный регистр? :(

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

>Потом выйдет Goo ?

да, а за ним World of Goo

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

вас тоже труп страуса покусал?

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

>>По первому взгдяду это то чего я и хотел - Си с динамическими массивами, gc и системой модулей. ООП и генерики выкинули, молодцы. Но нет экзепшенов (???)

>А разве в си масивы не динамические?

Много бойлерплейта вокруг realloc() - надо параллельно сохранять размер зарезервированной области и по факту занятой. И кроме того, уныло приводить типы и трахаться со смещениями либо юзать топорный препроцессор родом из начала 70-х.

>А то что в большинстве языков отсутствует нормальная, полноценная реализация ООП -- это уже другой вопрос.

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

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

>"People who unconditionally say "goto is bad" are idiots who don't understand how computer programs work."

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

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

>Пишущие на нём будут, я так полагаю, Goпниками?

100 пудов

kbps ★★★
()

Да вот совершенно верно. Насчет Go to. Понятно ведь, хрен редьки не слаще. Целое поколение программистов превратили в мазохистов, рассматривающих Go to как признак плохого стиля. Дескать это понижает читабельность кода. И вот на месте, где раньше просто стояло Go to, выросла целая идеология, известная как ООП. Было вырублено огромное количество деревьев для того чтобы сторонники этой идиотской идеологии могли печатать свои наукобразные писульки, тем самым оправдывая свое никчемное существование. Но правду не скроешь. Кота в мешке не утаишь.

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

> Это старая религия родом из анти-фортрановской реакции 70-х

Религия может и старая, а последователи у неё бывают очень даже и молодые.

sv75 ★★★★★
()

Я не понял идею. :(

Erlang meets D?

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

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

Вы просто либо на Си не писали, либо дурак.

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

Надо устраиваться в Google. Там трава кошерная (^_^)

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

> И массив - это массив. Хочешь передать его в функцию, передастся не указатель на него, а весь массив. Зачем?

У вас дислексия. Вы не в состоянии читать мануалы. Обратитесь к специалисту за квалифицированной помощью.

yk4ever
()

NIH-синдром в действии.

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

> А можешь показать кусок кода, где без goto не обойтись?

Его всегда можно убрать, вопрос --- зачем? Читаем тред "жизнь без исключений", берём сырсы ядра своей ОС, смотрим на goto.

sv75 ★★★★★
()

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

Короче, как язык приложений - не сильно привлекательно. Как системный язык - надо посмотреть производительность (и зачем тогда вшитый юникод?).

Ну и, разумеется, всё лучше чем C++.

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

> А можешь показать кусок кода, где без goto не обойтись?

Три вложенных цикла, где из внутреннего надо вывалиться совсем наружу. Это для гото вообще основной валидный юзкейс.

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

> Потом выйдет Goo ?

И в нём мы будем составлять программы из Goo Balls

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

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

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

Но, повторюсь, го мне не кажется хорошим языком приложений.

yk4ever
()

Скоро каждая компания будет иметь свой язык.

vold ★★★★★
()

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

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

>Кота в мешке не утаишь.

И шило в мешке не продашь :)

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

Я с Вас балдею ! О ком тут ещё можно подумать ? Нет это просто однофамильцы !

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

> Паттерн-матчинга нет, вывода типов нет, и это в 21-м веке?

Зато компиляция шустрая :]

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

> Однако синтаксис стрёмный (фигурные скобки фу, питон ничему людей не научил??).

Научил, именно Питон и научил - что скобки-таки нужны.

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

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

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

> вывода типов нет, и это в 21-м веке?

Кстати, всё-таки немного есть. Автоматический тип lvalue и даже мультирезультат наличествуют.

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

> Научил, именно Питон и научил - что скобки-таки нужны.

Я вам уже неоднократно говорил, что notepad - плохой выбор текстового редактора для программиста.

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

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

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

Ох, мляяяя... вот и такие "погромисты" по земле ползают. Не знает, что ему написать, пишет объект с точкой и ждёт пока за него IDE программу придумает.

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

yk4ever
()

Вот ДЗ то обзавидуется ... у людей с GC проблемм нет :)

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

> Из более заметных концептаульных отличий они добавили указатели, но нет арифметики указателей.

Это называется handlers - как в Яве.

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

faustus
()

(LISP (RULES (THEM (ALL))))

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