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 · 5407 次点击
    这是一个创建于 4271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
       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  
       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   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:02 · PVG 04:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.