ITPUB??ì3
ITPUB论坛 » 动态语言 » Python是垃圾?(转)


标题: Python是垃圾?(转)
离线 四紫
中级会员



精华贴数 0
个人空间 0
技术积分 1244 (1323)
社区积分 0 (1029403)
注册日期 2006-7-15
论坛徽章:0
      
      

发表于 2006-7-28 20:37 
Python是垃圾?(转)

第一个常见看法是:

python和basic差不多应该是容易学,但是功能弱的语言


basic是好多人的年幼时的回忆了,gvbasic,gwbasic,qbaisc,各种版本把很多人带入了快乐的世界里面。但是很多人都会用了一段时间basic之后就把它废置了,因为觉得除了能够用来play,功能太少。即便是vb,也是功能不甚完善的,很多地方要依靠其他语言写的组件和直接调用api来完成功能。
而python由于粗看之下,也是那么的像玩具。而且那个交互式命令行给人带来的教学语言的感觉更加加强了人们的想法。
但是python其实功能不能说是弱,其实是非常强大。python内置了重要的数据结构和文件这些功能,而且包含了一个很大的标准库,基本上涵盖了从GUI到数据库到网络种种功能上的要求。而且还有很多爱好者,公司企业为python写第三方的库,这些库品种繁多,功能齐全。而且还能把其他语言的库加以包装给自己使用,直接用c这样的语言了来写扩展的库也是可以的。所以说,python像basic一样好学,但是功能却要强大很多。

第二个常见看法是:

python速度很慢,只能用在很少的应用场合

对于习惯了汇编和C++这样的语言的人,思维总是有一个惯性(包括我自己也经历了这么一个阶段)。就是看文件大小是数字节的,任何运行时的overhead都是绝对不可以的。那么一看见python这样的动态语言,而且动态得非常厉害的语言,怎么看怎么不顺眼也是情理之中了。
关键的问题首先是你是否需要省那么个100~200k的大小,现在的内存,硬盘,网络通信环境已经不大在乎这么一点的空间了,所以大小不是问题。关键的是运行时间吗?其实在很多场合下是不需要那么快的速度的,比如开一个窗口,运行如果延时100ms,你感觉得到吗?
python还能够把py文件进行一些处理变成pyc文件,加速源文件的解释执行。像java的虚拟机中的just in time或者hot spot这样的预先读取,预先编译的技术都能构同等的用于python。
python还有一个非常大的好处就是能够用C这样的快速的语言写扩展模块。在软件中一般都是20%的代码占据了80%的运行时间。这样你可以先用benchmark这样的工具看看软件是否慢得无法忍受了,然后再用profiler查出问题瓶颈在哪里,那么就可以把关键的代码用C解决掉。这样可以节省了开发时间(大部分代码用python写,比C快),而且运行速度也可以令人满意。
所以说,对于python的速度是不用多担心的。但是为了客观起见,python的却是慢的,在python中什么都是对象,这个比java这样的不那么纯的OO语言,就要差一些了。

第三个常见问题是:

由于python是动态的,程序更加容易出错了

有这个看法主要是认为,因为python是动态的,所以缺乏静态的类型检查,那么程序中的错误就很难发现了。设置可能说没有执行到的块的语法都没有得到完全彻底的检查。变量由于没有声明,所以容易产生误写的错误。事情真这么糟糕吗?

第一个缺乏类型检查是说一个函数有几个参数,但是由于参数的类型是动态确定的,所以没有办法在静态的时候就检查传入的参数和参数表是否匹配了。问题是你写的函数一定要自己测试了,而且一旦出了问题,你是非常容易找到出错的地方的。dynamic typing是那么灵活好用,多这么一点麻烦也是值得的。

第二个看法就是错误的。在python中所有语法都得到了检查的。即使是处在分支语句中。只是有可能你说的是这样的情况:
a = 1;
明明加了分号,怎么不说我错了呢?其实分号是可以用的,用来格开在一行中的不同语句。
还有可能是这样的:
if a == 0:
  fsdfsdafsad
这个怪东西应该是一个语法错误吧。其实是未必。因为程序运行到这个的时候可能这个名字就绑定到了什么东西上了,未必就是错误。它是符合语句的语法的。

第三个则不是那么回事了。在basic中,你引用一个没有出现过的变量名。那么这个变量自动被分配,而且得到初始化。这个就会出问题了。而python中,你不能引用一个没有绑定到对象上的名字,而
name = 0
这样的语句就是一个声明了。没有什么问题。
name = 0
nama = 1
这个总是问题了吧。对于变量名的误拼写出现在赋值的情况的时候就会被通过,因为认为是产生一个新的名称绑定。那么这个也好找出来啊,必然是出现在赋值的情况下,比basic中的那种情况好多了

总体来说是,dynamic的东西缺少一些静态的检查的却是会使得错误隐蔽一些。但是由于动态带来的调试上的方便(比如能够一眼从出错信息中找到出错的行,以及调用流程)足以把副作用给抵消了。

希望通过我的一点解释,能够让你消去疑惑,喜欢上python。


只看该作者    顶部
离线 blackjimmy
初级会员



精华贴数 0
个人空间 0
技术积分 4 (137572)
社区积分 0 (415967)
注册日期 2005-5-20
论坛徽章:0
      
      

发表于 2006-7-29 13:27 
我刚开始学习python,先前学过c,不过都忘了,感觉python挺不错


只看该作者    顶部
离线 way out
初级会员



精华贴数 0
个人空间 0
技术积分 18 (55539)
社区积分 0 (229637)
注册日期 2004-12-20
论坛徽章:0
      
      

发表于 2007-9-5 15:19 
python让我找到了目标,嘿嘿~~~虽然也很喜欢汇编和C,但是觉得python是我现在最应该学的


只看该作者    顶部
离线 iooyoo
迷眼流金


精华贴数 0
个人空间 20
技术积分 4018 (321)
社区积分 3386 (369)
注册日期 2006-6-15
论坛徽章:20
现任管理团队成员2008年新春纪念徽章    
      

发表于 2007-9-7 16:14 
上手中


__________________

使君欲醉离亭酒
酒醒离愁转有
紫禁多时虚右
苕霄留难久
一声歌掩双罗袖
日落乱山春后
犹有东城烟柳
青荫长依旧
只看该作者    顶部
离线 忍者神龟



精华贴数 1
个人空间 0
技术积分 4575 (277)
社区积分 3796 (339)
注册日期 2002-7-22
论坛徽章:11
现任管理团队成员ITPUB元老会员2007贡献徽章会员2006贡献徽章九尾狐狸生肖徽章2007版:兔
生肖徽章2007版:蛇2008年新春纪念徽章    

发表于 2007-9-10 12:34 
看看有多少人用就知道是不是垃圾了,呵呵。


__________________
只看该作者    顶部
离线 shiren1118
Groovy脚本小孩


来自 长春工业大学050507
精华贴数 0
个人空间 0
技术积分 1269 (1293)
社区积分 16 (8153)
注册日期 2007-3-14
论坛徽章:7
授权会员生肖徽章2007版:鸡开发板块每日发贴之星开发板块每日发贴之星ITPUB新首页上线纪念徽章开发板块每日发贴之星
开发板块每日发贴之星     

发表于 2007-9-12 21:47 
呵呵。楼上有意思


__________________
今天的努力换取明天别人的尊重

Groovy脚本小孩的论坛


Groovy脚本小孩
只看该作者    顶部
离线 qwby67522800
暖暖


精华贴数 0
个人空间 0
技术积分 1953 (789)
社区积分 1264 (757)
注册日期 2007-6-5
论坛徽章:15
会员2007贡献徽章玉石琵琶授权会员生肖徽章2007版:兔生肖徽章2007版:鼠生肖徽章2007版:猴
生肖徽章2007版:牛生肖徽章2007版:鸡生肖徽章2007版:虎生肖徽章2007版:鼠ITPUB新首页上线纪念徽章数据库板块每日发贴之星

发表于 2007-9-25 10:26 


QUOTE:
最初由 忍者神龟 发布
看看有多少人用就知道是不是垃圾了,呵呵。

用python的人好像很多啊~真的期待它能更加的出色点


__________________
揭谛揭谛
波罗揭谛波罗僧
揭谛菩提娑婆诃
只看该作者    顶部
离线 saromman
初级会员



精华贴数 0
个人空间 0
技术积分 34 (34815)
社区积分 0 (59735)
注册日期 2002-8-6
论坛徽章:0
      
      

发表于 2007-10-7 18:54 
有个程序员推荐我学PYTHON,我打算明天开始学习


__________________
MSN:zhang-rui-peng@hotmail.com
QQ:45185852
闲聊勿扰
只看该作者    顶部
离线 X-Power
老会员



精华贴数 0
个人空间 0
技术积分 782 (2333)
社区积分 47 (4797)
注册日期 2006-6-14
论坛徽章:4
行业板块每日发贴之星ITPUB新首页上线纪念徽章开发板块每日发贴之星开发板块每日发贴之星  
      

发表于 2007-10-7 22:22 
看看有多少人用就知道是不是垃圾了,呵呵。


__________________
只看该作者    顶部
离线 alonemo
半人间



精华贴数 0
个人空间 0
技术积分 3241 (429)
社区积分 145 (2650)
注册日期 2004-10-8
论坛徽章:10
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员ERP板块每日发贴之星ITPUB新首页上线纪念徽章
设计板块每日发贴之星开发板块每日发贴之星行业板块每日发贴之星行业板块每日发贴之星  

发表于 2007-10-9 14:43 
PYTHON是什么意思啊


__________________
做人太苦,成仙太难
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问