论坛首页 Java企业应用论坛

丧钟为谁鸣?

浏览 26498 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-12-22  
wolfsquare 写道
早上就看到了,现在才转过来.貌似小桃重blogjava而轻je哦...
纯粹挑拨离间,请在意.


这小桃莫非是指徐x? 不是说taowen吧? 哈哈哈
0 请登录后投票
   发表时间:2005-12-22  
其实,这篇文章还应该进一步界定为:给没有类型推导的,泛型支持有限的,基于名字而非结构的子类型系统的,静态类型面向对象语言敲响的丧钟.(说穿了不过就是java, c#, c++等寥寥几个俗语言罢了)

老早跟老庄说让他划定讨论范围或者定义的时候,就是看到老庄话说的挺大,结果讨论来讨论去不过就是java, c++那点东西.文不对题.不过可能老庄认为所谓的"面向对象"必然就是java这个样子,所以下定义属于多此一举。


批判oo而不研究ruby们,smalltalk们,ocaml们;
批判静态强类型而看不见haskell们,clean们,oz们,那就最好小心一点,把标题变成"给我目前所知的OO敲响丧钟"。
0 请登录后投票
   发表时间:2005-12-22  
冰云 写道
wolfsquare 写道
早上就看到了,现在才转过来.貌似小桃重blogjava而轻je哦...
纯粹挑拨离间,请在意.


这小桃莫非是指徐x? 不是说taowen吧? 哈哈哈

桃之夭夭好不好……
0 请登录后投票
   发表时间:2005-12-22  
raimundox 写道
经过一些学习之后,我写了一个系列的文章,来修正老庄的丧钟系列。URL如下:

第0 面向对象
http://www.blogjava.net/raimundox/archive/2005/12/20/24851.html
第1 接口
http://www.blogjava.net/raimundox/archive/2005/12/21/24889.html
第2 继承
http://www.blogjava.net/raimundox/archive/2005/12/21/24891.html
第3 一切皆对象和面向对象的理论基础
http://www.blogjava.net/raimundox/archive/2005/12/21/24957.html


很不错的文章。我来补充两句。对象行为也是在变化的,比如徐X的吉他就剩下一根弦的时候估计就不会在能演奏合声了吧 。如果再被水泡泡,被火烧烧,没有人再能认出它曾经是吉他了。我们考虑javascript(scheme也一样),可以添加/删除对象的方法,也就是这种特性。
这样我们却是可以更好的描述真实世界中的对象了。但是就像函数式编程中引入赋值一样,变化对象行为引入了更多的复杂性。我想这也就是为什么java、C++这种静态类型的面向对象语言能够流行的原因。
至于动态语言,能够是以后的发展方向?我表示怀疑。
0 请登录后投票
   发表时间:2005-12-22  
raimundox 写道
我们有理由说,对象其实就是一个lambda抽象,所以一切皆对象不过是一切皆lambda抽象的演化,这也是为什么SICP里把面向对象称作一种“方便的界面”而不是一种抽象的方法的原因了。

正解。
结论是,大家都该看看SICP,至少可以看穿一些流传已久的语法糖。
0 请登录后投票
   发表时间:2005-12-22  
ajoo 写道
其实,这篇文章还应该进一步界定为:给没有类型推导的,泛型支持有限的,基于名字而非结构的子类型系统的,静态类型面向对象语言敲响的丧钟.(说穿了不过就是java, c#, c++等寥寥几个俗语言罢了)

老早跟老庄说让他划定讨论范围或者定义的时候,就是看到老庄话说的挺大,结果讨论来讨论去不过就是java, c++那点东西.文不对题.不过可能老庄认为所谓的"面向对象"必然就是java这个样子,所以下定义属于多此一举。


批判oo而不研究ruby们,smalltalk们,ocaml们;
批判静态强类型而看不见haskell们,clean们,oz们,那就最好小心一点,把标题变成"给我目前所知的OO敲响丧钟"。

ajoo有时间给大家介绍一下oz吧,这个东西我认为内容很多,似乎是一种包罗万象的东西。
0 请登录后投票
   发表时间:2005-12-22  
ozzzzzz 写道

ajoo有时间给大家介绍一下oz吧,这个东西我认为内容很多,似乎是一种包罗万象的东西。


oz.... 貌似和 ozzzzzz 很有渊源。

发展的过程,猜想如下:
c, c++, c++++ (c#),  c++++++  (c6+)...
0 请登录后投票
   发表时间:2005-12-22  
ajoo 写道

批判oo而不研究ruby们,smalltalk们,ocaml们;
批判静态强类型而看不见haskell们,clean们,oz们,那就最好小心一点,把标题变成"给我目前所知的OO敲响丧钟"。


能给oo敲钟应该不是什么ruby smalltalk 而是xml军团. oo编程会成为系统的底层 要快速的开发应用程序 需要更灵活 更宽松的东西.
0 请登录后投票
   发表时间:2005-12-22  
ajoo 写道
其实,这篇文章还应该进一步界定为:给没有类型推导的,泛型支持有限的,基于名字而非结构的子类型系统的,静态类型面向对象语言敲响的丧钟.(说穿了不过就是java, c#, c++等寥寥几个俗语言罢了)

老早跟老庄说让他划定讨论范围或者定义的时候,就是看到老庄话说的挺大,结果讨论来讨论去不过就是java, c++那点东西.文不对题.不过可能老庄认为所谓的"面向对象"必然就是java这个样子,所以下定义属于多此一举。


批判oo而不研究ruby们,smalltalk们,ocaml们;
批判静态强类型而看不见haskell们,clean们,oz们,那就最好小心一点,把标题变成"给我目前所知的OO敲响丧钟"。


  的确是非常惭愧,努力学习ing...

  现在我也可以很负责任的说,当初我的批判对象,实在是过广了。OO的领域其实非常的大,而我对于OO的了解,却始终不出Java、C++的范围。当徐昊跟我谈起Pure OO的鼻祖SmallTalk的时候,我还是只是懵懵懂懂的感到,这不过是一个相当古怪逻辑的OO,跟现在的主流OO,不可同日而语。

  后来才逐渐理解到,我所向OO开的跑,90%只应该打在Static Type OO的身上。当初夸下了海口,如今只能羞愧万分,还是学习得不够多啊!

  再次特别感谢徐昊和ajoo。
0 请登录后投票
   发表时间:2005-12-25  
raimundox 写道
经过一些学习之后,我写了一个系列的文章,来修正老庄的丧钟系列。URL如下:

第0 面向对象
http://www.blogjava.net/raimundox/archive/2005/12/20/24851.html
第1 接口
http://www.blogjava.net/raimundox/archive/2005/12/21/24889.html
第2 继承
http://www.blogjava.net/raimundox/archive/2005/12/21/24891.html
第3 一切皆对象和面向对象的理论基础
http://www.blogjava.net/raimundox/archive/2005/12/21/24957.html


你可以去信问问 Alan Kay ,看他是否认同“对象其实就是一个lambda抽象,所以一切皆对象不过是一切皆lambda抽象的演化”这种说法。

我是完全不认同的,而且简直觉得这有点扯了。对于建筑在 lambda 演算基础上的函数式语言来说,非常重要的一个特征,在我看来也是带有本质性的特征,就在于无状态、无副作用以及由此引出的引用透明特性。换句话说,你完全不需要区分“这个对象”和“那个对象”,“这份数据”和“那份数据”,这和面向对象重视对象、重视对象之间的交互的想法 …… 不说背道而驰吧,至少不像是亲密无间的关系。至于说“带有副作用的lambda抽象” …… 说实话,我有点不知如何来理解这个说法。

另外,我也觉得奇怪为什么讨论“给面向对象敲钟”最后会扯到计算理论上去。说起来,这计算理论研究的是什么是“计算”,研究和分析不同模型的计算能力,弄明白哪些问题是可以计算的,哪些不可以,哪些问题是能够有效计算的,哪些不能。然则我们对面向对象不满是因为“计算”能力上的问题么?显然不是 ……
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics