Это не так же ( в смысле "так же" как некая особленная конструкция, не сводимая к другой) , это равнозначно, в том смысле, что рекурсия и while равномощные/взиамозаменяемые конструкции.
Мне нравится подход Сысоева - конфиг должен быть максимально декларативным, потому что это упрощает поддержку сложных конфигураций. А там где декларативности не хватает есть встроенный perl, но это уже не конфиг а расширение функциональности софта.
Для радиуса я бы тоже сделал декларативный конфиг плюс подключение функций на lua для сложных случаев.
Тьюринг-полные конфиги, если используются как тьюринг-полные конфиги (а не магические руны артефактного вида), плохо совместимы с системами управления конфигурациями.
В целом, деплой чего-то, способного к decision making должен проходить не через систему управления конфигурациями, а как софт. С юнит и интеграционными тестами, сборкой пакетов на CI, версионированием и т.д.
Если конфиг тьюринг-полный, но такого оверкилла не требует, то он не должен быть тьюринг-полным.
Потому что когда на продакшен выкатывается что-то тьюринг-полное без due process, то это шапкозакидательство в стиле "в этот раз точно мы напишем софт без тестирования и багов".
Замечание только одно -- >> конфиг должен задаваться на декларативном, не тьюринг-полном зяыке. > Как мне кажется, это слишком сильное ограничение для реальных задач.
Видимо, в посте имелось что-то типа, что функциональный тьюринг-худой язык декларативным не считается?
Comments 16
(The comment has been removed)
и вообще-то немутабельность была одной из целей
Reply
(The comment has been removed)
или что?
Reply
Reply
Reply
Как нам в научно-популярной форме подсказывают ссылочки 11 и 12 вот тут:
http://en.wikipedia.org/wiki/Recursion_%28computer_science%29
Reply
Для радиуса я бы тоже сделал декларативный конфиг плюс подключение функций на lua для сложных случаев.
Reply
без всяких исключений и lua.
Reply
В целом, деплой чего-то, способного к decision making должен проходить не через систему управления конфигурациями, а как софт. С юнит и интеграционными тестами, сборкой пакетов на CI, версионированием и т.д.
Если конфиг тьюринг-полный, но такого оверкилла не требует, то он не должен быть тьюринг-полным.
Потому что когда на продакшен выкатывается что-то тьюринг-полное без due process, то это шапкозакидательство в стиле "в этот раз точно мы напишем софт без тестирования и багов".
Reply
>> конфиг должен задаваться на декларативном, не тьюринг-полном зяыке.
> Как мне кажется, это слишком сильное ограничение для реальных задач.
Видимо, в посте имелось что-то типа, что функциональный тьюринг-худой язык декларативным не считается?
P.S. Обратил внимание на дату поста ;-)
Reply
иначе это ж вообще жопа выходит -- программу запускаешь, а она виснет и почему -- не понятно
Reply
И человеки сгенерированное читать не должны.
Reply
по опыту это не удобно и от этого постарались уйти.
Reply
Leave a comment