有没有人有JetBrains元编程系统的经验?比如说,MPS比用Ruby开发DSL更好吗?
发布于 2009-08-11 00:39:26
我没有任何关于国会议员的个人经验,但在最近的Herding Code with Markus Völter节目中提到了这一点。这是我的理解。MPS是一个投影编辑器,这意味着,您可以直接编辑底层语言数据结构,而不是解析和编辑文本。正如Markus提到的,MPS允许您定义自己的语言,但您也可以在现有语言中引入新的语言概念。例如,您可以在几分钟内向Java添加一个新关键字。MPS模糊了内部和外部DSL之间的界限,有了它,您就可以获得静态类型和工具支持,这是使用Ruby等动态语言开发DSL时无法获得的。
发布于 2010-11-26 19:20:28
我为JetBrains工作。我领导了几年的MPS项目,现在我正在做另一个项目,也是完全用MPS编写的。根据我的经验,MPS值得使用:-)
你的问题的答案取决于很多东西。如果你有基于Ruby的系统,或者想要快速创建一门语言,那么基于Ruby的内部DSL可能是最好的选择。如果你想生成Java,并且有时间学习MPS,MPS可能是最好的选择。你也可以考虑像XText这样的系统,它们是介于基于Ruby和MPS之间的中间地带。
发布于 2010-06-26 21:29:37
MPS是一个有趣的野兽,有着非常巨大的潜力。这个想法简直太棒了:
集成开发环境内(MPS)用户或多或少以可视方式定义他的DSL
话虽如此,但不幸的是,至少对于实际可用的MPS版本而言,Jetbrains未能提供上述功能(至少对我来说是如此),因为:-它使用起来非常非常困难和复杂--就像它不是由易于使用的IntelliJ的作者开发的一样。-在用户能够做一些有用的事情之前,有太多的概念和“方法”需要学习,但仍然有一种进入黑暗的感觉。+ IDE不会为你生成一个IDE,但在MPS中也会生成一些东西,一个“基于单元格的编辑器”(从这个版本开始)。
我尝试过几次MPS (因为它的概念是如此的奇妙和有希望),但不幸的是,到目前为止我还不能用它做一些有用的事情。对于MPS来说,我可能太愚蠢了,但在我刚刚弄清楚MPS的基础知识的时候,我能够交付完全可用的基于Groovy的DSL。
我仍然在关注MPS的发展,并希望有一天能实现最初的承诺,因为这是一个如此奇妙的想法。
https://stackoverflow.com/questions/1257805
复制相似问题