论坛首页 编程语言技术论坛

python 之禅

浏览 15376 次
锁定老帖子 主题:python 之禅
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-19  
抱歉,没有贬低您的意思。我只是想强调好的设计对可维护性的重要性。冒犯之处请包含。

我曾经两次想学 python 都放弃了,原因是每次一看到那个缩进,我就禁不住骂 “what the fuc king ....”。等到第三次终于耐下心来学上手了,才发现这个缩进其实很是不错。可是就算你是 python 大牛,用不支持 indentation guide 的编辑器我觉得也不容易进行 code review。pydev 做的还不错,但是好象不支持 indentation guide。jedit 支持,但是其它方面就比较弱。indentation guide 最大的好处是让缩进块的层次一目了然。

软件开发要选对语言。如果你用 python 开发的软件库可维护性很差,如果不是设计问题,那就是选错了语言。没有哪个语言是完美的,我们应该按实际需要来选择语言。我觉得 python 主要是一种 glue 语言,主要的优点就是简单方便,缺点是性能比 java 这样的静态语言差很多,IDE 支持也不足。

变量的追踪可以用自动化的 pylint,当然不要指望能达到 java 这样的静态语言的程度。

至于实际使用中的可维护性,我觉得单靠语言也是不够的,还需要架构设计、文档和 code review。

抱歉没法建议一个真正符合你的 IDE。我自己一般是用 jedit。python 的 api 一般都很简单也很好记,所以很少需要用到自动提示。

quhxuxm.quh 写道
首先说一下,俺不是来打口水战的,那种帖子看多了没意思。俺是真的被这语言折磨得不行了。俺好歹也编了七八年的程序,好代码,赖代码也编了一堆,对于程序内部的逻辑和架构的合理性俺还是有自信的。

说实话,我接触Python时间不长,以前一直编Java,所以或多或少会把Python和Java比较。咱们不说什么架构,效率之类的在这里显得很苍白的东西,咱们只说支持Python的IDE。

我现在用eclipse加上Weblogic插件编写Python和WLST脚本,我找了很多编辑器,经过比较最终觉得eclipse还算可以,但是即使这样还是有几点我不是很满意:

1. API的自动提示功能很差,几乎就没有。
2. 缩进几乎变成了整个语言的关键字,虽然eclipse有比较强大的编辑功能,也能够显示空格和Tab,但是脚本文件一大起来好多循环和判断光看缩进就够看一阵子的。
3. 语法错误检查很差,经常会有莫名其妙的报错,但是实际上语法是没问题的,比如下面的语句:

def __new__(clazz):
    return object.__new__(clazz);

def __new__ 这一行竟然还会报错,而实际上这在语法上没有问题,所以我觉得很可能是大部分人使用Python编写面向过程的脚本,而我编写的是面向对象的API库,因此对于eclipse来说这一行语句属于极少被调用的,所以eclipse也没有测试过。

4. 单独使用Python还算好,万一把Jython也加进来整个代码就变得更让人恶心,由于过于弱化语言的结构与类型检查,很多变量到后来几乎难辨类型,IDE的检查几乎就更不起作用了,在维护时好多代码要从头看起才能够明白,对于有经验的程序员还好,对于新人来说这种代码看起来绝对头大。

我写Python的时间不长,而且也不是我的主要工作,我主要还是写Java,因此经常会用考虑Java的想法来考虑Python,希望高人能指点一个强大一点的IDE,让我领略一下Python真正的优美之处,而不是一味的对我这种在实际工作中碰到了问题的人进行贬低。

0 请登录后投票
   发表时间:2011-01-19  
smartkenny 写道
抱歉,没有贬低您的意思。我只是想强调好的设计对可维护性的重要性。冒犯之处请包含。

我曾经两次想学 python 都放弃了,原因是每次一看到那个缩进,我就禁不住骂 “what the fuc king ....”。等到第三次终于耐下心来学上手了,才发现这个缩进其实很是不错。可是就算你是 python 大牛,用不支持 indentation guide 的编辑器我觉得也不容易进行 code review。pydev 做的还不错,但是好象不支持 indentation guide。jedit 支持,但是其它方面就比较弱。indentation guide 最大的好处是让缩进块的层次一目了然。

软件开发要选对语言。如果你用 python 开发的软件库可维护性很差,如果不是设计问题,那就是选错了语言。没有哪个语言是完美的,我们应该按实际需要来选择语言。我觉得 python 主要是一种 glue 语言,主要的优点就是简单方便,缺点是性能比 java 这样的静态语言差很多,IDE 支持也不足。

变量的追踪可以用自动化的 pylint,当然不要指望能达到 java 这样的静态语言的程度。

至于实际使用中的可维护性,我觉得单靠语言也是不够的,还需要架构设计、文档和 code review。

抱歉没法建议一个真正符合你的 IDE。我自己一般是用 jedit。python 的 api 一般都很简单也很好记,所以很少需要用到自动提示。

quhxuxm.quh 写道
首先说一下,俺不是来打口水战的,那种帖子看多了没意思。俺是真的被这语言折磨得不行了。俺好歹也编了七八年的程序,好代码,赖代码也编了一堆,对于程序内部的逻辑和架构的合理性俺还是有自信的。

说实话,我接触Python时间不长,以前一直编Java,所以或多或少会把Python和Java比较。咱们不说什么架构,效率之类的在这里显得很苍白的东西,咱们只说支持Python的IDE。

我现在用eclipse加上Weblogic插件编写Python和WLST脚本,我找了很多编辑器,经过比较最终觉得eclipse还算可以,但是即使这样还是有几点我不是很满意:

1. API的自动提示功能很差,几乎就没有。
2. 缩进几乎变成了整个语言的关键字,虽然eclipse有比较强大的编辑功能,也能够显示空格和Tab,但是脚本文件一大起来好多循环和判断光看缩进就够看一阵子的。
3. 语法错误检查很差,经常会有莫名其妙的报错,但是实际上语法是没问题的,比如下面的语句:

def __new__(clazz):
    return object.__new__(clazz);

def __new__ 这一行竟然还会报错,而实际上这在语法上没有问题,所以我觉得很可能是大部分人使用Python编写面向过程的脚本,而我编写的是面向对象的API库,因此对于eclipse来说这一行语句属于极少被调用的,所以eclipse也没有测试过。

4. 单独使用Python还算好,万一把Jython也加进来整个代码就变得更让人恶心,由于过于弱化语言的结构与类型检查,很多变量到后来几乎难辨类型,IDE的检查几乎就更不起作用了,在维护时好多代码要从头看起才能够明白,对于有经验的程序员还好,对于新人来说这种代码看起来绝对头大。

我写Python的时间不长,而且也不是我的主要工作,我主要还是写Java,因此经常会用考虑Java的想法来考虑Python,希望高人能指点一个强大一点的IDE,让我领略一下Python真正的优美之处,而不是一味的对我这种在实际工作中碰到了问题的人进行贬低。




试了一下 Eric Python IDE,也许能满足一部分你的需要:http://eric-ide.python-projects.org/eric-download.html 在 ubuntu 下安装很简单。有 indentation guide,也有自动补全。

还有这个是老牌的了,不过是商业版:http://www.wingware.com/


0 请登录后投票
   发表时间:2011-01-20  
一般情况下,一开始就接触面向对象思想的人很难适应PHP、Python这些语言。
0 请登录后投票
   发表时间:2011-01-28  
quhxuxm.quh 写道
我对Python语言一直感觉到很无奈,前些阶段因为项目需要编写了一些Python脚本,说句实在话,这个语言给我的感觉就是:做了一场噩梦,真的,没有贬低这门语言的意思,只是觉得他实在是太难维护了,特别是语句的层次是使用缩进完成的,看得我眼花。

不过这门语言被广泛的用在WLST中,我觉得这点很重要,也是我不得不去学习他的原因,有了他我才能更深入的了解到Weblogic内部的结构,但也仅此而已了。

因此,站在工业角度,我觉得这种语言还是能不用就不用,维护起来成本很高,建议各个公司的管理者也都理智一些,不要人云亦云的认为奇特,新潮的脚本语言就是编程语言的发展趋势,真所谓是:苦了程序员,又乐不到用户


哥们你搞错了吧,python的强制缩进是用来控制代码风格,避免强烈的个人风格。拿python开发东西Quick and not Dirty.
0 请登录后投票
   发表时间:2011-01-30  

如果没有盗版心理洁癖,强烈建议用WingIDE,破解很容易,支持 indentation guide,智能提示也很棒
0 请登录后投票
   发表时间:2011-05-05  
applepaihs 写道
同情一下LS的,俺也是写java的,现在刚开始看Python。。。


从java到python编写代码还习惯啦?上手快吗?
0 请登录后投票
   发表时间:2011-05-06  
python之禅 
总结得很好,也适用于其他语言的开发
0 请登录后投票
   发表时间:2011-05-11  
if(i!=我){} 写道
一般情况下,一开始就接触面向对象思想的人很难适应PHP、Python这些语言。


原来我不一般。。

其实没什么的,照样可以用php,python开放OO的程序,高兴就好。
0 请登录后投票
论坛首页 编程语言技术版

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