Здравствуйте, Basil2, Вы писали:
B>А смысл? Rust превосходит Go практически во всем: скорость, надежность, мощность, выразительность, обработка ошибок. На Go проще запиливать веб-сервисы, за счет чего его доля быстро растет, т.к. он заменяет одновременно Python, Node.JS, C#, Perl и PHP. Но мне больше нравится системная тема.
Это в тебе снобизм С++ разработчика говорит, меня так же крыло по началу. На деле, Rust, C++ и куча других языков проигрывает вот этому тупому и нелепому Го в простоте кода и читабельности. А это критично для любого проекта, у которого предполагается более менее долгий цикл поддержки и развития.
Как первый? Разве i++ (второй вариант) не чаще используется чем ++i (первый вариант) ? Ну и, как сказали выше, это просто вкусовщина, и семантика может использоваться любая.
Здравствуйте, AndrewJD, Вы писали:
AJD>Даже в бусте when_any/when_all нормально сделать не смогли. Создают вспомогательные потоки и делают ожидание в них. И как выполнить например 1000 ожиданий?
Что-то мне интересно стало, а нет сведений как это же самое в Rust реализовано?
Здравствуйте, kaa.python, Вы писали:
KP>1234 напечатает. Но это не баг, это фича... как бы.
Очень верно подмечено.
B>>
B>>if err != nil {
B>> return err
B>>}
B>>
KP>И? Явная обработка ошибки. Ты просто из C++ мира смотришь на что-то новое и кажется странно, но это не так, это просто новое и не на ровном месте возникшее.
В данному случае я смотрю из мира Rust
Там код
val, err := foo();
if err != nil {
return err;
}
превращается в
let val = foo()?;
Возврат нескольких значений в Go это _очень_ большой шаг по сравнению с С++, где приходилось извращаться с выходными параметрами и предварительным объявлением переменных (без возможности, например, объявить константу). Но в плане читабельности Go еще есть куда расти
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, kaa.python, Вы писали:
B>>А смысл? Rust превосходит Go практически во всем: скорость, надежность, мощность, выразительность, обработка ошибок. На Go проще запиливать веб-сервисы, за счет чего его доля быстро растет, т.к. он заменяет одновременно Python, Node.JS, C#, Perl и PHP. Но мне больше нравится системная тема.
KP>На деле, Rust, C++ и куча других языков проигрывает вот этому тупому и нелепому Го в простоте кода и читабельности. А это критично для любого проекта, у которого предполагается более менее долгий цикл поддержки и развития.
Я бы не называл Го тупым и нелепым (нелепый — это JavaScript, а тупых языков я пожалуй и не знаю, из мейнстримовых). У Гугла отлично получилось сделать простой и мощный язык, пусть и несколько разрозненный. Это как автомат Калашникова, условно. Да, для рядовых бойцов это самое то. Но если ты в спецназе, то там есть более подходящее оружие.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
B>>Так, но основной-то первый вариант. KP>Как первый?
Так — потому что второй вариант канонически реализуется паттерном через первый:
T T::operator++(int) {
T temp(t);
t++;
return temp;
}
KP>Разве i++ (второй вариант) не чаще используется чем ++i (первый вариант) ?
Это было до появления итераторов. Теперь положено использовать ++i.
KP>Ну и, как сказали выше, это просто вкусовщина, и семантика может использоваться любая.
Это не вкусовщина, а серьезный performance impact, так как вторая операция значительно медленнее, да еще и в цикле (если речь не о целочисленных переменных).
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
B>Возврат нескольких значений в Go это _очень_ большой шаг по сравнению с С++, где приходилось извращаться с выходными параметрами и предварительным объявлением переменных (без возможности, например, объявить константу). Но в плане читабельности Go еще есть куда расти
Ты всерьез считаешь, что выискивать знак вопроса в конце функции (при том что они могут быть цепочкой выстроены) — это большой шаг вперед в пользу читабельности?
Здравствуйте, Basil2, Вы писали:
KP>>Ну и, как сказали выше, это просто вкусовщина, и семантика может использоваться любая. B>Это не вкусовщина, а серьезный performance impact, так как вторая операция значительно медленнее, да еще и в цикле (если речь не о целочисленных переменных).
А ты замерять реально пробовал, на не синтетических тестах? Хоть раз видел что бы из за оператора ++ были тормоза? По мне так это типичная страсть C++ разработчика к оптимизации того, что оптимизировать не требуется.
Здравствуйте, Basil2, Вы писали:
B>Я бы не называл Го тупым и нелепым (нелепый — это JavaScript, а тупых языков я пожалуй и не знаю, из мейнстримовых). У Гугла отлично получилось сделать простой и мощный язык, пусть и несколько разрозненный. Это как автомат Калашникова, условно. Да, для рядовых бойцов это самое то. Но если ты в спецназе, то там есть более подходящее оружие.
Упс, извините, не знал что к спецназовцу со своим на вным видением лезу. Я больше не буду
Здравствуйте, kaa.python, Вы писали:
KP>Ты всерьез считаешь, что выискивать знак вопроса в конце функции (при том что они могут быть цепочкой выстроены) —
Зачем его выискивать?!
KP>это большой шаг вперед в пользу читабельности?
В сравнении с кучей однотипных if — конечно. Меня правда дублирование ну очень сильно раздражает (сильнее чем других — видимо пунктик такой), поэтому глаз сразу цепляется.
Есть кстати пара вопросов в тему:
1. Как в Go прочитать значение переменной под лочкой?
2. Чем Go лучше C#?
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, kaa.python, Вы писали:
KP>А ты замерять реально пробовал, на не синтетических тестах? Хоть раз видел что бы из за оператора ++ были тормоза? По мне так это типичная страсть C++ разработчика к оптимизации того, что оптимизировать не требуется.
Зачем? Использование i++ это заведомая пессимизация по сравнению с ++i. Да, глупо оптимизировать без причины, но пессимизировать не менее глупо.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, kaa.python, Вы писали:
B>>Я бы не называл Го тупым и нелепым (нелепый — это JavaScript, а тупых языков я пожалуй и не знаю, из мейнстримовых). У Гугла отлично получилось сделать простой и мощный язык, пусть и несколько разрозненный. Это как автомат Калашникова, условно. Да, для рядовых бойцов это самое то. Но если ты в спецназе, то там есть более подходящее оружие.
KP>Упс, извините, не знал что к спецназовцу со своим на вным видением лезу. Я больше не буду
Я только учусь, но тем не менее аналогия очень верна. Го, как и калаш, станет очень популярным, это несомненно. Просто популярное не значит самое лучшее.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.