大家对LOP和DSL是如何看待的?

最近网上有一篇关于LOP的文章,不知道大家看了没有,现在有不少人在谈论这个问题,主要还是围绕在DSL这个方面,这是不是一个很好的软件开发方法。关于DSL的谈论,我不想多说,你可以参考一下Martin Folwer的文章(http://martinfowler.com/bliki/MetaProgrammingSystem.html),其实DSL也是MDA等实现的必要基础,Sergey Dmitriev 这篇文章确实引起了不少轰动,LOP号称下一个编程范式,同时现在也提供了一个创建DSL的工具MPS(mcirosoft也有DSL tools),尽管这篇文字有点长,但是还是仔细的读了几遍,相信大家读完这篇文章一定会有不少感触(赞赏或反对)。
原文:http://www.onboard.jetbrains.com/articles/04/10/lop/mps.pdf
LOP详细信息网站:http://www.sergeydmitriev.com/

MPS的原型可以通过以下网址下载:
http://www.sergeydmitriev.com/mps/mps100.zip

我目前编写了JdonSD框架,我以前说为什么它能够快速开发Struts+EJB,不仅仅它是一个API,或者代码产生器,而且它对编程方法有一个限定和约束,可是有时,过一段时间不用,我自己对这些约束都有些模糊,这使我下决心将JdonSD和其使用约束嵌入IDE中,这样,根据IDE的winzard,可以更快开发出一个Struts+EJB程序,同时,可以在需要时,在这个多层结构任何层面进行详细修改,这列为我下一步重点工作。

我有幸无偿获得IntelliJ的Idea 4.5正版用户和其插件的技术,我又有幸与Borland的左轻候见面,托其寻找JBuilder OpenTools的资料,OpenTools资料很少。我准备获得这两个资料后,推出JdonSD的IDE PlugIN。

现在看到了MPS,我在考虑,是否重新考虑我上面的计划,也许,从一个全新的编程思路,可以省却麻烦。

MPS作者提出将代码产生器或MDA工具统称为LOP,面向语言编程,一个可以颠覆主流编程方式的新的软件革命,我非常激动,好像它就是我现在所要的。

从简单地说,MPS元编程系统非常类似XML的Schema,但其语义应该是XML所没有的。

以上只是我初步认识,等看完这篇文章再写些感受,希望大家一起交流。


最近Microsoft的Software Factory遭到一阵阵骂声,DSL现在可以说是很多人争论的焦点,究竟怎么样样,现在看来支持DSL的工具及快速的Code Generation是关键啦,不然吸引不了人的眼球。DSL在unix下可以说是应用广泛,现在来到台面上讲,可能有人接收不了。能够摆脱工具和语言的限制,可以说是大多数人的要求。plugin的机制非常好,但是相当耗费精力去写一个出色的plugin,尽管书写一个plugin的机制很简单。
希望这种新的开发机制给你新的思路。 :)
顺便说一下,IDEA plugin开发指南中文档更新了。

是的,我们的开发局限在开发工具,比如EJB开发、JSF开发,如果没有工具支持,几乎效率很低,但是有这些工具还不能满足我们的需要,当我们要求进行适当更改时,就无法修改IDE了,当然IDEA、eclipse提供plugin不错,但是plugin开发还是不很方便。

这些都限制了我们开发程序的freedom自由,我们需要开发彻底的自由,现在J2EE开发是处于石器时代、要进入机械化时代,首先要将我们的工作从一些细节代码上解放出来。

LOP目标是不错,看如何实现了,个人感觉会对IDE触动很大。

IDEA反应也真快,今天给我最新的Plug-in中文资料,信件如下:

彭先生,您好!
这是我们最新的IntelliJ IDEA开发文档。近期,我们会推出MPS for IntelliJ IDEA插件,主要是LOP的产品体现。

看来IntelliJ IDEA技术是相当不错的,前几天听Borland说,他们的JBuilder在美国已经是他们公司主要销量产品,但是在中国不是,他们很奇怪,现在又遭遇IDEA追赶,前景不妙,Borland真是用周星驰那句“如果时光倒转..”来形容其心情不过分,这是他话,不多说。

还有DSL和UML是否对立的问题?应该说:DSL弥补了UML的不足,因为微软是做IDE工具出身,所以,在UML和IDE之间有些裂痕,这我们从JBUilder+Together等工具可以体会到,微软为了实现快速开发,使用DSL来填补这个裂痕,从而使得UML到代码之间顺利过渡。

微软再次利用其地位推进一个产业进步,这是其优点;但是令人担心的是由此形成的垄断,让人欢喜让人忧的微软。