LINUX.ORG.RU

Относятся ли графические MS DSL — к DSL?


0

0

Почитал Domain Specific Development with Visual Studio и впал в сильные сомнения -- а корректно ли это (MS DSL Tools) называть DSL?

Система создания языков без "родной" текстовой нотации, предназначенных только для мышевозительного редактора MS VS -- это они про DSL? Создание программы на этом языке иным способом, если я правильно понимаю, без гемороя проиходит только через сериализацию объектов CLR или созданию монстроидального XML-кода, описывающего графическую информацию, что как-то некошерно.

В итоге получается нечто противоположное тому, что принято называть DSL в книжках типа Art of the Unix Programing (там это называлось minilanguages). Почему бы MS было не назвать это "кодогенерацией по UML" или даже "визуальным проблемно-ориентированным программированием"? Они не может оставить в покое "чужой" термин, не предложив собственную его интерпретацию? Или я предвзят и для такого слабо формализованого понятия, как DSL, это нормальная трактовка?

★★★★★

>Почему бы MS было не назвать это "кодогенерацией по UML"

Потому что к UML это не имеет никакого отношения. Как раз наоборот фишка в том, что от Unified переходим к Domain Specific

>"визуальным проблемно-ориентированным программированием"

Потому что фишка совсем не в визуальности или вы нифига не поняли. Это называется MDD (Model Driven Development)

>DSL

Конечно. Почему вас UML не смущает - там, между прочим, последняя L как раз language.

Иногда, говорят DSML Domain Specific Modelling Language, однако языком оно быть не перестаёт.

theos ★★★
()

Обычная история - берется раскрученный термин, и им называется нечто, отдаленно подходящее под смысл термина.

> Почему бы MS было не назвать это "кодогенерацией по UML" или даже "визуальным проблемно-ориентированным программированием"?

Потому что использовать раскрученный термин гораздо выгоднее.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Потому что использовать раскрученный термин гораздо выгоднее.

4.2 Ничего с вышеописанным это общего не имеет. ТО как задаётся модель - визуально или нет дела не играет. А то что модель и текстово задовать может у них - смотри проект Oslo.

theos ★★★
()
Ответ на: комментарий от theos

>> Потому что использовать раскрученный термин гораздо выгоднее.

> 4.2 Ничего с вышеописанным это общего не имеет

С чем "вышеописанным", родной? Они не использовали раскрученный термин, не?

> А то что модель и текстово задовать может у них - смотри проект Oslo.

Дооо. "”Oslo” is the codename for Microsoft's forthcoming modeling platform" - оно? Ты не в отделе продаж Microsoft работаешь?

tailgunner ★★★★★
()
Ответ на: комментарий от theos

> Потому что к UML это не имеет никакого отношения.

Как не имеет? :)

> Почему вас UML не смущает - там, между прочим, последняя L как раз language.

Смущает. Я вообще дурею с языка, у которого формальное текстовое представление есть, но лучше бы его не было :)

sv75 ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

> Обычная история - берется раскрученный термин, и им называется нечто, отдаленно подходящее под смысл термина.

Останусь на данной точки зрения, пока не будет доказано обратное. Только надо подумать, как бы это выразить помягче :)

sv75 ★★★★★
() автор топика
Ответ на: комментарий от theos

> Почему вас UML не смущает - там, между прочим, последняя L как раз language.

Кстати, UML можно (нужно?) рисовать фломастером на доске. В отличие от.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

>Они не использовали раскрученный термин, не?

А если я буду продавать хлеб, ты тоже скажешь что я продаю раскрученный термин?

>"”Oslo” is the codename for Microsoft's forthcoming modeling platform" - оно? Ты не в отделе продаж Microsoft работаешь?

Конечно. За каждый пост на лоре с упоминанием проуктов Гугл, Майкрософт и Джетбреинс мне платят.

Оно. А что, если я упоминаю продукты которые написало не сообщество а какая-либо контора - то это уже реклама?

theos ★★★
()
Ответ на: комментарий от sv75

> Потому что к UML это не имеет никакого отношения. >Как не имеет? :)

В каком месте? Так же имеет как язык MPS к С++

theos ★★★
()
Ответ на: комментарий от sv75

>Смущает. Я вообще дурею с языка, у которого формальное текстовое представление есть, но лучше бы его не было :)

А где в слове язык сказано, что он должен иметь буквунное отображение?

theos ★★★
()
Ответ на: комментарий от sv75

>Кстати, UML можно (нужно?) рисовать фломастером на доске. В отличие от.

Да при чём тут. Почитайте что такое MDD и уясните что задачи совсем разные.

theos ★★★
()
Ответ на: комментарий от theos

> А если я буду продавать хлеб, ты тоже скажешь что я продаю раскрученный термин?

Аналогии такие аналогии

> А что, если я упоминаю продукты которые написало не сообщество а какая-либо контора - то это уже реклама?

Если ты используешь настоящее время ("модель и текстово задовать может") по отношению к "forthcoming" продукту - это реклама.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Аналогии такие аналогии

А ваши утверждения такие утверждения.

>"forthcoming" продукту - это реклама.

Его можно скачать и пользоваться.

theos ★★★
()

>графическую информацию, что как-то некошерно.

Не графическую. И в этом ваше фундаментальное не понимание.

theos ★★★
()
Ответ на: комментарий от theos

> В каком месте?

Графической нотацией.

> Так же имеет как язык MPS к С++

Аналогии в технических науках -- вещь рискованная.

> А где в слове язык сказано, что он должен иметь буквунное отображение?

Нигде, но что делать если хочется генерить код на этом языке программно? У UML это отображение есть и описано в стандарте, поэтому вопрос бессмысленен.

> Да при чём тут. Почитайте что такое MDD и уясните что задачи совсем разные.

Скажите лучше сразу, сколько трёхбуквеных базвордов мне надо понять, чтобы убедить себя в том, что MS DSL -- это DSL? :)

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>Нигде, но что делать если хочется генерить код

Да блин. А упочему срауз код то?

>У UML это отображение есть и описано в стандарте, поэтому вопрос бессмысленен.

По классам генерить классы на языке ххх? Да это скушно. Зачем мне описывать теже классы на УМЛ, когда на языке ххх их описывать куда удобнее. Фишка в том, что бы подняться в абстракции на уровень предметной области, чего UML и вообще что то "Универсальное" дать не может. Именно в этом фишка DSML.

theos ★★★
()
Ответ на: комментарий от tailgunner

Зато вот это - ваше:

Обычная история - берется раскрученный термин, и им называется нечто, отдаленно подходящее под смысл термина.

theos ★★★
()
Ответ на: комментарий от theos

> Не графическую.

Хмм.. "Graphical DSL" -- неверное название?

> И в этом ваше фундаментальное не понимание.

Но язык её текстового представления разве не называется "C#" (а -- это другой язык)?

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>Скажите лучше сразу, сколько трёхбуквеных базвордов мне надо понять, чтобы убедить себя в том, что MS DSL -- это DSL? :)

Без терминов везде никак. Они есть даже в литературе ;) MS DSLTools - это вообще не DSL а тулза для их создания. Очень хреновая и бедная с моей точки зрения, но тем неменн ей является.

theos ★★★
()
Ответ на: комментарий от theos

> Да блин. А упочему срауз код то?

Я хочу генерить код НА DSL, а не ИЗ DSL. Потому что люблю "программы, которые пишут программы".

>> У UML это отображение есть и описано в стандарте, поэтому вопрос бессмысленен.

> По классам генерить классы на языке ххх?

Нет, вовсе нет. Этим текстовым представлением является XML! Откройте стандарт, там всего-то 1200 страниц, кажется :(

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>Хмм.. "Graphical DSL" -- неверное название?

Мне не очень нравится, но пусть. Дело не в этом - дело в том что информация (не путать с представлением) там ни разу не графическая. Мало того, там можно использовать "деревянное" представление и тогда дёргать туда-сюда ничего не надо, просто задавать структуру, которая и является информацией.

>Но язык её текстового представления разве не называется "C#"

Ололо. Ни разу. Вы никак не хотите понять что моделирование вообще с программированием может быть не связано. А если и связано, то куда сложнее чем "смоделировать классы один-в-один на только-этом-языке".

theos ★★★
()
Ответ на: комментарий от theos

> Ну и как бы оно и 4.2

А ты не мог бы сделать подробный разбор фразы "Обычная история - берется раскрученный термин, и им называется нечто, отдаленно подходящее под смысл термина"? А то в ней несколько утверждений, к какому из них относится твое 4.2 - хз.

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

>Я хочу генерить код НА DSL

o_O На DSL нужно писать! он для этого и создавался - нахрена в него генерить?

>Нет, вовсе нет. Этим текстовым представлением является XML!

Если вы про XMI то он тут вобщем не причём - то, как внутри хранить модель вобщем-то пофиг.

theos ★★★
()
Ответ на: комментарий от theos

> MS DSLTools - это вообще не DSL а тулза для их создания.

Тут я согласен, вопрос блы о продуктах её выхода, скорее.

> Очень хреновая и бедная с моей точки зрения, но тем неменн ей является.

Пожалуй и с этим я согласен, так что вопрос скорее исчерпан. Так и напишу "Ограниченные возможности MS DSL tools и необходимость чтения книжки на 500 страниц для работы с оными заставили меня взяться за перо...", спасибо.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

>А то в ней несколько утверждений, к какому из них относится твое 4.2

4.2 не столько в ней, сколько в приведённой мной выше. Сама по себе фраза верна, это действительно вполне обычная история. Только тогда извольте доказать, что MS DSLTools именно такая история.

theos ★★★
()
Ответ на: комментарий от theos

> o_O На DSL нужно писать! он для этого и создавался - нахрена в него генерить?

Как я вижу, Graphviz и Makefile часто относят к DSL.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>вопрос блы о продуктах её выхода, скорее.

Они являются L, а вот насколько DS зависит от разработчика

>и необходимость чтения книжки на 500 страниц

С серьёзными средствами всегда так. Вы думаете что Rational Rose изучить проще?

theos ★★★
()
Ответ на: комментарий от theos

> Вы думаете что Rational Rose изучить проще?

Последний раз тыкал в них весьма давно в учебных целях, но вообще без книжки (и без интернета). Поэому, возможно, и казалось, что там всё просто.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

>Походу, ты забыл, к чему прицепился...

Потому что использовать раскрученный термин гораздо выгоднее.

И к этому тоже - потому что это объективно называть DSL Tools.

theos ★★★
()
Ответ на: комментарий от sv75

А я и не считаю их DSLями. DSL - этоязык описания _предметной_ области - у кого может быть предметной областью Graphviz? разве что для его разработчиков, ну они непосредственно с этим языком и работаю. Предметной областью может быть то, что пытаются изобразить на графе, но не сам graphviz.

theos ★★★
()
Ответ на: комментарий от sv75

>Последний раз тыкал в них весьма давно в учебных целях

Ну, в учебных целях я и в DSLTools тыкался без документации) А в Rose есть много всяких деталий. Как и в любом большом продукте. Например создание "паттернов".

theos ★★★
()
Ответ на: комментарий от theos

> DSL - это язык описания предметной области

Это определение весьма интересное, но не ясно, откуда взятое, поскольку оно, на мой взгляд, противоречит общепринятому определению. :)

Да, по данному определению MS DSL tools самые dsl'истые, безусловно.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от theos

> А я и не считаю их DSLями.

Боюсь, тут ты одинок.

> DSL - это язык описания предметной области

После изучения вопроса я пришёл к выводу, что это концепция поддерживается только (?) авторами DSL tools, и то примерно наполовину, поскольку и они (по недосмотру?) отмечают, что "DSLs are not a new idea — HTML and SQL are well-known examples of DSLs." Было бы резонно не давать такие примеры с их стороны.

Видимо, термин DSL, как и любой базвод, уже не имеет общепринятого определения.

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>Это определение весьма интересное, но не ясно, откуда взятое, поскольку оно, на мой взгляд, противоречит общепринятому определению. :)

Ну, не сказал бы DSL = Domain Specific. Что на наш язык переводится как Предметно (проблемно) ориентрированный. И википедия тут меня поддерживает :) Вариант "проблемный" мне не нравится, потому что язык призван решать задачи, а не проблемы =)

Лично мне моё определение кажется самым очевидным, (и я знаю ещё людей которые придерживаются такого определения).

theos ★★★
()
Ответ на: комментарий от theos

> Ну, не сказал бы DSL = Domain Specific.

Мне кажется, что термин Domain шире, чем "предметная область" (с точки зрения автоматизации какой-либо предметной области). Приверженцы твоего определения используют немного другие термины: "particular area of interest" (всё так же книжка).

> Что на наш язык переводится как Предметно (проблемно) ориентрированный. И википедия тут меня поддерживает :)

Ага, с примерами типа graphviz, sql и postscript. Нет, совершенно не поддерживает.

> Лично мне моё определение кажется самым очевидным, (и я знаю ещё людей которые придерживаются такого определения).

Это довольно слабый аргумент. Зайдём с другой стороны -- а где взять примеры под это определение? Мне что-то только VHDL/Verilog в голову приходят, видимо поскольку их предметная область (EE) близка к CS.

sv75 ★★★★★
() автор топика

Вот нашёл статейку ещё с позицией MS, но не первоисточник.

http://blogs.gotdotnet.ru/personal/allo/PermaLink.aspx?guid=8b96b298-edfb-4f4...

Опус содержит изрядное количество FUD, кривых аналогий и просто вранья, нападок на всё, что не MS (от UML и Java до Linux ), поскольку написана евангелистом MS. Кроме того, хотелось бы найти англоязычные первоисточники. Тем не менее, в целом он подтверждает тезис хвостового стрелка:

> Microsoft DSL (Domain Specific Languages) – это технология и методология, которую предлагает Microsoft в области моделирования. Суть DSL состоит в том, что ... стоит создавать для каждой задачи язык моделирования и описания, специально предназначенный для этой предметной области.

Из этого, на мой взгляд, ясно "MS DSL" и "DSL в понимании остального человечества" связаны отношением включения (MS DSL -- строгое подмножество DSL).

sv75 ★★★★★
() автор топика
Ответ на: комментарий от sv75

>Вот нашёл статейку ещё с позицией MS, но не первоисточник.

Да где тут позиция MS? Или вы всмысле в не принимаете самого понятия DSL и считаете что его придумали прихвастни корпорации зла?

>Из этого, на мой взгляд, ясно "MS DSL" и "DSL в понимании остального человечества" связаны отношением включения (MS DSL -- строгое подмножество DSL)

Очень страно. Не нахожу. Оба затачивают язык под конкретную область (и понятие области у них вроде совпадает со всеми окружающими)

theos ★★★
()
Ответ на: комментарий от theos

> Или вы всмысле в не принимаете самого понятия DSL

Я принимаю всё понятия, имеющие однозначные определения. Чем больше я читаю, тем больше понятие DSL начинает походить на понятие "распределённый".

> Очень страно. Не нахожу. Оба затачивают язык под конкретную область (и понятие области у них вроде совпадает со всеми окружающими)

Нет, не совпадает. Graphviz, да.

sv75 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.