Грядет Go++ ?
От: eskimo82  
Дата: 08.12.18 04:34
Оценка:
Красноглазые пионеры прыгали, бегали и стояли на ушах с этим Go, затем прошли "грабли" точно такие же как и в случае с Си, и в итоге приходят к аналогичным С++ концепциям.
Кто бы мог подумать

https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md
Re: Грядет Go++ ?
От: GarryIV  
Дата: 08.12.18 05:10
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Красноглазые пионеры прыгали, бегали и стояли на ушах с этим Go, затем прошли "грабли" точно такие же как и в случае с Си, и в итоге приходят к аналогичным С++ концепциям.

E>Кто бы мог подумать

E>https://go.googlesource.com/proposal/+/master/design/go2draft-error-handling-overview.md


Не знаю какого цвета у тебя глаза и на чем ты стоишь но на C++ это не похоже. Просто сахар для проверок. Эти check/handle по сути тот же if но специализированный.
WBR, Igor Evgrafov
Re: Грядет Go++ ?
От: Cyberax Марс  
Дата: 08.12.18 06:32
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Красноглазые пионеры прыгали, бегали и стояли на ушах с этим Go, затем прошли "грабли" точно такие же как и в случае с Си, и в итоге приходят к аналогичным С++ концепциям.

Неверно. Это С++ становится Go: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf
Sapienti sat!
Re[2]: Грядет Go++ ?
От: eskimo82  
Дата: 08.12.18 12:22
Оценка:
GIV>Не знаю какого цвета у тебя глаза и на чем ты стоишь но на C++ это не похоже. Просто сахар для проверок. Эти check/handle по сути тот же if но специализированный.
Да ну. Ты и в правду сравниваеш концепции только по отличиям синтаксиса ?

func main() {
    handle err {
        log.Fatal(err)
    }

    hex := check ioutil.ReadAll(os.Stdin)
    data := check parseHexdump(string(hex))
    os.Stdout.Write(data)
}


void fun() {
    try {
        hex = ReadAll(stdin);
        data = parseHexDump(string(hex));
        cout << data << endl;
    }
    catch(error& e) {
        cerr << "fatal " << e.what() << endl;
    }
}
Re[2]: Грядет Go++ ?
От: eskimo82  
Дата: 08.12.18 12:26
Оценка: -3
C>Неверно. Это С++ становится Go: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf
Ну микрософты за всю свою историю еще ничего продуманого не предлагали и не делали, одни только костыли для костылей.
Re[3]: Грядет Go++ ?
От: Слава  
Дата: 08.12.18 15:31
Оценка: +1 :)
Здравствуйте, eskimo82, Вы писали:

C>>Неверно. Это С++ становится Go: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf

E>Ну микрософты за всю свою историю еще ничего продуманого не предлагали и не делали, одни только костыли для костылей.

Напоминаю про существование Microsoft Research и haskell. А также про огромнейший зоопарк железа, где винда работает и не требует настройки. В отличие от.
Re[4]: Грядет Go++ ?
От: σ  
Дата: 08.12.18 17:17
Оценка:
C>>>Неверно. Это С++ становится Go: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf
E>>Ну микрософты за всю свою историю еще ничего продуманого не предлагали и не делали, одни только костыли для костылей.

С>А также про огромнейший зоопарк железа, где винда работает и не требует настройки.


Всё это железо сковали в Майкрософт и написали к нему драйвера?
Re[5]: Грядет Go++ ?
От: Слава  
Дата: 08.12.18 18:53
Оценка: +2
Здравствуйте, σ, Вы писали:

σ>Всё это железо сковали в Майкрософт и написали к нему драйвера?


Кривое железо и кривенькие драйвера сковали не в MS. А винда тем не менее на всём этом работала.

PS: Железо у MS, мыши и клавиатуры всегда были наивысшего качества.
Re[3]: Грядет Go++ ?
От: m2l  
Дата: 08.12.18 20:11
Оценка:
Здравствуйте, eskimo82, Вы писали:

GIV>>Не знаю какого цвета у тебя глаза и на чем ты стоишь но на C++ это не похоже. Просто сахар для проверок. Эти check/handle по сути тот же if но специализированный.

E>Да ну. Ты и в правду сравниваеш концепции только по отличиям синтаксиса ?

А теперь убери из кода на go check — что изменилось?
Или сделай несколько вложенных вызовов — как далеко исключение прокинется в примере на go?

check/handle это синтаксический сахар кодов ошибок, исключения — немного другая штука.

E>Да ну. Ты и в правду сравниваеш концепции только по отличиям синтаксиса ?

Re[4]: Грядет Go++ ?
От: eskimo82  
Дата: 09.12.18 00:24
Оценка:
m2l>А теперь убери из кода на go check — что изменилось?
Зачем ? Я могу и try/catch из C++ кода убрать, только это будет уже совсем другое.

check/handle это синтаксический сахар кодов ошибок

try/catch — это синтаксический сахар исключений... Нет ?
Отредактировано 09.12.2018 0:26 eskimo82 . Предыдущая версия .
Re[5]: Грядет Go++ ?
От: σ  
Дата: 09.12.18 02:39
Оценка: -1
E>

check/handle это синтаксический сахар кодов ошибок

E>try/catch — это синтаксический сахар исключений... Нет ?
Нет.
Re[5]: Грядет Go++ ?
От: Cyberax Марс  
Дата: 09.12.18 06:28
Оценка:
Здравствуйте, eskimo82, Вы писали:

m2l>>А теперь убери из кода на go check — что изменилось?

E>Зачем ? Я могу и try/catch из C++ кода убрать, только это будет уже совсем другое.
Нет. В Go это просто синтаксический сахар для if err ! = nil { return err; }. Причём обратно совместимый.

E>try/catch — это синтаксический сахар исключений... Нет ?

Исключения в С++ — это фундаментальная фича, которая не может быть реализована без поддержки компилятора и рантайма. Go check — это просто сахар.
Sapienti sat!
Re[5]: Грядет Go++ ?
От: m2l  
Дата: 09.12.18 09:12
Оценка: -1
Здравствуйте, eskimo82, Вы писали:

E>try/catch — это синтаксический сахар исключений... Нет ?


Ликбез. Синтаксический сахар — альтернативный способ записи уже имеющейся в языке синтаксической конструкции (более краткий, удобный, и т.д.)
То, что handle/check синтаксический сахар в go тебе продемонстрировали сообщением выше, приведя эквивалентный код без них.

Покажи нам, пожалуйста, для каких конструкций C++ является синтаксическим сахаром try/catch?
Re[6]: Грядет Go++ ?
От: eskimo82  
Дата: 09.12.18 18:49
Оценка:
E>>try/catch — это синтаксический сахар исключений... Нет ?
C>Исключения в С++ — это фундаментальная фича, которая не может быть реализована без поддержки компилятора и рантайма. Go check — это просто сахар.
Исключения могут быть реализованы даже на Си, все остальное — это удобный сахар от компилятора и рантайма
Re[6]: Грядет Go++ ?
От: eskimo82  
Дата: 09.12.18 18:56
Оценка: -1
E>>try/catch — это синтаксический сахар исключений... Нет ?
σ>Нет.
Тем не менее — да.
Re[6]: Грядет Go++ ?
От: eskimo82  
Дата: 09.12.18 19:06
Оценка: -2
m2l>Ликбез. Синтаксический сахар — альтернативный способ записи уже имеющейся в языке синтаксической конструкции (более краткий, удобный, и т.д.)
m2l>То, что handle/check синтаксический сахар в go тебе продемонстрировали сообщением выше, приведя эквивалентный код без них.

m2l>Покажи нам, пожалуйста, для каких конструкций C++ является синтаксическим сахаром try/catch?

Ликбез: Например для sjlj (setjmp/longjmp)
Re[7]: Грядет Go++ ?
От: m2l  
Дата: 09.12.18 21:27
Оценка: +1 -1
Здравствуйте, eskimo82, Вы писали:

m2l>>Покажи нам, пожалуйста, для каких конструкций C++ является синтаксическим сахаром try/catch?

E>Ликбез: Например для sjlj (setjmp/longjmp)

У-у как грубо... Навскидку: извраты с setjmp/longjmp не позволят вызвать деструкторы, необходимые для сохранения RAII при выходе из областей видимости внутри try...
Так что за синтаксический сахар в С++ они не засчитываются.
Re: Грядет Go++ ?
От: m2l  
Дата: 09.12.18 21:30
Оценка: -1 :)
Здравствуйте, eskimo82, Вы писали:

E>Красноглазые пионеры прыгали, бегали и стояли на ушах с этим Go, затем прошли "грабли" точно такие же как и в случае с Си, и в итоге приходят к аналогичным С++ концепциям.

Да! С++ божественный язык, грабель нет, концепции идеальны!

В go до исключений правда ещё на доросли (см. выше) — но так ему и не 35 лет ещё, со временем может и дойдут.
Re[8]: Грядет Go++ ?
От: eskimo82  
Дата: 09.12.18 22:56
Оценка: -1 :))
m2l>У-у как грубо... Навскидку: извраты с setjmp/longjmp не позволят вызвать деструкторы, необходимые для сохранения RAII при выходе из областей видимости внутри try...
m2l>Так что за синтаксический сахар в С++ они не засчитываются.
Возможность атоматически вызывать деструкторы при выходе за scope является другим сахаром.
Re[7]: Грядет Go++ ?
От: Cyberax Марс  
Дата: 10.12.18 03:09
Оценка: +2 -1 :)
Здравствуйте, eskimo82, Вы писали:

C>>Исключения в С++ — это фундаментальная фича, которая не может быть реализована без поддержки компилятора и рантайма. Go check — это просто сахар.

E>Исключения могут быть реализованы даже на Си, все остальное — это удобный сахар от компилятора и рантайма
Исключения не могут быть реализованы в С++ остальными средствами языка. Поэтому они не являются сахаром, в отличие от check/handle.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.