精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-07-29
to:robbin
你没有仔细看我的文字,我只是点出来,实际需要这么多步骤,而不是我增加了新的步骤。 现在的EclipseIDE,能够支持在save代码的时候,立即编译,因此编译这一步对于用户是透明的。 将来我的设想的DJ开发,自然也是要IDE支持的,在用户save之后,立即进行预编译与编译两个步骤,对于用户同样是透明的。 至于编译为debug或者release,本来就是IDE编译选项中的一个简单选择,对于用户来说,也只需要在最后正式发布时,去修改一下选项而已。 明确指出实际上存在这些步骤,并不是坏事,更会带来思维清晰的好处。 |
|
返回顶楼 | |
发表时间:2005-07-29
庄表伟 写道 还没有介绍完呢,channel不但可以静态的定义在dclass中,也可以动态的插入到一个动态对象之中,但是这需要在dclass定义时,明确允许插入新的channel。
实在看不出你这里的channel同aspect有多少相似的地方。假如我需要在datatype user中添加新的属性,该如何处理阿?如果加入aspect(channel)扩展需要dclass允许的话,这无疑意味着dclass知道自己需要扩展,这种假设在实际开发中存在吗? 我开始感觉到DJ仿佛是一盘消化不良的大杂烩,里面什么都有,但是大多数都没有用对地方,但愿后面的论述会驱散我的这种感觉。 |
|
返回顶楼 | |
发表时间:2005-07-29
一种新的语言(8)
http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry |
|
返回顶楼 | |
发表时间:2005-07-29
庄表伟 写道 一种新的语言(8)
http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry 看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了. |
|
返回顶楼 | |
发表时间:2005-07-30
charon 写道 庄表伟 写道 一种新的语言(8)
http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry 看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了. 回错帖了 PI与我的DJ有关系吗? |
|
返回顶楼 | |
发表时间:2005-07-30
庄表伟 写道 charon 写道 庄表伟 写道 一种新的语言(8)
http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry 看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了. 回错帖了 PI与我的DJ有关系吗? 关于 Channel 的内容,有那么一点点关系,呵呵。 |
|
返回顶楼 | |
发表时间:2005-07-31
老庄的DJ别的地方没看明白,这里似乎懂一点了。面向对象的Observer模式实现在分发消息时需要手工分发,也有一些使用继承方式减少分发代码的实现方式。但是都不及 AOP方式简洁,灵活。老庄是想把AOP实现到语言级别上,特别是对Observer模式提供语言支持。这一点确实很有前途地。
|
|
返回顶楼 | |
发表时间:2005-07-31
to:charon
老兄啊,你可真是惜墨如金呀,能不能多讲两句呢? to:hitdongbin 谢谢你的回帖,我会接着写一篇blog,专门介绍在语言级引入event的意义的。 |
|
返回顶楼 | |
发表时间:2005-08-01
庄表伟 写道 event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及越发强大的各种动态语言,开始来做这方面的努力。而这些技术和语言,在试图打破封装的时候,做得并不彻底,往往还是“从OO的基本语义出发,做一些有益的补充”。而我的打算则是,彻底反思封装的意义,然后采用一种新的机制来代替静态封装的OO技术。
AOP怕不是来打破这种封装的,恰恰相反它加强了封装的程度,就是在同一个对象里可以分成好多方面。并且他们可以毫不相干。即使是跨越多个对象的Aspect也是基于某个关注点的封装,与其他方面绝少关系。 如果你是认为静态分类是一个弱点还可以理解,扯上什么打破封装就丝毫没有道理。 |
|
返回顶楼 | |
发表时间:2005-08-01
partech 写道 庄表伟 写道 event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及越发强大的各种动态语言,开始来做这方面的努力。而这些技术和语言,在试图打破封装的时候,做得并不彻底,往往还是“从OO的基本语义出发,做一些有益的补充”。而我的打算则是,彻底反思封装的意义,然后采用一种新的机制来代替静态封装的OO技术。
AOP怕不是来打破这种封装的,恰恰相反它加强了封装的程度,就是在同一个对象里可以分成好多方面。并且他们可以毫不相干。即使是跨越多个对象的Aspect也是基于某个关注点的封装,与其他方面绝少关系。 如果你是认为静态分类是一个弱点还可以理解,扯上什么打破封装就丝毫没有道理。 老庄封装的概念可能跟楼上的不一致,所以这一枪算是打歪了。从实现的角度讲,AOP确实打破了对象的封装。从构建器,方法调用,甚至类对象初始化,AOP都将对象进行了解剖。可以调用方法内的参数, 返回值,以及捕获异常,这些都比面向对象方式暴露得更彻底。所以目标对象确实是被方面打破了封装。至于方面之间确实像你说的那样,可以进行很好的封装。这是两个问题。 |
|
返回顶楼 | |