Python论坛  - 讨论区

标题:Re: [python-chinese] 这个世界疯了――面对Ruby On Rails

2005年07月12日 星期二 17:35

March Liu march.liu at gmail.com
Tue Jul 12 17:35:21 HKT 2005

当你把高版本的环境下写出的代码拿回到低版本环境时,兼容性问题就会很突出了,一个是加入扩展库,一个是修改对象的结构,哪个更容易些显而易见。 
string的对象化有其特殊性,如效率优化等,对于数值这种传统上的轻量级类型未必适合。如果说函数绑定到对象是大势所趋,那C++的STL、 
Boost、C#2.0的匿名委托,Java1.5的静态方法混入又怎么说?这实际上都是对重型OO的一种反思。

在05-7-12,shhgs <shhgs.efhilt at gmail.com> 写道:
> 
> 青菜萝卜,个人喜欢。
> 
> 不过我想指出,扩充接口并不会影响语言的兼容性,缩减接口才会。
> 
> 我认为把函数bound到对象上是大势所趋。Python 1.5.2的string并没有split,
> lower等方法,当时也要用string.split(s)或者string.lower(s)。既然string可以,为什么int不可以呢?
> 
> 顺便说一下,Python 3000的range是返回iterator的,而string模块将被取消。
> 
> On 7/12/05, March Liu <march.liu at gmail.com> wrote:
> > 
> 这方面我和limodou的看法比较接近,语法还是简单些好。过度OO和没有OO一样不是什么好事情。就像3000里计划取消一些函数化功能,我一开始不理解,后来读了一些相关的资料,感觉这样反而可以用更优雅易懂,更Python化的方式实现。我将这个观点拿到IronPython社区讨论时,也得到了
> > Jim Hugunin
> > 
> 的支持。比如现在我们固定了int的内置方法,以后发现有其它的,也是针对int的操作,那是不是要加进来?如果这样扩充下去,新旧版本的Python又会出现比较大的不兼容,而现在这样,对一些通用操作以函数单独处理,就不存在这个问题,因为对象和对象的非关键性操作(比如这里提到的迭代算法,
> > 
> Python的标准做法是range/xrange)是正交分离的,这才是动态语言的魅力之处。如果把算法也看成对象(Python中正是这样),那这种模式更为OO化,而且抽象的更彻底。如果你和STL的作者一样,认为"这个世界不是完全面向对象的,算法就不是对象",那也没问题,他老人家本来就是纯
> > OO理论的反对者……
> > ruby为了避免这类问题,采用了一种开放的对象模型。它的对象可以动态扩充,比Python的还要灵活,这种风格我个人感觉还是很漂亮的,可以说是
> > 
> ruby的亮点之一。不过每种语言都有自己的个性之处,如果拿到Python中来,感觉和Python现有的这种"数据与算法正交分离"的风格不太一致,当然Python是一种很开放的语言,我想在我们需要的场合,用Python实现这样的技术并不困难。至于纳入标准,我还是持保守态度。
> >
> > 在05-7-12,shhgs <shhgs.efhilt at gmail.com > 写道:
> > > 看过了
> > >
> > > 这个ERP感觉还是很漂亮的。不过这种应用类的产品对技术的影响不会很大,倒是可以宣传一下Python的强大。
> > >
> > >
> > 其次和limodou商榷一下。3.times绝对是一个很好的语法。3是一个对象,这个对象有一个方法叫times,这个方法可以返回一个
> > iterator。这些东西Python都有,不过没有整合而已。如果Integer也能subclass,用Python实现也应该没什么难度。
> > Ruby里面所有的东西都是对象,而Python的int,float还不能算Python语言的对象。我觉得有可能Python
> > >
> > >
> > 
> 3000会把Integer,float这类primitive都做成对象。string在1.5.2的时候就不是对象,很多string的方法,当时都得调用string类的函数处理。那么integer会不会步string的后尘呢?
> > >
> > > On 7/12/05, limodou < limodou at gmail.com> wrote:
> > > > ror只是一个快速开发web的一个框架,与erp不是一个概念的东西吧。
> > > >
> > > > 在 05-7-12,清风<paradise.qingfeng at gmail.com> 写道:
> > > > > http://www.erp5.org/
> > > > > 相当于一个erp的基础设施,还提供了很多商业逻辑模版,我觉得应该比ROR有前途的多:)
> > > > >
> > > > > 2005/7/12, shhgs <shhgs.efhilt at gmail.com>:
> > > > > > 我就觉得ruby有一点挺让我眼热的。
> > > > > >
> > > > > > 3.times do |i|
> > > > > > puts i
> > > > > > end
> > > > > >
> > > > > > 如果python也能写
> > > > > > for i in 3.times() :
> > > > > > print i
> > > > > >
> > > > > > 那就完美了。
> > > > > >
> > > > > > 我对RoR并不看好,完全同意清风的观点-- "其实我觉得ROR只是简化了最基本的crud而已"。
> > > > > >
> > > > > > 只是有点不明白,Python怎么有多出一个ERP5了。这是什么应用?
> > > > > >
> > > > > >
> > > > > > On 7/12/05, Qiangning Hong <hongqn at gmail.com> wrote:
> > > > > > > shhgs wrote:
> > > > > > > > 前两天有一个哥们要一个统计一个文章里有几个单词的程序,我写了一段。
> > > > > > > >
> > > > > > > > ARGV.each do |filename|
> > > > > > > > words = 0
> > > > > > > > File.new(filename).each {|line| words +=
> > line.split.length }
> > > > > > > > puts words.to_s + "\t\t" + filename
> > > > > > > > end
> > > > > > >
> > > > > > > 翻译成python,呵呵:
> > > > > > >
> > > > > > > import sys
> > > > > > >
> > > > > > > for filename in sys.argv[1:]:
> > > > > > > words = 0
> > > > > > > for line in file(filename):
> > > > > > > words += len( line.split())
> > > > > > > print words, filename
> > > > > > >
> > > > > > >
> > > > > > > 或者变态一点:
> > > > > > >
> > > > > > > for filename in sys.argv[1:]:
> > > > > > > print sum(len( line.split()) for line in file(filename)),
> > filename
> > > > > > >
> > > > > > > 呵呵,python的list/generator comprehensions还是很handy的。
> > > > > > >
> > > > > > >
> > > > > > > > 显示的内容类似wc命令,不过只显示word
> > > > > > >
> > > > > > > wc -w 就可以显示word数。
> > > > > > >
> > > > > > >
> > > > > > > >
> > Ruby是一门很不错的语言,不比Python差。但是它的社区实力比较弱,类库有点单薄,而且类似CPAN式的类库也有点乱糟糟。
> > > > > > >
> > > > > > > 同意。
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Qiangning Hong
> > > > > > >
> > > > > > > I'm usually annoyed by IDEs because, for instance, they don't 
> use
> > VIM
> > > > > > > as an editor. Since I'm hooked to that, all IDEs I've used so 
> far
> > have
> > > > > > > failed to impress me.
> > > > > > > -- Sybren Stuvel @ c.l.python
> > > > > > >
> > > > > > > Get Firefox!
> > > > > > >
> > <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>
> > > > > > > _______________________________________________
> > > > > > > python-chinese list
> > > > > > > python-chinese at lists.python.cn
> > > > > > > http://python.cn/mailman/listinfo/python-chinese
> > > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > python-chinese list
> > > > > > python-chinese at lists.python.cn
> > > > > > http://python.cn/mailman/listinfo/python-chinese
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Blog:http://www.donews.net/changzheng
> > > > >
> > > > > _______________________________________________
> > > > > python-chinese list
> > > > > python-chinese at lists.python.cn
> > > > > http://python.cn/mailman/listinfo/python-chinese
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > I like python!
> > > > My Donews Blog: http://www.donews.net/limodou
> > > > New Google Maillist:
> > http://groups-beta.google.com/group/python-cn
> > > >
> > > > _______________________________________________
> > > > python-chinese list
> > > > python-chinese at lists.python.cn
> > > > http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > > >
> > >
> > > _______________________________________________
> > > python-chinese list
> > > python-chinese at lists.python.cn
> > > http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> > >
> >
> >
> >
> > --
> > 欢迎访问:
> > http://blog.csdn.net/ccat
> >
> > 刘鑫
> > March.Liu
> >
> 



-- 
欢迎访问:
http://blog.csdn.net/ccat

刘鑫
March.Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050712/97b65445/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号