MPS(一种元编程语言)值得学习吗?

8

Jetbrains的另一个项目,他们的新问题跟踪器Charisma完全是用MPS编写的。这个概念是否有用/实用,还是为时过早?

5个回答

12

MPS不仅仅是Java领域的DSL。实际上,它是语言无关的。您可以将自己的语言生成任何MPS支持的其他语言。在MPS 1.1中,我们内置支持Java、XML和纯文本(作为最后一种选择)。也许在未来版本中,我们将提供其他语言,如JavaScript、CSS等。

MPS的一个关键特性是能够组合语言,而这在其他工具中是不可用的。您可以创建多个语言扩展并以您想要的方式组合它们。例如,一个供应商可能会实现一个用于其数据库的语言,而另一个供应商则实现了一个用于金融计算的语言。它们将很好地协同工作,您将不会遇到任何歧义等问题。


1
另一个盒子里出现了mbeddr,它对C语言进行建模。 - xtofl

3

从我的角度来看,MPS非常棒。它就像是Java在类固醇的基础上,再加上DSL-s。不要仅仅将其视为DSL。完全可以实现图灵完备,包括Java代码生成等功能。它就像是Java 8 +“Common Lisp”的组合体,在避免了文本语法问题的同时又有强大的能力。对我而言,它似乎是未来的方向。我已经用心、头脑和灵魂投入其中。

如果你正在寻找一些“超前”的东西,并且已经实用并与当前技术密切相关,那么MPS就是一个很好的选择!


3
我认为MPS非常值得研究。该工具是开源且非常强大。在MPS中实现的思想非常强大,解决了自编程语言诞生以来一些挑战(最重要的是语言组合)。文档质量对于初学者来说是一个挑战,但是现在你也可以阅读这本新书:http://books.campagnelab.org/(免责声明:我是这本书的作者,但我不是MPS的作者)。

2

这并不是“太快”的问题,而是因为这种开发方法本身就很具有挑战性。MPS的成本效益比(成本指传播时间)在很大程度上取决于您应用它的项目类型。如果您拥有一个可以从DSL(例如对我来说是项目管理)中获益匪浅的领域,那就去试试吧!


-2

看起来是 Java 的领域特定语言。为什么不自己调查一下呢?如果它只是生成 Java 源文件,而且这是你感兴趣的东西,项目也没有什么紧急情况的话,我认为完全可以试试。


它不是Java的DSL,而是一种语言工作台:即创建语言的平台。它是用Java实现的,并且默认支持Java,但它可以与各种语言一起使用。 - Federico Tomassetti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接