什么是M语言?

时间:2010-05-23 12:02:58

标签: m

我听说微软开发了一种名为M的编程语言。

有人可以解释使用M以及C#程序员如何从M获益。

3 个答案:

答案 0 :(得分:30)

更新2:

2015年7月,微软发布了一个名为Power Query的M的重度修订版。它被描述为“公式语言”,不再是建模本身。


更新1:

我写这篇文章差不多四年了,而我的猜测(“它不是很有用”)结果却被许多人所共享。 M已经很久没有被释放了。 MS将工作转移到了OData


要理解M背后的观点,你必须了解一些简短的历史:

  • 在20世纪90年代中期和21世纪初期,软件工程中出现了一些小动作,鼓励商务人士编写和开发软件。这被视为通过削减软件开发人员的中间人来为大型商业应用程序建模来降低大型软件项目的复杂性的努力。许多管理团队都喜欢这个想法,因为现在商务人士可以直接为软件开发做出贡献。

  • 人们过去常常尝试增加业务分析师的参与度。其中一个比较流行的是面向模型的架构。在这种方案下,商务人士可以使用某种视觉语言(例如UML)直接指定模型,然后将其生成为代码。这与使用某种可视化设计器创建自动生成的数据库列和表以及使用正确的NHibernate标记标记的关联C#类没有什么不同。

  • 因为仅仅为了对一些概念进行建模而学习新的编程语言是不方便的,所以大多数业务人员无法理解他们生成的代码。实际上,大多数人只是想将一堆建模代码交给开发人员并说“在这里运行”。通常,生成的代码的质量级别很低。

  • 最终,一旦明显让那些无法理解他们刚才所写软件的商界人士出现问题,这一运动就会消失。这些工具也部分归咎于:光滑的盒子和箭头图表在PowerPoint演示文稿中看起来很棒,但在软件中却有模糊的表示。可能的实现之间的意图差异通常太微妙,无法在工具中捕获。

这就是M的用武之地。微软认为工具已经改进到现在可以更直接地建模的地步。他们显然是从其他人的错误中吸取教训,因为M是一种文本语言(而不是早期视觉建模工具的光滑的盒子和箭头语言)。可以把M视为UML的另一个版本,但是很多东西被剥离了,并且或多或少专注于建模对象(而不是事件序列,演员等,以及UML可以用来做的所有其他事情)模型)。

IMO,它现在不是很有用,因为没有足够的思想共享来使它有效地工作。语言的一部分功能是它使用的工具,而且现在很少有(实际上,现在我想不出一个可以帮助你使用M的单个第三方工具)。

补充:侧栏:有人需要向微软人员提供一些SEO营销101课程。 “m dsl”十大结果中零排名甚至接近谈论DSL:一个结果是底特律的垒球联赛;一个是关于手机数字用户线;等等。不要在字母表后面写下你的新工具!

答案 1 :(得分:6)

来自Microsoft的M语言specification的引用:

  

Microsoft代码名称“M”建模语言(以下称为M)是使用文本对域进行建模的语言。域是任何相关概念或对象的集合。建模域包括选择要包含在模型中的某些特征,并隐式排除其他被认为不相关的特征。与使用其他媒体(如图表或粘土)建模相比,使用文本建模有一些优点和缺点。 M语言的目标是利用这些优点并减轻其缺点。

答案 2 :(得分:5)

M代表mashup查询,用于PowerQuery和PowerBI Desktop。 它已重命名为Power Query Formula Language。它是informally known as "M"

https://msdn.microsoft.com/en-us/library/mt270235.aspx