我听说微软开发了一种名为M
的编程语言。
有人可以解释一下M
的用途以及C#程序员如何从中受益吗?
更新2:
在2015年7月,微软发布了一款名为Power Query的M语言重大改版版本。它被描述为“公式语言”,不再仅限于建模。
更新1:
距我写下这篇文章已经快四年了,而我的猜测(“它并不是很有用”)后来得到了许多人的认同。M语言早已被淘汰,从未发布。微软转而致力于OData。
要理解M语言背后的意义,您需要了解一些简要历史:
在1990年代中期和21世纪初期,软件工程领域出现了一股小型运动,鼓励商业人士编写和开发软件。这被视为一项通过剔除中间人软件开发人员来减少大型软件项目复杂性的努力。许多管理团队都喜欢这个想法,因为现在商业人员可以直接为软件开发做出贡献。
人们使用了许多策略来尝试增加商业分析师的参与度。其中一个更受欢迎的策略是模型导向架构。在这种方案下,商业人士可以使用某种可视化语言(例如UML)直接指定模型,然后将其生成为代码。这有点像拥有某种可视化设计器,它会创建自动生成的数据库列和表以及带有正确NHibernate标记的相关C#类。
由于仅仅为建模几个概念而学习新的编程语言很不方便,大多数商业人员无法理解他们生成的代码。实际上,大多数人只想把一堆建模代码交给开发人员并说“拿去用吧”。总的来说,生成的代码质量水平较低。
最终,一旦商业人士写的软件他们自己无法理解成为问题,这种运动便消失了。工具也有一部分责任:漂亮的盒子和箭头图表在PowerPoint演示中看起来很棒,但在软件中却存在模糊的表示方式。可能实现之间的意图差异通常太微妙,无法在工具中捕捉到。
这就是M语言的用武之地。微软公司认为,现在的工具已经改进到可以更直接地建模的程度。他们显然从其他人的错误中吸取了教训,因为M是一种文本语言(而不是早期视觉建模工具的漂亮的盒子和箭头语言)。将M视为另一个版本的UML,但更专注于对对象进行建模(而不是事件序列、演员等等和UML可用于建模的所有其他东西)。
在我看来,由于参与使用M的人还不够多,目前它并不非常有用。语言的一部分效用是它所使用的工具,在目前这个时候,有这样的工具非常少(事实上,目前我想不到有哪个第三方工具能帮助你使用M)。
旁注:有人需要给微软的员工提供一些SEO市场营销101课程。 “m dsl”的前十个结果中没有一个与DSL相关,其中一个结果是底特律的垒球联赛;另一个是关于移动电话数字用户线路的。不要给你的新工具取一个字母的名字!
来自微软 M 语言规范的一句话:
微软代号为“M”的建模语言(以下简称 M)是一种使用文本进行领域建模的语言。领域是任何相关概念或对象的集合。建模领域包括选择要包含在模型中的某些特征并隐含排除其他被认为不相关的特征。与使用图表或黏土等其他媒介进行建模相比,使用文本进行建模具有一定的优势和劣势。 M 语言的目标是利用这些优势并减轻这些劣势。