精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-13
马大叔的两篇:领域专用语言(DSL)、界定DSL 还有在JavaEye的不少相关的讨论:DSL的讨论、规则系统or脚本系统,自然语言,DSL or Java语言、Ruby DSL 还有一篇不错的入门文章:用Ruby 创建领域特定语言(DSL) 因此自己又思考了不少东西。联想到以前说过的两句话: “框架是弱语言,语言是强框架” 由此我们可以这么定义,DSL就是尽可能写得像语言的框架。 再接着追问,为什么框架还不够,还要发展为DSL呢?初步的看法是:语言是一种更加方便的使用方式。 前段时间徐昊一直在写一篇关于Antlr和DSL的文章,我也不断的看着文章的进展,跟他讨论着。有这么一些想法,还远不成型。 1、 DSL一般来说,是Domain Specific Language的缩写,而我以为,更加实用的,应该是Domain Scripting Language,这种DSL。也就是说,DSL应该足够简单,一根筋,过程化,三分钟学会。否则,太过复杂的DSL,就不会有人喜欢了。 2、DSL的简单,是他的优点、特点、也是他的弱点和局限所在。 3、DSL与MDA最大的区别是,DSL是自底向上简化劳动的实践,而MDA则是企图自顶向下搞定一切的妄想。 4、我当初设计的DJ(Dynamic Java),应该被称之为DML(Domian Modeling Language)——领域建模语言。相对于UML,DML是更加适合的领域建模工具,毕竟,UML受限于OO的思维模式,无法超越。 另外还有一些议论,也附在下面: UML,是思考工具,不是开发工具。 TDD,是开发手段,不是设计手段。 UML作为开发工具,就会出现MDA那样的书呆子遐想 TDD作为设计工具,就会导致设计惰性与跳不出最初的心理暗示(隐喻) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-09-13
DML是更加适合的领域建模工具。 how? 看到一个Eiffel语言,有很丰富的规约。 |
|
返回顶楼 | |
发表时间:2006-09-13
1、 DSL一般来说,是Domain Specific Language的缩写,而我以为,更加实用的,应该是Domain Scripting Language,这种DSL。也就是说,DSL应该足够简单,一根筋,过程化,三分钟学会。否则,太过复杂的DSL,就不会有人喜欢了。
// 加上一句:个人认为任何东西,大家都是喜欢简单而不喜欢复杂的,不仅仅对于DSL。 2、DSL的简单,是他的优点、特点、也是他的弱点和局限所在。 // 老大能不能就拿SQL,具体的举个例子来说一下。简单也是弱点和局限所在。不太明白吖:( and 对庄老大最后一句话也不明白 |
|
返回顶楼 | |
发表时间:2006-09-13
很多人喜欢C/C++,不是因为它简单,而是因为它足够强大,足够复杂。
DSL不能复杂,也就意味着,有些领域不能仅仅依靠DSL来解决。因为那些领域本来就是复杂的。 |
|
返回顶楼 | |
发表时间:2006-09-13
DML?哪里有介绍?
说实话我现在处在一个不太喜欢“纯”OO的阶段,尤其是领域建模。 |
|
返回顶楼 | |
发表时间:2006-09-13
喜欢C/C++的人,如果说是因为他足够强大,我相信。
但是如果是因为足够复杂,那么我不觉得是。 如果有比C/C++强大而且更加简单的语言,那么应该容易让更多人喜欢吖。 要是说有部分人最爱C/C++是因为强大+复杂。 那么应该去鼓捣汇编,机器语言什么的了。 这些比C/C++更强大,并且更复杂吧。 引用 “有些领域不能仅仅依靠DSL来解决。因为那些领域本来就是复杂的。”
相当赞同。计算机世界是一个没有银弹的世界。 |
|
返回顶楼 | |
发表时间:2006-09-13
冉翔 写道 喜欢C/C++的人,如果说是因为他足够强大,我相信。
但是如果是因为足够复杂,那么我不觉得是。 如果有比C/C++强大而且更加简单的语言,那么应该容易让更多人喜欢吖。 要是说有部分人最爱C/C++是因为强大+复杂。 那么应该去鼓捣汇编,机器语言什么的了。 这些比C/C++更强大,并且更复杂吧。 引用 “有些领域不能仅仅依靠DSL来解决。因为那些领域本来就是复杂的。”
相当赞同。计算机世界是一个没有银弹的世界。 asm语义上还是挺简单的,之所以麻烦,只是关注的细节太多,重用性比较差,无法移植。 c++想干的事情太多,语义上很复杂,使用过程中总会让你“惊奇”不断。 |
|
返回顶楼 | |
发表时间:2006-09-13
你说的DSL,MDA两个方向不能合在一起么?DSL难道就不能用于Domain modeling么?
P.S. 我个人感觉DML这个缩写通常都指Data Manipulation Language,也就是SQL。SQL其实也是一种DSL。。。 |
|
返回顶楼 | |
发表时间:2006-09-13
to:tianxinet
Domain Modeling Language 这个DML,是我自己发明的一个词,看着挺像那个啥的吧 :p 所以,还没有什么介绍。 昨天在跟徐昊聊天,感觉通常所说的DSL,可以再分层三个类别/流派 DML(Domain Modeling Language) DSL(Domain Scripting Language) DRL(Domain Rule Language) 觉得怎么样? |
|
返回顶楼 | |
发表时间:2006-09-13
刚才在Google上搜索了一下Domain Modeling Language,似乎已经有这个缩写了,具体细节,待查。
|
|
返回顶楼 | |