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

Сообщение Re[169]: Тормознутость и кривость linq. Compile-time EDSL DB от 09.07.2016 22:04

Изменено 09.07.2016 22:17 Serginio1

Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Serginio1, Вы писали:


S>>>> Если сюда добавить фильтр на null

EP>>>В том-то и дело что не нужно сюда добавлять фильтр на null — как и любой другой фильтр он реализуется ортогонально. Его добавили из-за проблем самого C#.
S>> Дааааа? Приведу пример работы с базами данных. Там null это повсеместное явление при соединениях.
S>> Это как раз проблемы С++.

EP>Я не говорю что не нужно фильтровать. Я говорю что фильтрацию не нужно встраивать в алгоритм поиска минимального элемента — это ортогонально.

EP>Вот представить что тебе нужно отфильтровать не null, а все чётные — будешь писать отдельный алгоритм min_odd_element?

Еще раз для я тебе показал алгоритм на Linq.
S>>Я думаю о том, что ты не знаешь C#, но делаешь свои умозаключения на коде, в котором ничего не понимаешь.

EP>Всё, надоел, по несколько раз одно и то же

Правильно ты не можешь согласиться с тем, что не прав.
Ты сделал вывод на выразительности на основании того, что ктото ипользовал алгоритм поиска вручную. Тебе привели пример как можно использовать Linq https://rsdn.ru/forum/flame.comp/6497123.1
Автор: Serginio1
Дата: 09.07.16
на, что ты https://rsdn.ru/forum/flame.comp/6497160.1
Автор: Evgeny.Panasyuk
Дата: 09.07.16


А, так ты под реализацией имеешь в виду вызов готового алгоритма?


При этом ты то при твои утвеждения, что считаешь, что они верны

По алгоритмической выразительности среди мэйнстрима C++ сейчас впереди всех.
Для сравнения C#, свежий пример
— на C++ десять строк (+ может несколько wrapper'ов, это максимум десятки строк), на C# — несколько сотен строк кода (è1 + è2) причём включая кодогенетратор, который генерирует èнесколько тысяч строк, а алгоритм-то совсем пустяковый.

Ещё ДО отрабатывания T4, кода на C# больше, и его труднее поддерживать, ибо это склейка кода как текста.

А на то, что тебе приводят код на Linq более лаконичный тебе глубоко плевать.
Надо признавать ошибки. И доказвать там, где хорошо знаешь область. От того, что ты прекрасно знаешь С++, не говорит, что ты автоматом разбираешься в C++ или 1С.
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Serginio1, Вы писали:


S>>>> Если сюда добавить фильтр на null

EP>>>В том-то и дело что не нужно сюда добавлять фильтр на null — как и любой другой фильтр он реализуется ортогонально. Его добавили из-за проблем самого C#.
S>> Дааааа? Приведу пример работы с базами данных. Там null это повсеместное явление при соединениях.
S>> Это как раз проблемы С++.

EP>Я не говорю что не нужно фильтровать. Я говорю что фильтрацию не нужно встраивать в алгоритм поиска минимального элемента — это ортогонально.

EP>Вот представить что тебе нужно отфильтровать не null, а все чётные — будешь писать отдельный алгоритм min_odd_element?

Еще раз для я тебе показал алгоритм на Linq.
S>>Я думаю о том, что ты не знаешь C#, но делаешь свои умозаключения на коде, в котором ничего не понимаешь.

EP>Всё, надоел, по несколько раз одно и то же

Правильно ты не можешь согласиться с тем, что не прав.
Ты сделал вывод на выразительности на основании того, что ктото ипользовал алгоритм поиска вручную. Тебе привели пример как можно использовать Linq https://rsdn.ru/forum/flame.comp/6497123.1
Автор: Serginio1
Дата: 09.07.16
на, что ты https://rsdn.ru/forum/flame.comp/6497160.1
Автор: Evgeny.Panasyuk
Дата: 09.07.16


А, так ты под реализацией имеешь в виду вызов готового алгоритма?


При этом ты то при твои утвеждения, что считаешь, что они верны

По алгоритмической выразительности среди мэйнстрима C++ сейчас впереди всех.
Для сравнения C#, свежий пример
— на C++ десять строк (+ может несколько wrapper'ов, это максимум десятки строк), на C# — несколько сотен строк кода (è1 + è2) причём включая кодогенетратор, который генерирует èнесколько тысяч строк, а алгоритм-то совсем пустяковый.

Ещё ДО отрабатывания T4, кода на C# больше, и его труднее поддерживать, ибо это склейка кода как текста.

А на то, что тебе приводят код на Linq более лаконичный тебе глубоко плевать. Но при этом будет 2 прохода.
Ребята решили оптимизировать и сделали за один проход. Другое дело, что фильтр оптимизирован и нужно было использовать только один проход с фильтром на Nullable типы
Надо признавать ошибки. И доказвать там, где хорошо знаешь область. От того, что ты прекрасно знаешь С++, не говорит, что ты автоматом разбираешься в C++ или 1С.