Здравствуйте, gandjustas, Вы писали:
EP>>Тезис в цитате (с которым я полностью согласен) довольно прост — на C++ проще создать быстрый код. Ты же пытаешься передёрнуть в какую-то совершенно другую плоскость
G>Плоскость та же самая. Просто ответь на вопрос насколько проще
Намного проще.
G>и насколько нужна скорость с учетом всех факторов,
Где-то нужна, а где-то нет
G>>>Для большинства проектов проценты прироста быстродействия
EP>>Причём тут "проценты"?
EP>>Выше как раз показано что при использовании Java-style это не проценты, а разы, и даже порядки.
G>А при использовании C# не разы.
В разы, бывает и на порядки
G>Кроме того операции с complex не такой уж частый случай. Я вот сомневаюсь что в том же ФБ много кода, работающего с вещественными числами.
Повторюсь в N-ый раз
Это бьёт далеко не только по арифметике и подобным вычислениям.
G>>>останутся незамеченными и дешевле будет сделать апгрейд железа, чем заниматься оптимизацией. Поэтому утверждение что "на C++ быстрый код получить на порядки проще" не имеет никакого смысла и верно только в контексте фейсбука\гугла и еще пары-тройки гигантов.
EP>>Ты почему-то говоришь в контексте каких-то отдельных областей типа web'а — причём так, что как-будто ничего другого нет. Уж поверь "быстрый код на C++" нужен не только гигантам.
G>Не видел ни одного случая, чтобы без C++ нельзя было добиться достаточного быстродействия.
Опять 25. Без C++, на Java и C# можно добиться быстродействия, что не ясно-то? Ты с чем споришь?
EP>>Тебе попадаются задачи где не нужен? Поздравляю, вот только не надо необоснованно экстраполировать свой опыт на всю индустрию.
G>Как раз ты пытаешься опыт ФБ экстраполировать на всю индустрию.
Где я это пытаюсь делать?
G>Увы никто, из тех кто будет читать этот форум, даже близко не подойдет к таким масштабам.
Да причём тут вообще масштабы? Есть много программ которые работают на устройствах конечных пользователей и где нужна скорость.
Ты же пытаешься всё свести к каким-то случаям типа веб-масштабирования. Не хватает только коронного "всё в базу упирается".
G>>>В остальных случаях сложность оптимизации на C++ и C# (и иногда Java) сравнимы, а учитывая в общем более высокую сложность разработки на C++ еще непонятно что будет проще в итоге.
EP>>Нет, не сравнимы. В C++ я могу сделать много уровней абстракций, которые будут либо бесплатными, либо крайне дешёвыми. В C#, а тем более Java, так не получится. И вот за счёт этого получается проще.
G>А не делать уровни абстракции не? Или ты считаешь, что это на порядок сложнее?
Да, это на порядок сложнее. Например примеры из этого топика:
Вместо того чтобы просто объявить класс Complex — будешь вручную нарезать массив double.
Вместо того чтобы взять готовую ФВП transform, и передать в неё лямбду — будешь выписывать ручной for-цикл.
И чем больше уровней, тем больше ad-hoc boilerplate, причём комбинаторно.
EP>>Мой поинт наоборот противоположный, и я уже устал его повторять:
EP>>Предел оптимизации везде примерно одинаковый, разница в десятки процентов это не так уж серьёзно. Но на C++ этот предел гораздо проще достичь.
G>На практике ровно наоборот.
Почему это? Вот в этом топике и Java и C# показали скорость близкую к C++.
G>В C++ можно вовсе не выделять память под объекты, а в C#\Java без этого никак. В некоторых случаях только один этот факт позволяет из кода на C++ выжать в разы больше быстродействия. Правда затраты на такую оптимизацию очень быстро превышают разумные пределы.
Ты как раз подтверждаешь мои слова выше. Ты читал на что отвечаешь?
EP>>Предел оптимизации везде примерно одинаковый, разница в десятки процентов это не так уж серьёзно. Но на C++ этот предел гораздо проще достичь.
G>На практике ровно наоборот.