Python的哲学是要求代码简单,哪什么样的代码是不简单? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
imcj

Python的哲学是要求代码简单,哪什么样的代码是不简单?

  •  
  •   imcj
    imcj Mar 3, 2013 6200 views
    This topic created in 4803 days ago, the information mentioned may be changed or developed.
    23 replies    1970-01-01 08:00:00 +08:00
    Yakumo
        1
    Yakumo  
       Mar 3, 2013   1
    比如两个版本同时使用 还没有向前兼容性
    Livid
        2
    Livid  
    MOD
    PRO
       Mar 3, 2013
    Java is very complicated.
    ivanlw
        3
    ivanlw  
       Mar 3, 2013
    C++ is very very complicated.
    aveline
        4
    aveline  
       Mar 3, 2013
    歪个楼。

    「听好儿子,要提出目标,但不可盲目追随它」「我明白了爸爸,就像Python那样提出『只采用唯一正确的方法』那样的目标,实际上却存在2、3版本的不兼容」「住口!」「urllib和urllib2」「住口!!!」 #译自日语推
    Hualin
        5
    Hualin  
       Mar 3, 2013
    你没做过复杂的事情就不会明白简单。
    SharkIng
        6
    SharkIng  
       Mar 3, 2013
    我觉得这个东西很好说,比如Java里面你每个Function后面都需要用 {} ,If While的也需要,但是Python直接一个:解决问题,这个算不算简单?
    还有Python基本上来说就是纯英语堆积,If就是if,else if 就是else if ,这个也算是简单了吧
    然后就是我刚开始学Java的时候,总是忘记每句话后面的 ; 其实这个东西有时候觉得是多余的,Python就没有这个,简单了吧
    shawiz
        7
    shawiz  
       Mar 3, 2013
    python 是 elif
    pepsin
        8
    pepsin  
       Mar 3, 2013
    Java你写个 hello world和 Python,Ruby写个Hello World对比下你就知道了
    phuslu
        9
    phuslu  
       Mar 3, 2013
    python -c "import this"

    说明了一部分。
    pppab
        10
    pppab  
       Mar 3, 2013
    诸位还停留在语法的简单和不简单上,那我说haskell的函数定义比python短的多是不是它就是“简单”呢?
    clowwindy
        11
    clowwindy  
       Mar 3, 2013
    我来黑一下 Python

    urllib.quote
    urllib.quote_plus

    urllib2

    socket.gethostbyname
    socket.gethostbyname_ex

    shutil.copy
    shutil.copy2
    shutil.copyfile

    os.wait
    os.wait3
    os.wait4

    os.popen
    os.popen2
    os.popen3
    os.popen4
    dndx
        12
    dndx  
       Mar 3, 2013
    Python 是 community powered ,不同的人贡献同样的代码,urllib urllib2 就是很好的例子。

    Java 的高级面向对象特性的确很复杂,但是在开发复杂或者大型应用时相当有用。

    另外 Java 是 enterprise powered ,API十分统一,JVM 的性能也要比 Python 好上很多。
    sivacohan
        13
    sivacohan  
    PRO
       Mar 3, 2013 via Android
    软件开发通常是 快 好 省 三选二,python的哲学主要是选了快和好。
    jjx
        14
    jjx  
       Mar 3, 2013   1
    python的库的很多问题是历史问题,没办法的,python 从来就是不温不火的发展着的

    不简单的代码,我可以举两个常见的
    几百上千的sql
    过多xml配置的代码,比方说spring的
    zhangkai_ch
        15
    zhangkai_ch  
       Mar 3, 2013
    我也是最近学习了python,之前是C、C++。觉得python学会很快,但是有些语法书上好像也没讲,变化也蛮快的。代码比较灵活。
    est
        16
    est  
       Mar 3, 2013
    @clowwindy 你黑的是posix。
    pppab
        17
    pppab  
       Mar 3, 2013
    @dndx +1
    这里的复杂和简单应当是实现一个功能的做法是否直接(比如C语言经常用到void*,就非常fuzzy)。
    Java只是在编写的时候有些麻烦,但就语言的本质来说,清晰的接口、强制错误处理等非常的不复杂。

    上面说Java复杂的几位我看也就是写写python的script kids。
    clowwindy
        18
    clowwindy  
       Mar 3, 2013
    @est 这个不能怪 posix,只能怪 Python
    FrankHB
        19
    FrankHB  
       Mar 3, 2013
    @pppab Java简单?撸个Hello world还要折腾遍类名和public stupid void man的简单?没free functions得撸一堆tool classes的简单?伪劣泛型骗人的简单?到处乱扔checked exceptions的假单?脱离代码生成连个mixin都撸不了的简单?
    insraq
        20
    insraq  
       Mar 3, 2013
    Python的2to3问题,还有各种丑陋的lib是一大硬伤:http://python-for-humans.heroku.com/#1
    pppab
        21
    pppab  
       Mar 3, 2013   1
    @FrankHB 好我错了,Java不简单。只是我不知道现在我负责的这个企业项目如果不用Java会棘手到什么程度。
    meta
        22
    meta  
       Mar 3, 2013
    语法上且不说,但java的编程模式就是委托、委托再委托,所以看原代码的的时候,如果不把整个系统看完,根本就搞不清楚一个类到底是干啥的。
    pepsin
        23
    pepsin  
       Mar 3, 2013
    @pppab Java语法上的复杂貌似是有性能上的考量。也不奇怪。Python,Ruby这些都是短平快,就是最快完成目标,性能等做大再说。其实不好比较的。

    做简单的事,用Java费劲死了,比如写个Hello World,建个小博客啥的。看砍什么目标,用什么刀了啦。
    About     Help     Advertise     Blog     API     FAQ     Solana     3186 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 66ms UTC 13:52 PVG 21:52 LAX 06:52 JFK 09:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86