Здравствуйте, gandjustas, Вы писали:
EP>>>>Тезис в цитате (с которым я полностью согласен) довольно прост — на C++ проще создать быстрый код. Ты же пытаешься передёрнуть в какую-то совершенно другую плоскость
G>>>Плоскость та же самая. Просто ответь на вопрос насколько проще
EP>>Намного проще.
G>Намного это насколько?
Настолько, что даже в рассматриваемом примере, при использовании удобных средств типа ФВП и лямбд, C++ код скомпилированный в JS (!) оказывается практически в два раза быстрее чем аналогичный на C#.
И это на C# с использованием структур, которые как ты сам пишешь используют редко (а в C++ value type это default) — если же перейти к классам, то там уже получаются отставания на порядки.
G>>>Кроме того операции с complex не такой уж частый случай. Я вот сомневаюсь что в том же ФБ много кода, работающего с вещественными числами.
EP>>Повторюсь в N-ый раз Это бьёт далеко не только по арифметике и подобным вычислениям.
G>Ок, покажи другой пример, близкий к реальности, где нет арифметики с комплексными числами, матрицами итп.
Например послушай какие оптимизации делали
вот тут (хотя бы первые полчаса), и почему.
Или тебе нужен короткий пример который мы тут сможем воспроизвести?
EP>>>>Ты почему-то говоришь в контексте каких-то отдельных областей типа web'а — причём так, что как-будто ничего другого нет. Уж по верь "быстрый код на C++" нужен не только гигантам.
G>>>Не видел ни одного случая, чтобы без C++ нельзя было добиться достаточного быстродействия.
EP>>Опять 25. Без C++, на Java и C# можно добиться быстродействия, что не ясно-то? Ты с чем споришь?
G>С выделенным.
А какие у тебя аргументы? И контраргументы какого типа ты сможешь принять?
EP>>>>Тебе попадаются задачи где не нужен? Поздравляю, вот только не надо необоснованно экстраполировать свой опыт на всю индустрию.
G>>>Как раз ты пытаешься опыт ФБ экстраполировать на всю индустрию.
EP>>Где я это пытаюсь делать?
G>В последних трех постах.
Ты прочитай ещё раз цитату. Они не говорят ничего про жёсткие (и дорогие в реализации) оптимизации, хотя и они у них есть. Они говорят что нормально написанный код C++ просто работает быстро, в отличии от Java и т.п.
Примеры в этом топике это также подтверждают — нравится тебе это или нет.
G>>>Увы никто, из тех кто будет читать этот форум, даже близко не подойдет к таким масштабам.
EP>>Да причём тут вообще масштабы? Есть много программ которые работают на устройствах конечных пользователей и где нужна скорость.
G>И там почему-то JavaScript, C#, Java и swift.
Ага. И, барабанная дробь, C++.
EP>>Да, это на порядок сложнее. Например примеры из этого топика:
EP>>Вместо того чтобы просто объявить класс Complex — будешь вручную нарезать массив double.
EP>>Вместо того чтобы взять готовую ФВП transform, и передать в неё лямбду — будешь выписывать ручной for-цикл.
EP>>И чем больше уровней, тем больше ad-hoc boilerplate, причём комбинаторно.
G>Но это, как мы выяснили уже, вырожденный пример. В реальности не встречающийся.
Кто и где это выяснил?
G>В реальности количество боилерплйта на C++ оказывается не меньше, чем на java или C#.
Аргументы?
EP>>>>Мой поинт наоборот противоположный, и я уже устал его повторять:
EP>>>>Предел оптимизации везде примерно одинаковый, разница в десятки процентов это не так уж серьёзно. Но на C++ этот предел гораздо проще достичь.
G>>>На практике ровно наоборот.
EP>>Почему это? Вот в этом топике и Java и C# показали скорость близкую к C++.
G>Потому что быстродействие программ вовсе не от быстродействия математики зависит.
Ты не смотри то что там комплексные числа умножаются — C# код с классами получился медленней практически на два порядка. Даже если бы сами вычисления там были моментальными — то картину это бы никак не поменяло.
G>Ты говоришь что на C++ проще получить быстрый код.
Ну да: "Reasonably written C++ code just runs fast".
G>Я говорю что на C++ в любом случае писать сложно, но код можно получить более быстрый, чем с другими языками.
Прочитай ещё раз цитату:
"The going word at Facebook is that 'reasonably written C++ code just runs fast,' which underscores the enormous effort spent at optimizing PHP and Java code. Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier [to write in C++ than in other languages]." – Herb Sutter at //build/, quoting Andrei Alexandrescu
И прочитай выделенное. А потом чётко сформулируй с чем ты не согласен в этой цитате.