Здравствуйте, 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 в профессиональном использовании.