论坛首页 综合技术论坛

尝试用Python实现消息传递编程风格

浏览 25271 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-06-14  
引用
在我的博客 http://let-in.blogspot.com 上可以找到,但现在貌似上不去,服务器维护。
我写的关于 JavaScript 实现OOP的文章终于完工了:
http://lichray.iteye.com/blog/89554
对无类语言有点兴趣的可以去看看。


是的 好像整个blogspot.com被封掉了
搞了一个代理上~ok
0 请登录后投票
   发表时间:2007-06-14  
博客上好东西不少呀
谢谢LZ,还是那句~好样的!
0 请登录后投票
   发表时间:2007-06-14  
charon 写道
兄弟,说的是OO机制上的强弱。不是说今天你穿了件红衣服,他穿了件绿衣服,红衣服就比绿衣服强很多。而且红衣服上有个脏东西,绿衣服上没有,难道是绿衣服的错?

那么,你可以把这个想法和 Python 设计者说一下,因为他们给 Python 加的元类函数已经能和 JavaScript 的 prototype 的效果有一拼了,多添加的命名数量大约是是 20:3。你可以叫他们把这些东西去掉。PS: 这里是公共论坛,你已经两次言论中过多歧视成分了吧。我初来时说话不好听,有人指出了,我改。
现在觉得 Python 的 lambda 岂一个失败了得,值得好好改改。
还是那句话,Python 的哲学是“实用主义”,我其实是很喜欢 Python 的,它不能这样不能那样是有一定道理的,我可以理解。

最后这个我要解释一下:
引用
8. N/A. 不了解这个包的含义. 但是,有个疑问,一个语言的某个内置数据类型是否具备某个特性,能够上升到这个语言的OO机制是否够强的高度?

“包”就是 package。Python 中的 module 只能用 Dictionary 来显示而不能描述——所以设计者们正在考虑给 Python 加上 interface 呢!加了我也不用。一种语言(包括 OO 机制)想要强大,前提是全面,全面的前提是自足。不能以其本身自我满足的语言,关键字越多,语言越弱。

关于 JavaScript 库的问题不再这儿多回复一遍。
0 请登录后投票
   发表时间:2007-06-14  
Lich_Ray 写道

那么,你可以把这个想法和 Python 设计者说一下,因为他们给 Python 加的元类函数已经能和 JavaScript 的 prototype 的效果有一拼了,多添加的命名数量大约是是 20:3。你可以叫他们把这些东西去掉。

metaclass偶本来也觉得很不爽,因为它非常晦涩,而且关键是不知道用在什么地方。
不过,在看了一些文章和django的相关代码之后,我觉得这个玩意还是有点意思。简洁的说,这玩意不是给普通的应用开发者使用的,而是给框架设计者定制类的创建动作干活的,而这类定制创建动作的目的通常都是为了使使用者能够以更加简洁或者直观的方式来定义一些东西,或者时髦一点的说法,就是让使用者以更接近DSL的方式来干活。当然,因为括号的必须存在性,python的dsl美观程度比ruby差很多。而且,python的metaclass使用起来也比ruby的对应物要繁琐,虽然功能极其强大. 当然另外也可以在创建中参与内存管理,这个就太底层了,而且普通的方式也可以等效实现。
如果只是编写应用层面的代码(比如django的使用者),基本上不会碰到用到metaclass的场景.
从哲学上来说,这是一个小众特性。不了解不去用不会损害使用python的能力,滥用的话,对可读性和直观一致性都会有重大伤害。
不过它和javascript的prototype还是有很大不同的。它只在对象创建的时候干活(添加方法或者转换语义),对象创建之后,属性/方法的查找是不会搜索到metaclass的


引用

PS: 这里是公共论坛,你已经两次言论中过多歧视成分了吧。我初来时说话不好听,有人指出了,我改。

ok。我承认,我改。我是好同志.


引用

“包”就是 package。Python 中的 module 只能用 Dictionary 来显示而不能描述——所以设计者们正在考虑给 Python 加上 interface 呢!加了我也不用。

兄弟,python要加interface或者类似的东西不是因为这个原因吧。类似的东西在Zope,twisted,Peak中都已经作为应用级的协议出现了。而且类似的pep以及各种建议都被否决了n次了。
而且,这方面的议论和建议五花八门,貌似各路大佬都出来说过话。但是没听人说是因为描述module的能力不够强,所以要引入interface.而且,在我看来,所以不需要类型声明的语言(通常动态语言都这样),这方面的描述能力都是脚碰脚.

引用

一种语言(包括 OO 机制)想要强大,前提是全面,全面的前提是自足。不能以其本身自我满足的语言,关键字越多,语言越弱。

这个有关系,但关系也不大吧。一个语言通常会提供一个最小核心,比如循环语句只需要一种,条件判断也不需要那么复杂。但是,通常为了使用者的便利性或者习惯,又会提供别的一些东西。
关键是在引入新特性的同时能够在语义模型这一层把饼画圆了.这一点,python作的算是不错的了,引入新特性时非常的谨慎,而且语言的进化基本上没拿关键字说话(好像只有2.5多了个with吧,as只能算半个)。个人认为作为一种大众语言,进化是没有办法的事情,只能说是采用什么样的方式来面对了.
0 请登录后投票
论坛首页 综合技术版

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