Не уверен, что это подходит в декларативное программирование... Больше нестройных размышлений, чем по сути.
Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Примеры из жизни:
TaskJuggler — планирование проектов.
task test "Software testing" {
task alpha "Alpha Test" {
effort 1w
depends !!software
allocate test, dev2
note "Hopefully most bugs will be found and fixed here."
}
task beta "Beta Test" {
effort 4w
depends !alpha
allocate test, dev1
}
}
Лично я использую, но неудержимо тянет написать свое, с блекджеком и прочим. Раздражает слишком развесистый синтаксиси отсутствие некоторых функций.
Вот еще пример — Faces, тоже, для того же, но базе питона — чем-то даже лучше TJ, но прибит гвозями к GUI, а GUI стремный и глючный.
Вот еще пример — уже собственный DSL — планирование рейсов:
РЕЙС "ТРИЛАЙН - ТРИЛАЙН"
НАЧАЛО "2008-03-01 06:10:00"
ПРОДОЛЖИТЕЛЬНОСТЬ 4 ЧАСА
ПУНКТ 1 "ТРИЛАЙН"
ПРИБЫТИЕ 10 МИНУТ ОТ РЕЙС/НАЧАЛО
УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ
ПУНКТ 2 "ТАГАНСКАЯ ПЛОЩАДЬ"
ПРИБЫТИЕ 5 ЧАСОВ ОТ РЕЙС/НАЧАЛО
УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ
ПУНКТ 3 "ДИНАМО"
ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ ПУНКТ#2/УБЫТИЕ
УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ
ПУНКТ 66 "ЧИСТЫЕ ПРУДЫ"
ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ РЕЙС/НАЧАЛО
УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ
По результатам обсуждения с людьми, близкими по менталитету к заказчикам продукта, пришлось отказаться от предоставления пользователю возможности редактировать DSL напрямую, так что DSL сериализуется в XML/DOM, из него на клиенте генерируется динамическая форма, которая при самбите обходится и по которой генерируется все тот же DSL, но уже измененный. Но сам DSL фактически пропал раз пользователю недоступен — можно было и тупо XML туда-сюда гонять. Лично я по поводу этого решения испытываю сожаление — по моему, довольно стройная получалась в начале концепция.
Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ?
Просто хочется иметь какое-то количество решений для домашнего и не очень применения — планирование проектов, построение roadmap-ов, управление сметами/бюджетами и т.п. Без GUI — задачи редуцируются до достаточно примитивных утилит — которые на входе получают текст на DSL с описанием, на выходе — отчет в каком-то виде. Интересно, может ли у таких продуктов быть вообще В ПРИНЦИПЕ немаргинальная аудитория? Видите ли вы перспективы в использовании подобного подхода? Ну и вообще...
Здравствуйте, dmz, Вы писали:
dmz>Не уверен, что это подходит в декларативное программирование... Больше нестройных размышлений, чем по сути.
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Где-то у Фаулера встречал фразу "Главное, в dsl не то что они business people writable, а то что business people readable".
dmz>из него на клиенте генерируется динамическая форма
Еще ведь вопрос в объеме кода реализуюшего это все. Сколько необходимо дописать чтобы добавить еще одно поле? Добавить условное выражение? Конкретно поменять структуру, автоматически сконвертив уже написанные клиентами скрипты?
dmz> ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ ПУНКТ#2/УБЫТИЕ
А что бывает ОТ ПУНКТ#2/ПРИБЫТИЕ ? Почему не "ОТ НАЧАЛО", и не "ОТ ПУНКТ 2"
-- Главное про деструктор копирования не забыть --
K>Еще ведь вопрос в объеме кода реализуюшего это все. Сколько необходимо дописать чтобы добавить еще одно поле? Добавить условное выражение? Конкретно поменять структуру, автоматически сконвертив уже написанные клиентами скрипты?
По сравневнию с чем? От очень неочевидной интерактивной логики удалось избавиться, как раз, введя DSL.
dmz>> ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ ПУНКТ#2/УБЫТИЕ K>А что бывает ОТ ПУНКТ#2/ПРИБЫТИЕ ? Почему не "ОТ НАЧАЛО", и не "ОТ ПУНКТ 2"
Здравствуйте, dmz, Вы писали:
dmz>По результатам обсуждения с людьми, близкими по менталитету к заказчикам продукта, пришлось отказаться от предоставления пользователю возможности редактировать DSL напрямую, так что DSL сериализуется в XML/DOM, из него на клиенте генерируется динамическая форма, которая при самбите обходится и по которой генерируется все тот же DSL, но уже измененный. Но сам DSL фактически пропал раз пользователю недоступен — можно было и тупо XML туда-сюда гонять. Лично я по поводу этого решения испытываю сожаление — по моему, довольно стройная получалась в начале концепция.
Каждому — своё.
Тебе — возможность копаться в "потрохах". Пользователям — простая и понятная форма.
Здравствуйте, dmz, Вы писали:
dmz>По результатам обсуждения с людьми, близкими по менталитету к заказчикам продукта, пришлось отказаться от предоставления пользователю возможности редактировать DSL напрямую, так что DSL сериализуется в XML/DOM, из него на клиенте генерируется динамическая форма, которая при самбите обходится и по которой генерируется все тот же DSL, но уже измененный. Но сам DSL фактически пропал раз пользователю недоступен — можно было и тупо XML туда-сюда гонять. Лично я по поводу этого решения испытываю сожаление — по моему, довольно стройная получалась в начале концепция.
XML в твоем случае — это тоже DSL. А твоя форма — это RAD-средство его редактирования. Так что на твоем месте я бы пересмотрел взгляды на ДСЛ.
dmz>Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ? dmz>Просто хочется иметь какое-то количество решений для домашнего и не очень применения — планирование проектов, построение roadmap-ов, управление сметами/бюджетами и т.п. Без GUI — задачи редуцируются до достаточно примитивных утилит — которые на входе получают текст на DSL с описанием, на выходе — отчет в каком-то виде. Интересно, может ли у таких продуктов быть вообще В ПРИНЦИПЕ немаргинальная аудитория? Видите ли вы перспективы в использовании подобного подхода? Ну и вообще...
Любой язык программирования, а DSL это его разновидость. Должен использоваться людьми умеющими думать алгоритмически. Иначе труба. Но будучи запихнутыми в приличные RAD-средства они пожалуй и правда могут использоваться менее подготовленными людьми.
Реально во многих областях (не компьютерных) есть свои разговорные DSL-и. Скажем вы когда-нибудь слушали медиков? Это же птичий язык — "В анамнезе ..." и дальше русская речь на половину перемешивается латынью и своими терминами. Это позволяет им сократить повествование и сделать его максимально непротиворечивым.
Те же задачи стоят и перед программистом. Максимально сократить реализацию задачи. Лучший вариант — это решить задачу написав только ее спецификацию. При этом спецификация обязана быть максимально непротиворечивой.
Если вы сможете сделать это, то задача будет решена наиболее оптимальным образом. А давать ДСЛ конечному пользователю совсем не обязательно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dmz, Вы писали:
dmz>По сравневнию с чем? От очень неочевидной интерактивной логики удалось избавиться, как раз, введя DSL.
DSL vs GUI. Если задача практически мнгновенно реализуется в GUI, не надо городить DSL. И обратно.
k>Добавить условное выражение dmz>От очень неочевидной интерактивной логики
И описания DSL не разрослись до гигантских размеров? Уже для пяти-шести комбинаций различных управляющих параметров, обозревать чисто декларативное описание ситуации становиться очень сложно.
А кажется так удобно дописать УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ ЕСЛИ НЕТ СМЕНА ПЕРСОНАЛА
dmz>>> ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ ПУНКТ#2/УБЫТИЕ K>>А что бывает ОТ ПУНКТ#2/ПРИБЫТИЕ ? Почему не "ОТ НАЧАЛО", и не "ОТ ПУНКТ 2"
dmz>Ась?
Почему DSL то такой сложный, если можно проще? Может в этом причина того что он не прижился?
-- Главное про деструктор копирования не забыть --
dmz>>По сравневнию с чем? От очень неочевидной интерактивной логики удалось избавиться, как раз, введя DSL.
K>DSL vs GUI. Если задача практически мнгновенно реализуется в GUI, не надо городить DSL. И обратно.
Эта задача удобно GUI не решалась. Введя DSL удалось найти правильную метафору, вокруг которой удалось уже построить GUI (который отличался от изначального).
K>И описания DSL не разрослись до гигантских размеров? Уже для пяти-шести комбинаций различных управляющих параметров, обозревать чисто декларативное описание ситуации становиться очень сложно.
Предполагается, что задача, которую решает DSL — ограничена, иначе нужен уже не DSL, а универсальный язык.
K>А кажется так удобно дописать УБЫТИЕ 5 МИНУТ ОТ ПРИБЫТИЕ ЕСЛИ НЕТ СМЕНА ПЕРСОНАЛА
dmz>>>> ПРИБЫТИЕ 3 ЧАСА 20 МИНУТ ОТ ПУНКТ#2/УБЫТИЕ K>>>А что бывает ОТ ПУНКТ#2/ПРИБЫТИЕ ? Почему не "ОТ НАЧАЛО", и не "ОТ ПУНКТ 2"
ОТ НАЧАЛО(А) — можно, "ОТ ПУНКТ 2" — тоже можно было бы (допустим, будем понимать под этим "от убытия из пункта 2" — как действие по умолчанию).
dmz>>Ась?
K>Почему DSL то такой сложный, если можно проще? Может в этом причина того что он не прижился?
А, понял. Особенно проще, в общем-то, некуда — предполагалось, что синтаксис должен быть само-объясняемый — т.е. никаких сокращений или операторов. Он не то, что бы не прижился — мы даже не пробовали в итоге. Слишком непривычно показалось.
Здравствуйте, dmz, Вы писали:
dmz>Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ? dmz>Просто хочется иметь какое-то количество решений для домашнего и не очень применения — планирование проектов, построение roadmap-ов, управление сметами/бюджетами и т.п. Без GUI — задачи редуцируются до достаточно примитивных утилит — которые на входе получают текст на DSL с описанием, на выходе — отчет в каком-то виде.
Я боюсь для конечных пользователей и без GUI — не выйдет.
Вот забавный промер DSL'а c гуем: http://scratch.mit.edu/
Здравствуйте, dmz, Вы писали:
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Пример из жизни: DSL для построения логики работы систем безопасности (видеонаблюдения и контроля доступа). Вот, например, включение прожектора по ночам и выключение его днём:
if
event("Запуск системы")
then
h = tonumber(os.date("%H", os.time()))
if (h >= 8) and (h < 20)
then
action("Разомкнуть реле", "Видеосервер", "ПКП 1", "Реле 1")
else
action("Замкнуть реле", "Видеосервер", "ПКП 1", "Реле 1")
end
end
if
event("время 08:00:00", "")
then
action("Разомкнуть реле", "Видеосервер", "ПКП 1", "Реле 1")
end
if
event("время 20:00:00", "")
then
action("Замкнуть реле", "Видеосервер", "ПКП 1", "Реле 1")
end
А вот наведение поворотной камеры, на найденное лицо:
if
event("Запуск системы")
then
face_timeout = true
end
x = ""
y = ""
if
event("обнаружено лицо", "Видеоканал 1", "^x^", "^y^")
and
face_timeout
then
--Наведение устройства телеметрии на обнаруженное лицо
action("навести ptz", "IP канал 2", x, y)
--В течение некоторого времени (3 секунды) камера не наводится на другие обнаруженные лица
action("Создание точки выполнения", "face_timeout")
face_timeout = false
end
if
event("Интервал от точки выполнения", "face_timeout", 3)
then
face_timeout = true
end
Язык доступен конечным пользователем. Но есть и GUI вариант создания совсем простеньких задач.
Здравствуйте, dmz, Вы писали:
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Сразу вспоминаются примеры уже не собственной разработки: 3D Max (и другие редакторы), сценарии в некоторых играх, ...
Ммм, bash и PowerShell тоже подходят?
Здравствуйте, Nuzhny, Вы писали:
N>Сразу вспоминаются примеры уже не собственной разработки: 3D Max (и другие редакторы), сценарии в некоторых играх, ... N>Ммм, bash и PowerShell тоже подходят?
И их всех объединяет наличие в языке оператора if и имеративный подход. А в примерах топик стартера, dsl чисто декларативные.
Возникает желание переделать вопрос в "А живут ли чисто декларативные DSL?" Ну или в "Какой минимальной выразимостью должен обладать DSL чтобы быть полезным?"
-- Главное про деструктор копирования не забыть --
Здравствуйте, Nuzhny, Вы писали:
N>Пример из жизни: DSL для построения логики работы систем безопасности (видеонаблюдения и контроля доступа). Вот, например, включение прожектора по ночам и выключение его днём:...
Назвать такое DSL-ем я бы не решился. Это скрипт общего назначения со специализированной библиотекой.
И использовать его смогут только люди с алгоритмической подготовкой. А какой-нить охранник скорее все испортит.
С другой стороны для программистов такое решение может серьезно упростить конфигурирование системы и создания пресетов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dmz, Вы писали:
dmz>Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ?
"1С Бухгалтерия" вроде целиком написана на DSL. 12 лет назад я видел продвинутых бухгалтеров, которые умели пользоваться этим языком. Правда, потом эволюция породила новый вид -- "программист 1С", гибрид программиста и бухгалтера.
dmz>Просто хочется иметь какое-то количество решений для домашнего и не очень применения — планирование проектов, построение roadmap-ов, управление сметами/бюджетами и т.п. Без GUI — задачи редуцируются до достаточно примитивных утилит — которые на входе получают текст на DSL с описанием, на выходе — отчет в каком-то виде. Интересно, может ли у таких продуктов быть вообще В ПРИНЦИПЕ немаргинальная аудитория? Видите ли вы перспективы в использовании подобного подхода? Ну и вообще...
Немаргинальной аудитории, скорее всего, не будет никогда. Поскольку DSL просто неудобен (с точки зрения непрограммиста). Что проще: нажать мышью кнопку "Делай хорошо", или написать в редакторе "делый_харашо()", запустить на выполнение, а потом искать опечатки в имени функции?
Применительно к упмянутым задачам планирования -- при изобретении хорошего DSL и среды можно ожидать того же сценария, что и в 1С: маргинальные индивидуальные пользователи и программисты на DSL для корпоративных пользователей.
Здравствуйте, VladD2, Вы писали:
VD>Назвать такое DSL-ем я бы не решился. Это скрипт общего назначения со специализированной библиотекой.
Наверное. ИМХО, грань между ними довольно расплывчатая.
VD>И использовать его смогут только люди с алгоритмической подготовкой. А какой-нить охранник скорее все испортит.
Охраннику обычно с помощью средств авторизации запрещается доступ к написанию скриптов. Его роль — просмотр видео и архива. Пишет скрипты администратор или представители компании-инсталятора. В простейших случаях алгоритмическая подготовка не требуется — имеется обширный набор типовых скриптов, изменять которые может практически каждый (даже охранник). Если же делать что-то сложное, то — да, надо быть программистом.
VD>С другой стороны для программистов такое решение может серьезно упростить конфигурирование системы и создания пресетов.
Вещь оказалась просто сверх удобная. В принципе, всё делалось по примеру 1С, успех которой очевиден. Для продвинутых пользователей есть ещё средства создания примитивных пользовательских интерфейсов.
Здравствуйте, Nuzhny, Вы писали:
VD>>С другой стороны для программистов такое решение может серьезно упростить конфигурирование системы и создания пресетов.
N>Вещь оказалась просто сверх удобная. В принципе, всё делалось по примеру 1С, успех которой очевиден. Для продвинутых пользователей есть ещё средства создания примитивных пользовательских интерфейсов.
Тут никто не спорит, но показанное — это скрипт с библиотекой. Это не дсл. Это мимикрия под дсл. Разница в том, что ваш язык выходит за пределы доменной области. Там есть какие-то функции, параметры и т.п. Чтобы это все понять нужно быть хоть плохоньким, но программистом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, TheBeard, Вы писали:
TB>Здравствуйте, dmz, Вы писали:
dmz>>Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ?
TB>"1С Бухгалтерия" вроде целиком написана на DSL.
Она написана на С++. Но в ней используется скриптовый язык. В прочем он тоже является языком общего назначения
TB>12 лет назад я видел продвинутых бухгалтеров, которые умели пользоваться этим языком. Правда, потом эволюция породила новый вид -- "программист 1С", гибрид программиста и бухгалтера.
Сто раз видил адинэсников. Ни один из них не был бухгалтером, но все были программистами. Многие весьма посредственными.
TB>Немаргинальной аудитории, скорее всего, не будет никогда. Поскольку DSL просто неудобен (с точки зрения непрограммиста). Что проще: нажать мышью кнопку "Делай хорошо", или написать в редакторе "делый_харашо()", запустить на выполнение, а потом искать опечатки в имени функции?
С этим набором заблуждений даже спорить невозможно. Суть ДСЛ-я не в том, что он текстовый. Суть ДСЛ-я в том, что он описывает проблему в терминах предметной области и тем самым не допускает ничего лишнего и контролирует целостность. Скажем дизайнер диаграм классов — это тоже ДСЛ. И средство его создания называется "DSL Tools".
TB>Применительно к упмянутым задачам планирования -- при изобретении хорошего DSL и среды можно ожидать того же сценария, что и в 1С: маргинальные индивидуальные пользователи и программисты на DSL для корпоративных пользователей.
Попробуй покурить определение DSL-я. А то ты явно путаешся в терминологии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, TheBeard, Вы писали:
TB>Немаргинальной аудитории, скорее всего, не будет никогда.
У нас в банке, почти все начальники (ну или зам. начальники) отделов в головном офисе, умеют пользоваться msquery для составление sql запросов. Кто-то при необходимости что-то даже пишет на VBA.
Помоему вполне вменяемая аудитория для DSL.
-- Главное про деструктор копирования не забыть --
Здравствуйте, dmz, Вы писали:
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Если честно, то большой и красивый DSL, предназначенный именно для конечных пользователей-чайников не делал и не встречал. Но дать пользователю возможность ввода более-менее произвольных выражений в заранее определённом и описанном синтаксисе — это святое.
Если же пользователями считать не только end-userов, но и всяких консультантов-аналитиков, то тут открывается больше возможностей. Их, в конце концов, можно заставить прочитать и понять длинный мануал с описанием синтаксиса и API. И когда такой аналитик-консультант начинает понимать, что написание маленьких псевдопрограммок — это не больно, а значительно проще, чем протыкивание многочисленных кнопочек в многочисленных настроечных формочках, то тут и приходит счастье. Иногда даже шоколадки носят от избытка чувств
Здравствуйте, dmz, Вы писали:
dmz>Не уверен, что это подходит в декларативное программирование... Больше нестройных размышлений, чем по сути.
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
Есть такой мегауспешный DSL, до популярности которого среди конечных пользователей какому-нибудь новомодному SQL как до шри-ланки пешком.
Называется этот язык "Excel formula". Крайне убогие императивные возможности, достаточно невыразительный синтаксис, местами загадочный до ужасности.
Но тем не менее, на нём миллионы линейных менеджеров финансового сектора отжигают прямо как йоги на углях.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
S>Но тем не менее, на нём миллионы линейных менеджеров финансового сектора отжигают прямо как йоги на углях.
Это говорит нам о том, что если "простого абстрактного сферического пользователя в вакууме" правильно сориентировать,
и поставить в такую ситуацию, что деваться ему будет некуда — то никуда и не денется, будет использовать DSL.
Ведь, если подумать, выражения в экселе можно было бы конструировать как нибудь визуально — из квадратиков и стрелочек —
есть же подобные системы для программированися и программистов.
Здравствуйте, dmz, Вы писали:
dmz>Ведь, если подумать, выражения в экселе можно было бы конструировать как нибудь визуально — из квадратиков и стрелочек — dmz>есть же подобные системы для программированися и программистов.
Здравствуйте, Sinclair, Вы писали:
S>Называется этот язык "Excel formula". Крайне убогие императивные возможности, достаточно невыразительный синтаксис, местами загадочный до ужасности.
А ДСЛ ли это? Это вполне себе универсальный язык выражений. Эдакий функциональный язычек (если учитывать сам Ёксель как средство определения переменных). Если в нем можно остановить рекурсию (в чем я сомневаюсь), то на нем вообще можно производить любые вычисления.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>А ДСЛ ли это? Это вполне себе универсальный язык выражений. Эдакий функциональный язычек (если учитывать сам Ёксель как средство определения переменных). Если в нем можно остановить рекурсию (в чем я сомневаюсь), то на нем вообще можно производить любые вычисления.
Это язык выражений, формул. Я думаю, что никто не взялся бы написать на нем целое приложение, даже если это теоритически возможно.
Здравствуйте, VladD2, Вы писали: VD>А ДСЛ ли это? Это вполне себе универсальный язык выражений. Эдакий функциональный язычек (если учитывать сам Ёксель как средство определения переменных). Если в нем можно остановить рекурсию (в чем я сомневаюсь), то на нем вообще можно производить любые вычисления.
В нём рекурсия запрещена. В этом и есть его основное ограничение.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, dmz, Вы писали:
dmz>Не уверен, что это подходит в декларативное программирование... Больше нестройных размышлений, чем по сути.
dmz>Вот интересно, есть ли шанс у DSL использоваться для задач конечных пользователей? Есть ли какие-то успешные примеры такого рода? Мне известно несколько таких DSL, но насколько я могу судить, они не очень-то выживают.
dmz>Это я к чему. Есть ли у вас живые успешные примеры DSL, который рассчитан на редактирование конечными пользователями систем (не разработчиками) ? dmz>Просто хочется иметь какое-то количество решений для домашнего и не очень применения — планирование проектов, построение roadmap-ов, управление сметами/бюджетами и т.п. Без GUI — задачи редуцируются до достаточно примитивных утилит — которые на входе получают текст на DSL с описанием, на выходе — отчет в каком-то виде. Интересно, может ли у таких продуктов быть вообще В ПРИНЦИПЕ немаргинальная аудитория? Видите ли вы перспективы в использовании подобного подхода? Ну и вообще...
В слове DSL под буквой L подразумевается не просто язык, а язык программирования.
А стало быть, пользователем языка должен быть программист (т.е. человек с программистским мышлением).
Домохозяйка в принципе не сможет освоить даже простейший язык программирования, пока не уяснит себе основ программирования и алгоритмизации.
Поэтому либо твои конечные пользователи — это программисты, либо, если это люди, далекие от компьютеров — нужна прослойка в виде администраторов, конфигураторов и прочего обслуживающего персонала, который и будет иметь дело с твоим DSL-ем. Вот им ты сильно сможешь облегчить жизнь, придумав хороший специализированный язык (пример — регэкспы, SQL).
А ориентироваться на домохозяек смысла нет.
В любой реальной задаче скрипт на твоем мега-удобном и простом спец. языке рано или поздно превратится в нечитабельного монстра. За примерами далеко ходить не надо — те же упомянутые регэкспы и SQL в профессиональном использовании.