Лямбды и Firebird, ад продолжается
А теперь, внимание, бородатая женщина будет есть червей мнение разработчика Firebird о лямбда-функциях:
Отвратительная возможность, провоцирующая написание нечитаемого
и несопровождаемого спагетти-кода, созданная на пустом месте чисто в
маркетинговых целях.
Вот такое моё частное мнение о лямбда-функциях.
Отвратительная возможность, провоцирующая написание нечитаемого
и несопровождаемого спагетти-кода, созданная на пустом месте чисто в
маркетинговых целях.
Вот такое моё частное мнение о лямбда-функциях.
no subject
no subject
no subject
no subject
Ну и со скоростью - это все хорошо, пока SQL вызывается десятки раз, а вот когда его приходится вызывать сотню тысяч раз за расчет, то тут операций к диску быть не должно (все сто раз будет закэшировано), и на парсинге тоже стоит поэкономить. Это в основном теория, на моей практике такие массовые SQL запросы (типа получения курсов валют) не требовали переменных фильтров, но у кого-то практика может отличаться.
no subject
По-моему это невалидный аргумент, уже лет 20 как передаётся строка и массив объектов в любое API.
> Конструкции получаются громоздкими (удвоение кавычек, переносы строк и прочая фигня).
Да, во многих языках нету литералов, и некрасивенько.
> когда его приходится вызывать сотню тысяч раз за расчет... и на парсинге тоже стоит поэкономить
Как правило такое вычисление экономят на клиенте и не пересекают 10 слоев, а БД обычно делается сетевое с 50 мс задержкой.
А кто делает расчёты на T/PL-SQL на сервере...тот ценитель извращений.
А знаете, какая самая проблема передать лямбду? потому что будет хотеться передать с контекстом, и непредсказуемой сложности вычисление. А ведь одно дело -- условие where a < b и другое where factorial(x) < 12345678. То есть лямбду в общем случае не оптимизируешь, как условие.