LINUX.ORG.RU

Первый стабильный релиз Go

 ,


0

2

Сегодня состоялся релиз Go 1 — первый стабильный релиз языка программирования Go. Разработчики заявляют, что программы работающие под Go 1 в большинстве случаев будут работать без изменения и в следующих версиях языка. Также теперь будут предоставляться официальные сборки компилятора для всех популярных платформ: Linux, Mac OS X, FreeBSD и Windows.

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

  • Новый тип для юникодных символов.
  • Новый тип для ошибок.
  • Простой синтаксис для удаления элемента из отображения (map).
  • Добавлен синтаксис для циклов по отображениям.
  • Добавлен синтаксис множественного присваивания.
  • Запрещен close для принимающих каналов.
  • Улучшен синтаксис композитных литералов.
  • Теперь можно использовать goroutines перед окончанием инициализации программы.
  • В функциях с именованной возвращаемой переменной нельзя использовать пустой return в случае, если возвращаемая переменная затенена локальной.
  • Изменения правил проверки равенства: добавлена возможность сравнения равенства массивов и структур, убрана возможность проверки равенства функциональных переменных и отображений (кроме сравнения с nil).
  • Полностью переработан модуль стандартной библиотеки time. Теперь он больше не привязан к unix epoch time и позволяет легко оперировать привычными единицами измерения, например, годами или часами. Также теперь различаются временные промежутки (durations) и абсолютные значения времени.

Также обновлен Google App Engine SDK для Go.

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

★★★★★

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

Бинарники все так же монструозны?

ms-dos32 ()

Теперь можно использовать goroutines перед окончанием инициализации программы.

?????

Bragin ()

Добавлен синтаксис

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

belous_k_a ()

Полностью переработан модуль стандартной библиотеки time. Теперь он больше не привязан к unix epoch time и позволяет легко оперировать привычными единицами измерения, например, годами или часами. Также в теперь различаются временные промежутки (durations) и абсолютные значения времени.

Эх... Как я хотел в своё время, чтобы в С была такая возможность. Очень, очень не хватало.

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

Да ПОНХ, я тут пытаюсь уменьшить в размерах программу в 10 Кб, а они тут на хелловорлд несколько мегабайт тратят

ms-dos32 ()

Новый тип для юникодных символов.

Ну новый же язык, нельзя сразу было сделать юникод как положено?

Добавлен синтаксис

Про синтаксис все правильно сказали выше.

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

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

Там минимальный синтаксис, для чего только можно.

tensai_cirno ★★★★★ ()

Какая ниша у этого инструмента, господа. А то с одной стороны я слышу что это язык для системного программирования, а с другой что это язык для web.

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

Еще слишком рано говорить о нише. Создатели позиционируют его как универсальный и достаточно низкоуровневый ЯП, но при этом с гораздо более высокой скоростью разработки чем C.

Но ниша определяется не только замыслом создателя. Посмотрим, какое место он займет ИРЛ. Пока это игрушка задротов. Конечно, релиз и обещание обратной совместимости это большой шаг вперед. Будем наблюдать.

provaton ★★★★★ ()

Если Go попытка конкурировать с JS в будущем, то нужны будут быстрые интернеты для передачи сотни Мб до пользователя. Или у этого языка другая ниша?

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

Создатели позиционируют его как универсальный и достаточно низкоуровневый ЯП

ааа ну понятно

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

> > Теперь можно использовать goroutines перед окончанием инициализации программы.

> ?????

Раньше нельзя было запускать gorountines в функциях инициализации модуля init()

vladimir-vg ★★ ()
Ответ на: комментарий от tensai_cirno

Тут только в данной новости уже описан избыточный синтаксис. А минимальный синтаксис только в lisp

belous_k_a ()

Хомячку таки дали жизнь!

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

Go это переносимый ассемблер [абстрактной] машины у которой:

последовательное,
if/else,
for/рекурсия,
cборщик мусора/замыкания,
каналы/CSP(взаимодействующие последовательные процессы Хоара)
интерфейсы/утиная типизация(алгебра)


в результате попытка занять нишу многонитиевых(процессных) разнородных(не массово паралельных) тоесть системный язык того времени когда система многоголова и/или системы образуют коллективы.

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

да вообще-то нифига. Из распространённых языков самое короткое описание синтаксиса у Forth.

anonymous ()

«Go — он почти как Haskell, только не чистый, не функциональный, не ML и вообще Pascal.» (С)

ymn ★★★★★ ()

ебилдом так и не обзавелись?

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

> интерфейсы/утиная типизация(алгебра)

> алгебра

Что это значит?

quasimoto ★★★★ ()

Сегодня состоялся релиз Go 1 — первый стабильный релиз языка программирования Go. Разработчики заявляют, что программы работающие под Go 1 в большинстве случаев будут работать без изменения и в следующих версиях языка. Также теперь будут предоставляться официальные сборки компилятора для всех популярных платформ: Linux, Mac OS X, FreeBSD и Windows.

Как я понимаю, это речь про стандарт. А с компилятором что?
У них он свой? Или по-прежнему речь про go-gcc? Недавно же gcc 4.7.0 вышел, они туда не успели. И что теперь? До 4.8.0 их язык по нормальному никто так и не увидит?

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

> А с компилятором что?

У них свой toolchain начиная ещё с Plan 9 (~1994 год) - ассемблер, линкер, компилятор си, компилятор go (http://code.google.com/p/go/source/browse/#hg/src/cmd). go-gcc это сторонняя вещь.

Собственно, у них как раз была реклама про то, что go программы на порядок быстрее компилируются чем си программы.

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

алгебра

спасибо за интерес .

ибо есть некоторая маркетологическая неточность.

Подразумеваю - подход практекуемый в математике(хаскеле) где декларируются аксиомы и дальнейшее основано на построение следствий

т.е

если модуль реализует некоторые действия с использованием(и только набора) набора интерфейсов A,B... то дейстивия абстрагированы от имплиминтации(преувеличение конечно - если делать тайминги то можно научится класифицировать неотличимые по интерфейсам , но разнотипные ну или просто sizeof - но это всё нарушение непроницаемости интерфейса)

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

qulinxao ★★☆ ()

опять колесо изобретают

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

Не знаю насчет моды, но «передовое» - языки с развитыми системами типов и возможностями ФП.

tailgunner ★★★★★ ()

Только у нас! Только сегодня! Анонимусы лора учат создателей UTF-8 Пайка и Томпсона делать уникод правильно.

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

Ну, я как бы туда засунул инфу для GDB, но она не так много весит, в основном библиотеки

ms-dos32 ()
Ответ на: комментарий от tailgunner

Си тоже устарел, сюрприз?

Не, не сюрприз. Но ведь лучше устаревший язык (сабж), чем разложившийся (С)? Хотя бы в качестве правильно сделанного C.

/* В C несуразностей выше крыши */

А в нем и много другого есть, о чем сишники не мечтают, какое же это устаревание?

unsigned ★★★ ()

Ну это прикольно конечно.. Всё же синтаксис у него поприятней чем С++ и компилится побыстрее. Но я надеялся что они к первой версии допилят полноценную поддержку ARM и особенно Андроид.

FedeX ★★ ()

программы работающие под Go 1 в большинстве случаев будут
в большинстве случаев

вот так вот гарантируют.. и в тоже время ничего не гарантируют. :)

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

Go это переносимый ассемблер [абстрактной] машины у которой:

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

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

> Но я надеялся что они к первой версии допилят полноценную поддержку ARM и особенно Андроид.

У меня на арме отлично работает.

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

Но ведь лучше устаревший язык (сабж), чем разложившийся (С)?

Не лучше. В качестве языка низкоуровневого программирования Go не подходит из-за навороченной исполняющей системы.

Хотя бы в качестве правильно сделанного C.

Честно говоря, «правильно сделанного Си» я не встречал. Cyclon подошел близко, но он сложноват и перегружен. В Ivy, с другой стороны, слишком мало возможностей.

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