锁定老帖子 主题:尝试用Python实现消息传递编程风格
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-10
Lich_Ray 写道 我见过的语言中数它最差
Smalltalk Ruby JavaScript Lua E Scala Groovy Self 其中 E 的面向对象机制已经到了“高山仰止,境行行止”的地步。 http://www.erights.org Python 的面向对象机制超过哪个了 牛X吹大了吧 你认为最差只不过因为这些语言中,你最不了解python。 从你的那个列表里面,至少javascript和lua的在面向对象这个层面是弱于python的。 别的偶不懂,就不说了。 |
|
返回顶楼 | |
发表时间:2007-06-11
你的那个例子不是一回事吗。都说了文章是直接从别的语言转过来的,我很多Python的特性都没有用。
PS: LS牛X吹大了吧。真不巧,我就猜到你会说Lua和JavaScript的不是。告诉你Lua和JavaScript的面向对象机制非同小可,你不信?行啊。Walk & See. |
|
返回顶楼 | |
发表时间:2007-06-11
大家先别忙着吵,谁先定义一下啥叫“面向对象机制”,以及评价“面向对象机制”好不好的标准如何?
JS是基于原型的语言,因此很灵活,不过像mixin之类的功能,其实要自己动手来搞,不知道算不算支持弱呢?汗。但是JS继承了很多lisp的理念,用function可以模拟所谓的OO中相当多的东西,这个算不算支持好呢? PS:本来想多插两句,写了几句发现无处着力亚 |
|
返回顶楼 | |
发表时间:2007-06-11
Lich_Ray 写道 你的那个例子不是一回事吗。都说了文章是直接从别的语言转过来的,我很多Python的特性都没有用。
PS: LS牛X吹大了吧。真不巧,我就猜到你会说Lua和JavaScript的不是。告诉你Lua和JavaScript的面向对象机制非同小可,你不信?行啊。Walk & See. 切. 不需要walk and see了,人家javascript自己都已经开始从基于原型的OO向基于class的OO转变了. http://developer.mozilla.org/presentations/xtech2006/javascript/ 对象级别上基于原型的语言,和以class为基础的OO语言,在处理上有很多麻烦的地方,特别像javascript/lua这样的,所以javascript2才会引入一大票package、interface、class、implement、extend这类东西. 兄弟你说的强大的面对对象机制说的不会是这个传说中的javascript2吧. 对于现实意义中的javascipt,在面向对象这个问题中,最简单的一个测试,去实现一下继承和重载,并且在子类重新定义的函数中调用父类的同名被重载函数(一个非常常见的场景), 这个时候,你会发现肠子都钩出来才行.当然了,用一些第三方包可以较为简捷的处理这个,但那样做,和汇编语言的面向对象化没啥区别. 至于lua,相信前面给的那两个链接,仔细读过的人,至少在这个问题上,都会有点感受吧. lua在语言层面为面向对象准备了良好的基础,但是仅仅在这个基础上不自己裹一层就想直接裸着开干OO,累得不是一点两点. 了解一个语言,不是知道了语法要素,写过几个类似于hello world的东西就算大拿了. |
|
返回顶楼 | |
发表时间:2007-06-11
看完我写的这篇文章,LS 可以接着教训我,如果你还有话说道话。
http://lichray.iteye.com/admin/show/89241 PS: 如果你对 JavaScript 还是十分不屑可以来请教我啊。 |
|
返回顶楼 | |
发表时间:2007-06-12
Lich_Ray 写道 看完我写的这篇文章,LS 可以接着教训我,如果你还有话说道话。
http://lichray.iteye.com/admin/show/89241 兄弟,把某些语言的历史沿革说道说道,然后夹杂一些自己也不明所以的私货,就好意思舔着脸装牛X了? 引用 PS: 如果你对 JavaScript 还是十分不屑可以来请教我啊。
hehe,你如果真的想了解javascript,那就拿它去写一些以百行为数量级的代码,然后再回来说话。深入的了解不是靠着写hello world程序写出来的。 最简单的,就拿我前面的帖子说的,用javascript/lua实现一个继承+重载的最简单的OO例子。如果还有能耐,可以再加一个多继承或者mixins的。然后对比一下python/ruby的实现。 当然,你也可以告诉我继承和重载不在你的所谓的OO的雷达屏幕上。然后再牛X烘烘的新开一个帖子论述一下这个问题。 |
|
返回顶楼 | |
发表时间:2007-06-12
charon有些过分了,每种语言都有自己的使用范围,而且何以见得“最简单的,就拿我前面的帖子说的,用javascript/lua实现一个继承+重载的最简单的OO例子。如果还有能耐,可以再加一个多继承或者mixins的。然后对比一下python/ruby的实现。 ”这些是oo的必备要素呢?我觉得Lich_Ray写的另外一个帖子"00的进化"正是佐证了oo的分类。oo不是一个绝对的概念。要广纳之。
不过Lich_Ray兄,开始说的话确实容易激起公愤的。做人要谦虚,人外有人,天外有天。有掐架的时间,多介绍一下FP方面的东西岂不是更好? |
|
返回顶楼 | |
发表时间:2007-06-12
dogstar 写道 charon有些过分了,每种语言都有自己的使用范围,而且何以见得“最简单的,就拿我前面的帖子说的,用javascript/lua实现一个继承+重载的最简单的OO例子。如果还有能耐,可以再加一个多继承或者mixins的。然后对比一下python/ruby的实现。 ”这些是oo的必备要素呢?我觉得Lich_Ray写的另外一个帖子"00的进化"正是佐证了oo的分类。oo不是一个绝对的概念。要广纳之。
不过Lich_Ray兄,开始说的话确实容易激起公愤的。做人要谦虚,人外有人,天外有天。有掐架的时间,多介绍一下FP方面的东西岂不是更好? hehe. 其实我也不确定继承 + 多态是不是OO的基本要素。 OO分类10多年前就有"基于对象"和"基于类"的说法,我不反对现在再来吵这两个哪个更加OO一些这类问题,但是有必要吗把这个事情搞得好像发现新大陆一样吗?大家好歹都算是搞技术的,别整得那么浮躁不行啊. |
|
返回顶楼 | |
发表时间:2007-06-12
说实在的,我对这样的讨论深感失望。我确实写过百行以上级的 JavaScript 代码,两个加起来,除去注释大概有 1400 行吧。我是把 JavaScript 当作实用版的 Scheme 来用的人,不爱搞网页。
什么叫“发现新大陆”?新大陆本来就存在,只不过一些人总怕别人发现了新大陆罢了。 我不装牛X。我会发文说明怎么用 JavaScript/Lua 以非常优美的方式实现继承、多继承、Mixin、4P、多态等等一篮子特性的。JavaScript 那么谦虚,你们就因此找它的碴? PS: 我不是“搞技术”的。我是个学习算法和编译原理的“妖怪”。 |
|
返回顶楼 | |
发表时间:2007-06-12
Lich_Ray 写道 ...
我不装牛X。我会发文说明怎么用 JavaScript/Lua 以非常优美的方式实现继承、多继承、Mixin、4P、多态等等一篮子特性的。JavaScript 那么谦虚,你们就因此找它的碴? ..... 其实不是我在找"javascript的碴"。怎么看都是你在找python的碴啊。 就我个人的体验,写javascript程序到后来,不是自己写一些趁手的lib,就是最终去用那些处于快速变化过程中的开源包。和写java/python程序相比,是一个相对痛苦的过程。 不过,说句公道话,这个痛苦倒不是来自于javascript语言本身,一者是因为javascript通常都是处理ui层的event驱动逻辑,而ui本身就是一个痛苦的过程。二者是javascript的浏览器环境的限制,不可能像一般的c/s客户端那样有成熟的ide来支持。 从语言使用者的层面,相对于python,象javascript这样的基于prototype的语言,不论用那种方式实现继承/多继承/多态等等特性,都不会象基于class的语言那样来的直观和一致性。我想这也是javascript2在语言层面提供class,interface,extend,package等特性的原因之一。一旦引入了这些东西,在内部机制的梳理上又会有很有意思的变化。比如python,现在的这种相对符合直观的MRO方式,也是在2.3之后才稳定下来. |
|
返回顶楼 | |