LINUX.ORG.RU

Грядёт Golang 2.0. Возможно, опять без дженериков.

 , , ,


0

4

Пруфцы: https://blog.golang.org/toward-go2

Чтобы не разрывать сообщество, некоторые обратно-совместимые фичи начнут запиливаться прямо в 1й версии. Для плавного переезда проектов в 2.0, скорее, будет предусмотрен транслятор.

Созываются эксперты для описи бородавок 1й версии. Ссылки на ваши блог посты с use-case'ами, gist'ы и пр. принимаются в wiki.

Возможные изменения, которые могут быть приняты: новый механизм обработки ошибок, неизменяемые / RO значения, какая-то форма дженериков. Впрочем, товарищ R Cox всё ещё «не имеет чёткого представления» на счёт того, какие проблемы пользователям помогают решать дженерики. А некоторые на HN пригрозили своим уходом, если Go станет так неимоверно переусложнён.

Черт с ними с дженериками, и без них нормально живется. Запилите мне уже нормальные енумы

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

Вроде как дальше обсуждений дело не идет, к сожалению.

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

Емнип, кому надо, уже даже презерватив не надевают, тыкая Go.

Virtuos86 ★★★★★ ()

Впрочем, товарищ R Cox всё ещё «не имеет чёткого представления» на счёт того, какие проблемы пользователям помогают решать дженерики.

На гитхабе у него все проекты на го, на чем ещё он писал?

ya-betmen ★★★★★ ()

новый механизм обработки ошибок, неизменяемые / RO значения, какая-то форма дженериков

А некоторые на HN пригрозили своим уходом, если Go станет так неимоверно переусложнён

Что там за пользователи такие. Из простейших?

makoven ★★★★★ ()

А некоторые на HN пригрозили своим уходом, если Go станет так неимоверно переусложнён.

Они там до сих пор с бейсика переучиться не могут?

Deleted ()
Ответ на: комментарий от ya-betmen

Возможно, только на C. Но надо в linkedin проверить. На его сайте из проектов указан Plan9, работа в Bell Labs и какие-то paper'ы.

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

Ну тогда ничего удивительного, что он не знает для чего нужны дженерики.

ya-betmen ★★★★★ ()

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

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

чтобы судить и разделять.

чтобы копировать и вставлять.

RazrFalcon ★★★★★ ()

всё ещё «не имеет чёткого представления» на счёт того, какие проблемы пользователям помогают решать дженерики

Он упоротый что ли?

no-such-file ★★★★★ ()
Ответ на: комментарий от Deleted

JS

ничего не умеет

Ты што, сдурел? Целая платформа тебе дана. Которая умеет всё, от верстки до P2P видео и работы с перефирией. Тоже мне ничего не умеет

makoven ★★★★★ ()

какая-то форма дженериков. Впрочем, товарищ R Cox всё ещё «не имеет чёткого представления» на счёт того, какие проблемы пользователям помогают решать дженерики. А некоторые на HN пригрозили своим уходом, если Go станет так неимоверно переусложнён.

/)_-

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

А не факт что там про язык. Человек же написал "..но всё можно (и приходится) реализовывать руками". Синтаксис чтоли руками реализовывать собрался

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

goto

goto - отличный инструмент для реализации конечных автоматов в пределах функции (в том числе и для обработки ошибок). Судя по твоему негативному отношению к goto, ты этого не осилил. Я понимаю, линейная логика она проще и понятнее, но зачем признаваться публично, что ты не осилил конечные автоматы?

Про варианты обработки ошибок https://www.youtube.com/watch?v=Fno6suiXLPs. Их сильно больше, чем исключения и коды возврата и каждым способом полезно уметь пользоваться.

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

не осилил конечные автоматы?

Ты так говоришь, как будто без goto конечный автомат внутри функции не реализовать.

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

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

while( true )
{
    // some actions
    while( true )
    {
        // some actions
        if( condition )
            goto out;
    }
}
:out

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

Вместо чистого goto можно иметь break на метку

'out: while true {
    // some actions
    while true {
        // some actions
        if condition {
            break 'out;
        }
    }
}
pftBest ★★★★ ()
Ответ на: комментарий от pawnhearts

Где я это сказал?

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

новый механизм обработки ошибок

Буду ржать если эксепшоны

Буду ржать если макросы.

goto

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

Только сначала приведи пример, как реализовать этот код без goto.

(let/cc break-all
  (while #t
    ; some actions
    (while #t
      ; some actions
      (when condition
        (break-all)))))
actions := make(chan func())
go func() {
	for {
		// send action to actions chan
		for {
			// send more actions to actions chan
			if condition {
				close(actions)
				return
			}
		}
	}
}()
for action := range actions {
	action()
}
korvin_ ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.