Re[22]: Языки общего назначения не имеют смысла!
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.04.12 18:33
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

K>>2.1. Я не являюсь специалистом в создании DSL.


AVK>А таких людей вообще — просто считанное количество. That's the problem.


Это вопрос образования и материалов по теме.

K>>2.2. У меня нет удобных средств написания DSL.


AVK>Причем тут средства? Я не прошу тебя написать парсер и анализатор DSL, я прошу показать, как DSL будет выглядеть.


Дык если у человека будет средство, то он сможет найти красивое решение методом проб и ошибок (как это делается без ДСЛ-ей).

K>> Поэтому я с такой надеждой смотрю на N2, и желаю проекту успеха.


AVK>Удивительное дело — только что ты написал, что проблема то далеко не только в средствах. И N2 тебе тут ничем не поможет. Понимаешь, на практике я вижу, что даже сам факт осознания того, что для парсинга нужно грамматику описать для подавляющего большинства программистов отсутствует. Они неспособны даже формально описать существующий язык. Что уж говорить о сочинении собственной грамматики с нуля.


Удивительное дело. Тут на форуме собираются вполне грамотные программисты, которые сами-то знают как правильно решать задачи, но о всех окружающих отзываются как об обезьянах. Получается по одиночки все гении, но стоит им собраться в одну компанию, как они превращаются в стадо обезьян .

AVK>И N2 необходимость создания этой самой грамматики отнюдь не отменяет, он упрощает только последующие шаги.


Ну, да. Чуда не случится и обезьяна с гранатой не станет в одночасье десантником. Но на свете много не глупых людей которые не применяют ДСЛ-и широко только потому, что нет достаточно удобного средства и нет описания как это можно сделать.

K>>Пока что я пишу примерно такой же код.


AVK>Ну так покажи — какой код ты хотел бы писать.


Это нельзя сделать по твоему фрагменту. Из него не ясна модель. А без этого разговаривать не о чем.

K>>Просто, мне кажется очевидным: вся сложность в переложении специфики бизнеса на программые конструкции заключается именно в том, что конструкции кода так и остаются кодом.


AVK>Идея DSL это не отменяет.


Идея ДСЛ-я отменяет необходимость оперировать понятиями выходящими за пределы предметной области. А это может значительно упростить код. Кроме того идея ДСЛ-я еще дает в руки возможность генерировать код, а это позволяет использовать техники программирования неприемлемые при ручном кодировании.

AVK>Бизнесмен все равно не сможет сказать на языке DSL. Потому что DSL абсолютно формален, и именно формализация задачи составляет основную сложность общения с ним. DSL решает в другом месте проблему — перевод формальной спецификации в понятные компу инструкции. Бизнесмен там уже не участвует.


Тоже не совсем так. ДСЛ могут быть простыми. Такие ДСЛ-и можно давать и конечным пользователям. Не всем, но все же.

Простой пример. Многие пользователи спокойно правят конфигурационные файлы приложений. А ведь это и есть ДСЛ-и!

AVK>P.S. Пример я привел, чтобы продемонстрировать две важные вещи:

AVK>1) Для сочинения DSL требуется специфичная и очень высокая квалификация. Подчеркиваю, для сочинения, а не для реализации.

Это миф. Квалификация нужна для придумывания модели которая может описать задачу. А натянуть на нее ДСЛ уже довольно просто.

Модель же ты все равно будешь обязан создать, если задача мало-мальски большая. Так что тебе все равно делать эту работу.

AVK>2) Современные ЯОН совсем не так уж и ужасны при умелом использовании.


Совсем ужасны. Единственное, что — можно делать внутренние ДСЛ-и (средствами языка) которые немного уменьшают этот ужас. Но внешние всегда будут лучше.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.