Python的哲学是要求代码简单,哪什么样的代码是不简单? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
V2EX    Python

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

  •  
  •   imcj
    imcj 2013-03-03 02:26:30 +08:00 5854 次点击
    这是一个创建于 4614 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    1970-01-01 08:00:00 +08:00
    Yakumo
        1
    Yakumo  
       2013-03-03 02:58:13 +08:00   1
    比如两个版本同时使用 还没有向前兼容性
    Livid
        2
    Livid  
    MOD
    PRO
       2013-03-03 03:04:03 +08:00
    Java is very complicated.
    ivanlw
        3
    ivanlw  
       2013-03-03 03:05:16 +08:00
    C++ is very very complicated.
    aveline
        4
    aveline  
       2013-03-03 04:20:37 +08:00
    歪个楼。

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

    说明了一部分。
    pppab
        10
    pppab  
       2013-03-03 10:16:54 +08:00
    诸位还停留在语法的简单和不简单上,那我说haskell的函数定义比python短的多是不是它就是“简单”呢?
    clowwindy
        11
    clowwindy  
       2013-03-03 11:06:18 +08:00
    我来黑一下 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  
       2013-03-03 11:16:46 +08:00
    Python 是 community powered ,不同的人贡献同样的代码,urllib urllib2 就是很好的例子。

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

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

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

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

    做简单的事,用Java费劲死了,比如写个Hello World,建个小博客啥的。看砍什么目标,用什么刀了啦。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     932 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 18:29 PVG 02:29 LAX 11:29 JFK 14:29
    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