推荐学习书目
› 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
luztak
V2EX  ›  Python

Python是个烂语言

  •  
  •   luztak ·
    luztak · Feb 27, 2013 via Android · 22592 views
    This topic created in 4997 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Feb 27, 2013
    这个站还用了ORCA 囧
    78 replies  •  1970-01-01 08:00:00 +08:00
    simomo2010
    simomo2010
    Feb 27, 2013
    1
    “python写超过1000行代码就虐心”:
    - 这个结论不知道怎么得出来的,或许是1000行代码都在一个函数里,然后里面有七八十来层‘if’分支,‘for’循环。不过话说回来 任何语言这么写都虐心

    关于缺乏在编译阶段的bug检测的缺失:
    - 去年pycon us大会上 龟叔做的keynote speech 里也针对这点说了,靠编译器帮你检查bug这本身就是错误的,作为coder需要做的是编写合适的测试代码,提高测试的覆盖度,将bug发现在源头,而不是写完之后,就扔给编译器,让他给你差错

    运行效率:
    - 这个就是老生常谈了,效率敏感的地方用c写,或者用cython也不错,pypy某些时候也是一种选择,还不能满足?好吧 那确实这个项目不适合python,但世上有多少项目是这样的呢?python并不能解决所有问题,只是能快速,优雅,方便的解决绝大部分问题而已

    ”python是python之父的玩具“:
    - 我想这句话本身就是错的,python在最开始的时候 或许就是龟叔的一个玩具,但是在其后20多年的发展中,已经变成了一个凝聚了整个python社区心血的伟大的开源项目,虽然不清楚这位’Dr.菜‘是何许人也,但是我想不论是谁,都没资格用’玩具‘来评价它
    tioover
    tioover
    Feb 27, 2013 via Android❤️1
    2
    该网站的安全证书不受信任!
    saharabear
    saharabear
    Feb 27, 2013
    3
    这网站自称技术第一的开源社区?
    clino
    clino
    Feb 27, 2013
    4
    不用对这种言论当真.
    云风是QQ黑,C++黑,windows黑(软件开发方面),这几个我都蛮同意的.
    saharabear
    saharabear
    Feb 27, 2013❤️1
    5
    @clino 笑喷了,你不提我还真没注意(我读完了他们的帖子,你不提我真没注意到云风了躺枪),他们说云风是SB,就因为C++....笑喷了..

    我觉得技术人员心直口快也足够让咱们这种技术圈子增加各种笑料了.

    我不是C++黑,可是我几年都学不会C++.
    phuslu
    phuslu
    Feb 27, 2013❤️1
    6
    很有说书人的范,我赞同部分观点,不过举例的部分"戏说"了。

    目测此帖会火。
    G0dBlessMe
    G0dBlessMe
    Feb 27, 2013
    7
    哈哈
    armin
    armin
    Feb 27, 2013
    8
    https://avlog.avplayer.org/ 这是啥网站?!
    august
    august
    Feb 27, 2013
    9
    樓主是不是有個姑娘跟你打賭了?
    keakon
    keakon
    Feb 27, 2013
    10
    主观的东西就不说了,Python 历史比 Java 悠久啊…
    chaos186
    chaos186
    Feb 27, 2013
    11
    看完第一反应是:这是说相声吧
    kran
    kran
    Feb 27, 2013
    12
    看完这个 才知道自己已经不是最最底层的码农了 哇哈哈
    justfindu
    justfindu
    Feb 27, 2013
    13
    你们都不关注域名很奇怪么~
    Asimov
    Asimov
    Feb 27, 2013
    15
    Python的确挺慢的,不过语法优美简洁,库比较齐全。挺好。
    raincious
    raincious
    Feb 27, 2013
    16
    嗯……这个看个人喜好吧。我刚开始学Python的时候也不太喜欢它,现在我刚开始学Python。
    wenbinwu
    wenbinwu
    Feb 27, 2013
    17
    firefox告诉我证书有问题,我就没进去看
    RisingV
    RisingV
    Feb 27, 2013
    18
    解释形语言需要运行时排除语法错误,这点确实是硬伤
    subpo
    subpo
    Feb 27, 2013
    19
    这是啥网站,看起来很有意思
    RisingV
    RisingV
    Feb 27, 2013
    20
    it seems that go does the right thing and does it right...
    ccming
    ccming
    Feb 27, 2013❤️1
    21
    这个世界早晚是 Ruby 的
    clino
    clino
    Feb 27, 2013
    22
    @RisingV python的语法错误完全可以在编写的时候检查
    应该说是动态语言和静态语言在静态类型检查上的不同,这个跟是否解释型语言没关系,只是因为解释型语言大多是动态语言
    而动态类型可不一定是短处,本身是会带来很多好处的
    lookhi
    lookhi
    Feb 27, 2013
    23
    我觉得吧python不错。至少我们的网站就是用python做出来的,能达成需求就好。
    Mac
    Mac
    Feb 27, 2013
    24
    这货用xampp搭的肉鸡网站吧?
    daweiba
    daweiba
    Feb 27, 2013
    25
    「听好儿子,要提出目标,但不可盲目追随它」
    「我明白了爸爸,就像Python那样提出『只采用唯一正确的方法』那样的目标,实际上却存在2、3版本的不兼容」
    「住口!」
    「urllib和urllib2」
    「住口!!!」
    soulhacker
    soulhacker
    Feb 27, 2013
    26
    C/C++ Java 这些静态编译型语言确实有的一大优势是高度优化的编译和静态代码检查,前面有朋友引用 Guido van Rossum 的话说「靠编译器找错误是不对的」,这说法不完全赞同,好的编译器和静态、动态代码检查确实能够极大的提升开发效率,尤其是比较大型的项目,测试驱动并不是万灵药,本身效率也不是那么的高。

    当然万事有得必有失,他们也缺乏现代动态语言的很多优势,这是要辩证去看的。
    clino
    clino
    Feb 27, 2013
    27
    @daweiba 库的问题跟语言本身没关系,这种问题的形成跟python开源的发展方式有关系
    est
    est
    Feb 27, 2013
    28
    python这个强类型语言被黑出翔了。。。。
    lecher
    lecher
    Feb 27, 2013
    29
    Dr. cai 貌似就是蔡万钊,在很多社区都是实名注册的。比如chinaunix
    http://bbs.chinaunix.net/home.php?mod=space&uid=23924138&do=thread&type=reply&view=me&from=space

    目前Dr.cai 维护着几个C++的项目这是他的github:https://github.com/microcai/
    这是他的blog: http://microcai.org/

    神奇的是此人chinaunix的自我介绍是本科退学,学历又是博士
    tangzx
    tangzx
    Feb 27, 2013
    30
    看了网站的第一感觉,被几行闪闪发光的红字亮瞎了眼
    reorx
    reorx
    Feb 27, 2013❤️1
    31


    just a troll..
    RisingV
    RisingV
    Feb 27, 2013
    32
    @clino 和动态静态没有关系,我说的是部分解释型语言的缺点,比如shell,函数声明都必须在前面。纯粹逐行解释,没有全文遍历的解释型语言都会有这个问题。但,但凡动态语言,基本都是解释型的,js、python之类的解释型语言通过词法分析和语法分析得到语法树后,就可以开始解释执行,语义上的错误必须在运行期才能发现。所以真正的错误运行了才知道。如果没有足够的测试用例覆盖所有的代码,其可靠性比静态语言真差远了。
    RisingV
    RisingV
    Feb 27, 2013
    33
    大拿说的话,听了就当真理。也不搞清楚人家什么意思,显而易见的错误当然由编译器抵下了,业务逻辑上的bug,自然不能依赖编译器。
    RisingV
    RisingV
    Feb 27, 2013
    34
    @ccming 用个golang mascot的头像,帮ruby说话,太没节操啦。。。。。
    dreampuf
    dreampuf
    Feb 27, 2013
    35
    http://microcai.org/2012/12/25/whypythonbad.html

    并发,脚本解释类型带来的开发环境问题
    这两个问题虽然老生常谈,不过因时而异,可以继续讨论。

    编译检查,1000行,开发效率不行,执行效率也不行。。。其他主观(发行版强推,玩具,。。。)
    这些就可以当作放屁了

    总之给我的感觉是非科班出身,随便鼓捣玩玩,不求甚解,广度有余深度不足。浮躁。
    clino
    clino
    Feb 27, 2013
    36
    @RisingV 动态语言不一定是解释型语言,python可以说是编译型语言而不是解释型的,因为基本上都是编译成字节码(文件上看是pyc或pyo)以后再执行的,是解释型还是编译型在这里不是重点

    "没有全文遍历的解释型语言都会有这个问题"python当然可以完整分析完所有的源文件,所有语法错误完全没问题.但关键是在动态,里面的很多东西在运行期才能知道的,很多java/c/c++在解析完文件以后能确定的东西对于动态语言是无法确定的.
    RisingV
    RisingV
    Feb 27, 2013
    37
    @clino 你说的其实应该归为第三类分类,字节码是种中间状态,而非二进制。java有JIT,所以还是将其归为编译语言。
    zuroc
    zuroc
    Feb 28, 2013
    38
    monkeylyf
    monkeylyf
    Feb 28, 2013
    39
    唉 又一轮的online masturbaxxxx.
    cicku
    cicku
    Feb 28, 2013
    40
    microcai 又被喷了。。啊哈哈哈、、

    我们邮件列表的。

    以前听说在新浪。
    lyric
    lyric
    Feb 28, 2013 via Android❤️1
    41
    此人是中文开源社区的大喷子
    workaholic
    workaholic
    Feb 28, 2013
    42
    有意思么,高手根本不在乎用什么语言
    BOYPT
    BOYPT
    Feb 28, 2013
    43
    呵呵
    clino
    clino
    Feb 28, 2013
    44
    @RisingV 你这是概念不清. 解释/编译和静态/动态类型这两个根本是两个独立的方面.

    照你说的有jit就是编译型语言了?那所有这些语言都可以用jit的,就是javascript也可以.
    rorvn
    rorvn
    Feb 28, 2013
    45
    这货是中文linux圈的一朵奇葩,在#ubuntu-cn偶尔会遇到
    FrankHB
    FrankHB
    Feb 28, 2013
    46
    编译/解释型是对语言实现而言的,对语言分类本来就是扯蛋的(因为通常使用的实现形式的)偷懒说法。
    想想Lisp是编译还是解释型的?C的实现就一定要有编译器?
    aisk
    aisk
    Feb 28, 2013
    47
    @RisingV 非常不认同你的观点,jit和是否编译没有直接关联,上面说了js就是个例子。本来语言就没办法说是否编译/非编译,还得看具体实现了,Java还有GCJ这个AOT编译器呢,C还有很多人写解释器呢。
    就算从具体实现看,那编译到字节码然后解释执行算编译还是解释?全程jit执行又算什么?
    cicku
    cicku
    Feb 28, 2013
    48
    @lyric 对。。。
    cicku
    cicku
    Feb 28, 2013
    49
    @lyric 对。。。
    @rorvn fedora chinese 经常见。
    matz
    matz
    Feb 28, 2013
    51
    对于Python和Ruby来说,我都觉得差不多。。。
    RisingV
    RisingV
    Feb 28, 2013
    52
    @clino
    @aisk
    理论上是不存在编译和解释的分类,两者皆可实现。但是我们还是会以其通常的执行方式作为区分。我一直认为java之类的就是第三类存在,字节码也有自己的指令集,相当于一种虚拟的汇编,而再vm解释成二进制。用字节码技术的语言,有编译型语言的执行效率,但同时又可以具备更多的动态特性。
    RisingV
    RisingV
    Feb 28, 2013
    53
    @workaholic 我认为高手最在乎用什么语言,不同语言之间简直就是不同的宗教,为信仰而言。用热衷函数语言的和热衷OO的几乎是两个世界的人
    RisingV
    RisingV
    Feb 28, 2013
    55
    @keakon 文章见解倒蛮独到的,一直很反感GB系列的编码,没想到还有其自身优势。但是从非技术层面来说,unicode以及得到推广,用起来比较方便,为了省几个字节而用中国国标,老外肯定不答应。
    aisk
    aisk
    Feb 28, 2013
    56
    @RisingV 那你怎么解释gcj呢?
    RisingV
    RisingV
    Feb 28, 2013
    57
    @aisk gcj诞生于openjdk诞生之前,人们希望有一个开源的选择。如今用得不多了吧。我试用过,执行不一定比jre快,更多时候还要慢。

    刚才已经说了,语言规范是脱离于实现的,但是还是会按照主流使用方式和惯例,把XX语言说成编译型,把XX语言说成是解释型,这样比较有实际的参考价值。
    aisk
    aisk
    Feb 28, 2013
    58
    @RisingV 那遇到没主流使用和习惯的语言怎么分类呢?比如lisp系的各种方言?Scheme常用的几个,Guile是字节码+jit,chicken是编译到c->再到机器码,这又怎么算呢?

    我还是觉得,脱离实现讨论语言是耍流氓。
    RisingV
    RisingV
    Feb 28, 2013
    59
    @aisk 那你就认为我是耍流氓把。这些叫法确实都是convention或者tradition,而不是一个truth。LISP的情况在习惯中确实没有被划分到任何一种,那么这就是它的convention,遵循它就是了。
    est
    est
    Feb 28, 2013
    60
    @RisingV 那是你还没碰到unicode的坑。unicode巨烂我同意。utf8mb4受害者路过。
    dreampuf
    dreampuf
    Feb 28, 2013
    61
    @cicku 89年的小同志,闭嘴,干正经事儿,将来世界会是他们的。
    clino
    clino
    Feb 28, 2013
    62
    @RisingV "理论上是不存在编译和解释的分类,两者皆可实现" 服了,是你一直在用解释型语言来说python的缺点,我指出你的理解错误,然后你又来个理论上不存在

    具体对于某个实现例如cpython,当然可以用这个分类来分了
    RisingV
    RisingV
    Feb 28, 2013
    63
    @clino 这句话完全成立,主要也是和aisk同学说的。具体实现当然有分类,这是废话。但谈论语言(本身只是一套规范)的分类不一定有结果,因为不一定只有一种类型的实现,怎么叫只是因为惯例,就这么简单。仔细看一下前文,我只是说部分解释型语言(如果你一定要咬文嚼字的话,就是部分语言的解释型实现)的缺点。我对python不够了解(也没兴趣),通过DR.蔡 的这番论述,以为它也有这个缺点,这点你已经说清楚。我对python没有好恶,你也不必护主心切了
    clino
    clino
    Feb 28, 2013
    64
    @RisingV 以我的了解其实现在的动态类型语言的实现基本上都采用编译型甚至用上jit了,纯粹解释型的应该是很少.对python的缺点我是很清楚的,我之前写的这些完全扯不上护主,不要因为我指出你的理解错误难堪而乱讲话.
    RisingV
    RisingV
    Feb 28, 2013
    65
    @clino 这个所谓的“理解错误”是你一厢情愿的,我承认的是我以为python有shell那样的缺点,那是因为我对它确实不了解。至于你扯解释和动态语言的关系,真的都是你一厢情愿。不妨看一下聊天记录。
    dexter
    dexter
    Feb 28, 2013
    66
    对!!!
    无限支持python是烂语言
    lol
    veggie
    veggie
    Feb 28, 2013
    67
    @dexter 哈哈,用ruby的无压力
    workaholic
    workaholic
    Feb 28, 2013
    68
    @RisingV 我并没有否认各个语言之间的差异,同样是用一个差的语言,高手也能编出nb的程序,就看你水平了,只有“半瓶醋”才讨论哪个语言好哪个不好
    RisingV
    RisingV
    Feb 28, 2013
    69
    @workaholic
    最初接触编程的时候我的想法和你是一样的。好比武学的“无招胜有招”,听上去不错,好比世界大同的美好愿望,看上去美好,但实际却不现实。

    聪明人不会干费劲不讨好的事情,高手有能力去驾驭任何语言,但不代表他有必要去用一门拙劣的语言干NB的事情。事实是,那样不NB,反而显得很不明智。

    很多linux kernel党就都不怎么喜欢C++(我没有贬低C++的意思),就是个例子。

    你可以看看《黑客与画家》,看看保罗•格雷厄姆对编程语言的观点。
    workaholic
    workaholic
    Feb 28, 2013
    70
    @RisingV 这和世界大同怎么能搞到一起去,高手就是高手,编程语言都是他们设计出来的。你回去好好看看,第14章标题下面写着“一种好的编程语言,是让黑客可以随心所欲使用的语言”,你是在帮我证明我的观点
    workaholic
    workaholic
    Feb 28, 2013
    71
    RisingV
    RisingV
    Feb 28, 2013
    72
    @workaholic 你真的理解我说什么了吗?你真的看那本书了吗?雷死我了。和你讨论这个就是我的错误
    workaholic
    workaholic
    Feb 28, 2013
    73
    @RisingV ......没看过的话和你在这墨迹有意思么,希望你再看看
    myrual
    myrual
    Mar 1, 2013 via iPhone
    74
    哇,有空吵架不如赶紧多删除几行无用代码节省宝贵的硬盘空间
    FrankHB
    FrankHB
    Mar 3, 2013
    75
    @workaholic 似乎你在说Paul Graham是半瓶醋?
    asstar
    asstar
    Mar 8, 2013
    76
    pypy不是也有jit么。还有ironpy和jython等实现,以编译论语言者其实没多大意思。而且现在大部分动态语言都是先编译成opcode的。
    动态语言本来带来的是开发效率,如果非要和c/c++比性能,那就没意思了。如果真有开发效率和性能都高过c/c++的动态语言,那还有c/c++存在的价值么?
    shiran
    shiran
    Mar 9, 2013
    77
    这是什么网站啊?
    venglide
    venglide
    Mar 10, 2013
    78
    挺欢乐,感觉说得还是有一定道理的,至少有自己的见解。现在最多的就是看到有这样的帖子,底下就会出现一群疯狗,王垠的最新文章就是个例子。可喜的是,v2ex上的人偏相对理性~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3349 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 10:38 · PVG 18:38 · LAX 02:38 · JFK 05:38
    ♥ Do have faith in what you're doing.