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: один результат - о лиге софтбола в Детройте, один - о цифровых абонентских линиях мобильных телефонов и так далее. Не называйте свой новый инструмент в честь буквы алфавита!
Цитата из спецификации языка Microsoft M :
Кодовое имя Microsoft «M» Modeling Language, далее M, представляет собой язык для моделирования доменов с использованием текста. Домен - это любая совокупность связанных понятий или объектов. Область моделирования состоит из выбора определенных характеристик для включения в модель и неявного исключения других характеристик, которые считаются несущественными. Моделирование с использованием текста имеет некоторые преимущества и недостатки по сравнению с моделированием с использованием других средств, таких как диаграммы или пластилин. Цель языка M - использовать эти преимущества и смягчить недостатки.