Для чего Язык М? [закрытый]

21
задан idmean 6 October 2015 в 18:56
поделиться

2 ответа

UPDATE 2:

В июле 2015 года компания Microsoft выпустила сильно переработанную версию M под названием Power Query. Она описывается как "язык формул" и больше не связана с моделированием как таковым.


UPDATE 1:

Прошло почти четыре года с тех пор, как я написал это, и оказалось, что мое предположение (что "это не очень полезно") разделяют многие. M уже давно не существует и никогда не выпускался. Вместо этого MS переключила усилия на OData.


Чтобы понять, что стоит за M, нужно понять краткую историю:

  • В середине 1990-х и начале 2000-х годов в программной инженерии возникло нечто вроде мини-движения, направленного на поощрение бизнесменов к написанию и разработке программного обеспечения. Это рассматривалось как попытка снизить сложность крупных программных проектов, устранив посредника в лице разработчиков программного обеспечения для моделирования крупных бизнес-приложений. Многим руководителям понравилась эта идея, поскольку теперь бизнесмены могли вносить непосредственный вклад в разработку программного обеспечения.

  • Было много стратегий, которые люди использовали, чтобы попытаться увеличить вовлеченность бизнес-аналитиков. Одной из самых популярных была модельно-ориентированная архитектура. Согласно этой схеме, бизнесмены могли напрямую задавать модели, используя некий визуальный язык (например, UML), которые затем генерировались в код. Это было бы совсем не похоже на наличие некоего визуального конструктора, который создавал бы автогенерируемые столбцы и таблицы базы данных, а также связанные с ними классы C#, помеченные нужными тегами NHibernate.

  • Поскольку неудобно изучать новый язык программирования только ради моделирования нескольких концепций, большинство бизнесменов не могли понять сгенерированный код. Действительно, большинство людей просто хотели передать стопку смоделированного кода разработчикам и сказать: "Вот, работайте с этим". В целом, уровень качества генерируемого кода был низким.

  • В конце концов, движение сошло на нет, как только стало очевидно, что наличие бизнесменов, которые не могут понять программное обеспечение, которое они только что написали, является проблематичным. Отчасти в этом были виноваты и инструменты: ловкие диаграммы в виде квадратиков и стрелочек отлично смотрятся в презентациях PowerPoint, но имеют неоднозначное представление в программном обеспечении. Различия в намерениях между возможными реализациями часто были слишком тонкими, чтобы уловить их в инструменте.

Вот здесь-то и приходит на помощь M. Microsoft делает ставку на то, что инструменты улучшились настолько, что теперь можно моделировать вещи более непосредственно. Очевидно, они учились на ошибках других, поскольку M - это текстовый язык (а не ловкий язык квадратиков и стрелочек более ранних инструментов визуального моделирования). Рассматривайте M как еще одну версию UML, но с вычеркнутым из него большим количеством лишнего, и сфокусированную более или менее исключительно на моделировании объектов (а не последовательностей событий, актеров и т.д., и всех других вещей, которые UML может использовать для моделирования).

IMO, сейчас он не очень полезен, потому что нет достаточного количества умов, чтобы сделать работу с ним эффективной. Частью полезности языка являются инструменты, с которыми он работает, а сейчас их очень мало (на самом деле, сейчас я не могу вспомнить ни одного стороннего инструмента, который помог бы вам с M).

В качестве побочной темы: кто-то должен дать сотрудникам Microsoft несколько уроков по SEO-маркетингу. Ноль из десяти первых результатов по запросу "m dsl" даже близко не говорят о DSL: один результат - о лиге софтбола в Детройте, один - о цифровых абонентских линиях мобильных телефонов и так далее. Не называйте свой новый инструмент в честь буквы алфавита!

30
ответ дан 29 November 2019 в 20:35
поделиться

Цитата из спецификации языка Microsoft M :

Кодовое имя Microsoft «M» Modeling Language, далее M, представляет собой язык для моделирования доменов с использованием текста. Домен - это любая совокупность связанных понятий или объектов. Область моделирования состоит из выбора определенных характеристик для включения в модель и неявного исключения других характеристик, которые считаются несущественными. Моделирование с использованием текста имеет некоторые преимущества и недостатки по сравнению с моделированием с использованием других средств, таких как диаграммы или пластилин. Цель языка M - использовать эти преимущества и смягчить недостатки.

6
ответ дан 29 November 2019 в 20:35
поделиться