Информация об изменениях

Сообщение Re: Критика современного С++ от 05.02.2019 13:07

Изменено 05.02.2019 13:13 kaa.python

Re: Критика современного С++
Здравствуйте, Nuzhny, Вы писали:

N>От разработчиков Unity.

N>Критикуют ranges, boost, излишнюю сложность и нечитабельность в плюс к медленной компиляции и просевшей производительности. Типа пихают в С++ всё подряд, переусложняя язык.
N>Отчасти можно согласиться после простотра примера про Пифагоровы тройки.

Довольно необоснованные претензии. Во-первых, код с пифагоровыми тройками на рэйнджах довольно просто читается, просто для начала надо потратить 10 минут и понять что такое рэйнджи. Можно возразить что "но это же время", что вроде верно, если забыть что интервал между C++17 и C++20, т.е. 3 года, не шибко маленький и уж найти 20 минут на то, чтобы разобраться можно. Во-вторых, наличие RANGES_FOR намекает на то, что текущее решение построено на макросах и будет заменено неким встроенным синтаксическим сахаром и уж наверняка будет оптимизировано. Это в свою очередь делает текущие стенания на тему скорости компиляции не очень обоснованными. В-третьих, проблема с производительностью имеет те же корни что и со скоростью сборки — экспериментальная реализация.

Ну а вот это вообще инфантилизм какой-то:

Некоторые из ответов вида «весь фидбек будет проигнорирован, если он не оформлен в виде документа, представленного на собрании комитета C++», которые я видел в последнее время не кажутся мне продуктивным подходом


Так и напрашивается вопрос "а кто же ты такой чтобы твои запросы были рассмотрены иначе чем запросы других?". C++ один из наиболее широко использующихся языков на данный момент и без досконального анализа ситуации отвлекаться на жалобы очередного неосилятора просто нелепо.

Так же чувак приводит Rust в качестве альтернативы забывая о том, что в нем разных НЁХ-ов как бы не меньше и он просто еще не успел с ними столкнуться. Вообще гениальный пример на нём, и это, типа, проще?! Тот кто не осилил рэйнджи, ослит вот это?
 
fn triples(n: u32) -> impl Iterator<Item = (u32, u32, u32)> {
    (0..n).flat_map(move |z| 
        (1..z).flat_map(move |x| 
            (x..z).map(move |y| 
                (x, y, z)
            )
        )
    )
    .filter(|(x, y, z)| x*x + y*y == z*z)
}


Ну и последнее, у гейм-девелоперов очень особый мир и видение прекрасного с сильнейшим NIH синдромом, часто на ровном месте. Если свое — значит лучше, даже без тестовых замеров вполне себе типичная ситуация. BOOST — говно, STL — говно, давайте велосипедить, при этом уровень у велосипедистов даже рэйнджи не позволяет осилить.

Тьфу, короче.
Re: Критика современного С++
Здравствуйте, Nuzhny, Вы писали:

N>От разработчиков Unity.

N>Критикуют ranges, boost, излишнюю сложность и нечитабельность в плюс к медленной компиляции и просевшей производительности. Типа пихают в С++ всё подряд, переусложняя язык.
N>Отчасти можно согласиться после простотра примера про Пифагоровы тройки.

Довольно необоснованные претензии. Во-первых, код с пифагоровыми тройками на рэйнджах довольно просто читается, просто для начала надо потратить 10 минут и понять что такое рэйнджи. Можно возразить что "но это же время", что вроде верно, если забыть что интервал между C++17 и C++20, т.е. 3 года, не шибко маленький и уж найти 20 минут на то, чтобы разобраться можно. Во-вторых, наличие RANGES_FOR намекает на то, что текущее решение построено на макросах и будет заменено неким встроенным синтаксическим сахаром и уж наверняка будет оптимизировано. Это в свою очередь делает текущие стенания на тему скорости компиляции не очень обоснованными. В-третьих, проблема с производительностью имеет те же корни что и со скоростью сборки — экспериментальная реализация.

Ну а вот это вообще инфантилизм какой-то:

Некоторые из ответов вида «весь фидбек будет проигнорирован, если он не оформлен в виде документа, представленного на собрании комитета C++», которые я видел в последнее время не кажутся мне продуктивным подходом


Так и напрашивается вопрос "а кто же ты такой чтобы твои запросы были рассмотрены иначе чем запросы других?". C++ один из наиболее широко использующихся языков на данный момент и без досконального анализа ситуации отвлекаться на жалобы очередного неосилятора просто нелепо.

Так же чувак приводит Rust в качестве альтернативы забывая о том, что в нем разных НЁХ-ов как бы не меньше и он просто еще не успел с ними столкнуться. Вообще гениальный пример на нём, и это, типа, проще?! Тот кто не осилил рэйнджи, осилит вот это?
 
fn triples(n: u32) -> impl Iterator<Item = (u32, u32, u32)> {
    (0..n).flat_map(move |z| 
        (1..z).flat_map(move |x| 
            (x..z).map(move |y| 
                (x, y, z)
            )
        )
    )
    .filter(|(x, y, z)| x*x + y*y == z*z)
}


Ну и последнее, у гейм-девелоперов очень особый мир и видение прекрасного с сильнейшим NIH синдромом, часто на ровном месте. Если свое — значит лучше, даже без тестовых замеров вполне себе типичная ситуация. BOOST — говно, STL — говно, давайте велосипедить, при этом уровень у велосипедистов даже рэйнджи не позволяет осилить.

Тьфу, короче.