Re[16]: Языки общего назначения не имеют смысла!
От: vdimas Россия  
Дата: 13.04.12 11:51
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Он прямым текстом заявляет, что программистам ДСЛ не нужны. Они типа и так умные.


В некоторой мере DSL можно сделать на библиотеках и переопределении операций. Даже по твоей исходной ссылке непонятно, зачем там была DSL? Замени :- на какой-нить << и будет тебе щастье прямо из твоего языка программирования, будь то C# или C++. Там же просто декларация правил для решателя, и этой декларации не нужно мильон новых операторов для выражения всех поддерживаемых отношений.

Или взять популярный случай размерности величин. Не думаю, что для вменяемого программиста запись 42kg будет сильно отличаться от записи 42*unit.kg или unit.kg(42), тем более, что константы в коде встречаются относительно редко.

Есть, конечно, момент кодогенерации, как в BLT (что есть тоже DSL на атрибутах), но этот момент прекрасно обыгрывается через post-build step.


WH>А пишет он бред.

WH>

WH>Про DSL, в основе которых матан, мы просто не знаем, по вполне понятной причине — они нехрен никому не нужны.

WH>В основе SQL матан. Реляционная алгебра называется.

С какой радости малюсенький сугубо прикладной раздел теории мн-в стал разделом части фундаментальной математики?
Приплыли..


WH>А то, что матан вдруг оказался простым в использовании это не удивительно.


Принципы разложения по базисам или трюки с возможностью поиска решений в операторной области многие не понимают даже после 5-ти лет учебы. И простым это станет только если программист нарисует пользователю большую кнопку "сделать мне п-дато". Но DSL или реляционная алгебра здесь не при чем. На ее изучение отводится максимум 3-5 лекций и столько же практических занятий. ИМХО, копейки.


WH>Его для того и придумывают. Чтобы сложные вещи можно было записывать относительно простым способом.


Ну... сложные вещи даже на SQL просто не запишешь. Особенно когда речь пойдет о необходимости cross или outer join и понимании работы nullable-типов в этих случаях, если необходимо по таким выборкам производить ограничения. ИМХО, только простые вычисления будут выглядеть просто. Но это потому что происходящее на низлежащем уровне тоже довольно просто. И в теории аналогично не сложно. Т.е. я не вижу, где сложность теоретическая вдруг будет замаскирована простотой SQL. Единственный трюк, маскирующий сложность, это автоматическое преобразование условий существования (все операторы которого сводимы к одному из них) в продукцию, но ведь это детали реализации... человеку как раз удобней оперировать понятиями существования элемента в заданном им множестве и "тупая" наивная реализация может точно так же итерироваться по подмногжеству, как задано человеком, т.е. низлежащее преобразование условий существования в продукцию (т.е. переход от реляционного исчисления в реляционную алгебру) идет лишь эффективности ради.


WH>>> YACC, ANTLR и тп тоже один сплошной матан.


Опять промазал. Это прикладная наука формальных языков и их грамматик. Это не матан. Хотя задевает крылом области раздела традиционной математики при введении понятия мощности языков с помощью теоремы Кантора о мощности мн-в, но это так же не входит в матан.


WH>Все что можно сделать, это указать на бред.


Это от невладения информацией у читателя.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.