Re[178]: Тормознутость и кривость linq. Compile-time EDSL DB
От: Evgeny.Panasyuk Россия  
Дата: 10.07.16 13:39
Оценка: -2 :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>А это для лучшего перформанса.

EP>>Так я и говорю, этот код пришлось написать из вполне конкретных практических соображений.
НС>Практические соображения и алгоритмическая выразительность это разные вещи. Алгоритмически все это можно было бы уложить в один небольшой метод.

Номинально да, на практике же имеем совсем не номинальный boilerplate.

НС>>>Но аналогичная ситуация с чудовищной кашей в твоей шаблонной магии тебя почему то устраивает, а тут прям какая то вселенская проблема и ужас ужас.

EP>>Вот что-что, а передёргивать у вас всех здорово получается
EP>>Шаблонная магия нужна для реализации EDSL запросов времени компиляции
НС>Далеко не только. Еще недавно она была нужна даже для таких базовых вещей как лямбды.

"Недавно" это уже лет шесть как назад. И это всё же передёргивание.

НС>И для плохонького аналога анонимных типов она понадобилась. Причем ее не хватило в итоге, и пришлось допиливать при помощи макросов препроцессора.


Каких конкретно макросов? Тех что используются для определения таблицы? Так там необязательно макросы использовать, можно и текстовую кодогенерацию — всё равно нужно же как-то состоковывать со схемой БД — также как и в Linq2DB

EP>>Для обсуждаемого простейшего алгоритма поиска минимального/максимального элемента никакой магии не нужно.

НС>Ты обсуждаешь простейший алгоритм на С++ с его конкретной реализацией для дотнета, содержащей кучу подробностей, связанных со спецификой платформы. Это самая натуральная демагогия.

На C++ из всей "специфики платформы" к этому алгоритму будет несколько десятков строк врапперов для Range интерфейсов, о чём я сразу и сказал. Но это же никак не сотни + текстовая кодогенерация.

НС>Или давай вспомним, что куча плюсовых OR/M вообще не поддерживают NULL в value колонках, видать из-за крутой алгоритмической выразительности.


Причём тут ограничения каких-то левых OR/M и простейший алгоритм?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.