2010-05-23 3 views
16

Я слышал, что Microsoft разработала язык программирования под названием M.Для чего нужен язык M?

Может кто-нибудь объяснить использование M и как программист на C# может получить выгоду от M.

+0

Ug, что страница была удалена. – Michael

ответ

24

UPDATE 2:

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


UPDATE 1:

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


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

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

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

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

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

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

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

Боковая панель: кто-то должен дать людям Microsoft некоторый SEO-маркетинг 101 класс. Ноль десяти лучших результатов для «m dsl» даже близок к разговору о DSL: один результат для лиги софтбола в Детройте; речь идет о цифровых абонентских линиях для мобильных телефонов; и т. д. Не называйте свой новый инструмент после буквы алфавита!

+0

Чтобы выполнить поиск 'm dsl' ... попробуйте выполнить поиск' c dsl'. «M» - это спецификация языка, у него просто много шума, как «B», «C» и «D» ... которые являются всеми языками программирования. –

+0

Прошло почти шесть лет с тех пор, как вы написали это, и M либо полностью отличается от того, что вы описали, либо сейчас чрезвычайно полезно. Спасибо за справочную информацию. –

+1

Разрушенные остатки M были переделаны в Power Query с некоторой дополнительной добротой и новыми идеями. Power Query - это не язык моделирования, который первоначально был M, а скорее инструмент для опроса данных. Подробнее здесь: https://msdn.microsoft.com/en-us/library/mt270235.aspx –

5

Цитата из М языка от Microsoft specification:

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

+11

Разве они просто говорили о моделировании в глине? Я вижу, что это проблематично как модель бизнес-решений, так как процесс всегда заканчивается увольнением. –