Я полностью согласен с замечанием Бартломье Шиполова. Несмотря на это, я постараюсь ответить на ваш вопрос.
Декларативный язык всегда зависит от императивного языка для его работы. Возьмите что-то простое, например, как арифметика. Когда мы запрашиваем результат 1+1
, нам сначала нужно знать, как следует понимать 1
и как в этом контексте оператор +
может быть рассчитан до того, как оператор в целом может быть истолкован. Это один из способов преодоления сложности; вам не нужно знать, как сделать операцию с плюсом, чтобы использовать ее.
От http://en.wikipedia.org/wiki/Imperative_programming:
процедурного программирования можно рассматривать как шаг на пути к декларативной программирования. Программист может часто рассказать, просто взглянув на имена, аргументы и возвращаемые типы процедур (и связанные с ними комментарии ), какую именно процедуру должен выполнять, без , обязательно глядя на детали того, как он достигает своего результата. При в то же время полная программа по-прежнему является императивной, так как она «исправляет» операторы, которые должны быть выполнены, и порядок их выполнения на большой размер .
В любом регионе то же самое относится. Если вы попросите стюардессу reschedule
вашего flight
, она знает, что такое рейс и пассажир, и как reschedule
один. Создание полностью декларативной модели домена для планирования полетов без описания того, как работает планирование, невозможно. Так как все модели домена содержат операции/поведение, то поэтому невозможно создать модель домена на декларативном языке, если ваша проблемная область не уникальна, например, когда у вас есть три летных компании, которые работают аналогичным образом.
Вернуться почему ... ты сказал:
На самом деле, гипотетическая причина, почему на самом деле, чтобы не-кодеров создать (тривиальное) бэкенд конфигурацией
декларативного программирования не всегда проще, чем императивное программирование. Большую часть времени люди склонны думать в результатах, но иногда результаты настолько разнообразны, что (намного) проще думать в шагах. Вот почему эти разные стили существуют и продолжают существовать в первую очередь. Основное различие между кодером и не-кодером составляет , а не, что не-кодер имеет тенденцию думать в терминах результатов вместо процессов, но что не-кодер просто не хочет беспокоиться о работе компьютера , Некодер хочет сосредоточиться на проблеме. В зависимости от домена некорректный DSL-код может быть лучше всего использован с обязательным DSL, а не декларативным DSL.
Хотя я считаю, что идея интересная, я не верю, что StackOverflow предназначен для этого стиля обсуждения (будь то непосредственно о плюсах/минусах или списке внешних источников). –
будет http://programmers.stackexchange.com/ лучше? –
Из раздела «Обмен файлами программистов» [«Какие вопросы следует избегать»] (http://programmers.stackexchange.com/help/dont-ask): «Если ваша мотивация для запроса вопроса« Я бы хотел участвовать в обсуждении ______ ", тогда вы не должны спрашивать здесь. Однако, если ваша мотивация «Я хотел бы, чтобы другие объяснили мне ______», тогда вы, вероятно, «ОК». Мне кажется, что ваш вопрос более первый, и, следовательно, он не будет на тему у программистов. –