Re[8]: Rust взлетает?
От: so5team https://stiffstream.com
Дата: 10.12.19 07:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Ну, как ты понимаешь, показать код который был у нас я не могу, тут придется просто поверить на слово, что было проще, легче и понятнее чем в случае с C++... но вполне можно глянуть в какой-нибудь активный проект и, при желании, найти там как подтверждение моим словам, так и что-то не читабельное и сказать что я вру


Так вопрос как раз в том, чтобы сразу погрузиться в код, который считается хорошим примером Go-шного кода, а не рыскать по непонятно чему.
Re[9]: Rust взлетает?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 10.12.19 07:29
Оценка:
Здравствуйте, so5team, Вы писали:

S>Так вопрос как раз в том, чтобы сразу погрузиться в код, который считается хорошим примером Go-шного кода, а не рыскать по непонятно чему.


Хорошо, самое просто – компилятор, само собой там своя специфика. Как-то я смотрел реализацию Raft в Etcd, на мой взгляд довольно хорошее качество у проекта в целом.
Re[10]: Rust взлетает?
От: so5team https://stiffstream.com
Дата: 10.12.19 15:16
Оценка:
Здравствуйте, kaa.python, Вы писали:

S>>Так вопрос как раз в том, чтобы сразу погрузиться в код, который считается хорошим примером Go-шного кода, а не рыскать по непонятно чему.


KP>Как-то я смотрел реализацию Raft в Etcd, на мой взгляд довольно хорошее качество у проекта в целом.


Упс. Ошибочка. Приведенный в первой версии ответа пример оказался сгенерирован
Отредактировано 10.12.2019 15:20 so5team . Предыдущая версия .
Re[11]: Rust взлетает?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 11.12.19 00:07
Оценка:
Здравствуйте, so5team, Вы писали:

S>Упс. Ошибочка. Приведенный в первой версии ответа пример оказался сгенерирован


Да, это же Protobuf, он и для C++ кучу кода генерит. Но вообще, в Go очень много генерированного кода (я и сам генерил) так как, с одной стороны нет шаблонов, а с другой стороны поддержка построения и манипуляций с AST встроена в стандартную библиотеку, да и язык крайне простой, так что код генерировать очень просто.

А в целом-то как ощущения? Я по началу, после C++ очень плевался от Go, но сейчас мне скорее C++ кажется переусложенным (да еще и без каналов и зеленых потов, что вообще фи).
Отредактировано 11.12.2019 1:11 kaa.python . Предыдущая версия . Еще …
Отредактировано 11.12.2019 1:10 kaa.python . Предыдущая версия .
Re[12]: Rust взлетает?
От: so5team https://stiffstream.com
Дата: 11.12.19 06:52
Оценка:
KP>А в целом-то как ощущения? Я по началу, после C++ очень плевался от Go, но сейчас мне скорее C++ кажется переусложенным (да еще и без каналов и зеленых потов, что вообще фи).

Смотря с чем сравнивать. Любой язык с GC и лаконичным синтаксисом будет восприниматься проще чем C++. Тут скорее другое интересует: в каких таких областях Go и C++ конкурируют? Если речь о том, что были тоны говнокода на "Си с классами" родом из 90-х, над которыми в течении многих лет надругались толпы "индусов" всех национальностей, и о качестве/производительности речи нет, тогда понятно в чем преимущество Go. Но если брать более нормальные условия?

Если же сравнивать с языками с GC, с каким-нибудь D, то вообще непонятно, в чем преимущества Go. Писать код вида:
func (c *Config) Clone() Config {
    clone := func(m map[uint64]struct{}) map[uint64]struct{} {
        if m == nil {
            return nil
        }
        mm := make(map[uint64]struct{}, len(m))
        for k := range m {
            mm[k] = struct{}{}
        }
        return mm
    }
    return Config{
        Voters:       quorum.JointConfig{clone(c.Voters[0]), clone(c.Voters[1])},
        Learners:     clone(c.Learners),
        LearnersNext: clone(c.LearnersNext),
    }
}

можно на любом современном языке. И на каком-нибудь Rust-е это будет даже получше делать, т.к. там меньше проверок на nil нужно выполнять.
Re[13]: Rust взлетает?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 11.12.19 07:11
Оценка:
Здравствуйте, so5team, Вы писали:

S> Смотря с чем сравнивать. Любой язык с GC и лаконичным синтаксисом будет восприниматься проще чем C++. Тут скорее другое интересует: в каких таких областях Go и C++ конкурируют?


Мы на Go помимо бэкенда (где он ожидаем) написали кросплатформенный сервис и несколько утилит для командной строки. В принципе, это когда-то была зона ответственности C++

S> Если речь о том, что были тоны говнокода на "Си с классами" родом из 90-х, над которыми в течении многих лет надругались толпы "индусов" всех национальностей, и о качестве/производительности речи нет, тогда понятно в чем преимущество Go. Но если брать более нормальные условия?


Не только "индусов", а для обычного кода, который спокойно переживет ±1мс в вопросе производительности, но при этом хочется получить хорошую читабельность (Gо про "удобно читать", а не "удобно писать").
Re[14]: Rust взлетает?
От: so5team https://stiffstream.com
Дата: 11.12.19 09:41
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Мы на Go помимо бэкенда (где он ожидаем) написали кросплатформенный сервис и несколько утилит для командной строки. В принципе, это когда-то была зона ответственности C++


Это расплывчатые понятия, ибо такие вещи некоторые люди принципиально продолжают писать исключительно на чистом Си, а другие вполне себе успешно делают это на Perl/Python/Ruby уже несколько десятков лет как.

KP>Не только "индусов", а для обычного кода, который спокойно переживет ±1мс в вопросе производительности, но при этом хочется получить хорошую читабельность (Gо про "удобно читать", а не "удобно писать").


±1мс -- это для каких вещей? Перекодирования изображений или выполнения системных вызовов типа epoll/accept/read/write?

Ну и по читабельности хотелось бы таки увидеть примеры, на которых эта читабельность была бы видна. Пока что внимание привлекает только лаконичный синтаксис для получения слайса вектора, типа a[:n].
Re[15]: Rust взлетает?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 11.12.19 10:57
Оценка:
Здравствуйте, so5team, Вы

S>Это расплывчатые понятия, ибо такие вещи некоторые люди принципиально продолжают писать исключительно на чистом Си, а другие вполне себе успешно делают это на Perl/Python/Ruby уже несколько десятков лет как.


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

S>±1мс -- это для каких вещей? Перекодирования изображений или выполнения системных вызовов типа epoll/accept/read/write?


Мелкие тормоза из-за посредственного оптимизатора и пауз GC.

S>Ну и по читабельности хотелось бы таки увидеть примеры, на которых эта читабельность была бы видна. Пока что внимание привлекает только лаконичный синтаксис для получения слайса вектора, типа a[:n].


Ну, думаю что рассказывать о прелестях не-C++ заядлому C++-нику я дальше не буду. Пример простого и читабельного кода я привёл, можешь открыть сравнимое на C++ да сравнить. Всяко убедить не выйдет, пробовать надо.
Re[16]: Rust взлетает?
От: so5team https://stiffstream.com
Дата: 11.12.19 11:17
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


Речь о другом: какие именно задачи решали эти утилиты командной строки? Преобразование форматов данных? Запрос информации через Web? Проверка каких-то параметров машины пользователя?

S>>±1мс -- это для каких вещей? Перекодирования изображений или выполнения системных вызовов типа epoll/accept/read/write?


KP>Мелкие тормоза из-за посредственного оптимизатора и пауз GC.


Но все-таки на каких именно задачах тестировалась производительность? У вас было перекодирование изображений, математические расчеты, обслуживание сетевых соединений?

KP>Пример простого и читабельного кода я привёл, можешь открыть сравнимое на C++ да сравнить.


Ну так как-то с примерами простого, расширяемого и поддерживаемого кода что-то пока не задается. Можно показать пальцем: вот, мол, здесь всего 10 строк, а на менее выразительном языке это бы потребовало больше усилий?
Re[6]: Rust взлетает?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.12.19 12:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Я этот этап давно прошел. Интересно — это сделать легко поддерживаемое, расширяемое решение в срок и с ожидаемым качеством. И вот в таком случае конкурентов у Go почти нет.


Оффтоп про Go — программист на Go ратует за дальнейшее упрощение языка: убрать else, против generic и т.д.
  Видео
Re[7]: Rust взлетает?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.12.19 13:16
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Оффтоп про Go — программист на Go ратует за дальнейшее упрощение языка: убрать else, против generic и т.д.

N>
  Видео
N>


А в Го сообществе много странненьких. Я в Го слэках сижу (русский, английский), иногда волосы шевелятся от того бреда что они несут. Особенно в русском слэке
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.