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
tedeyang
V2EX  ›  Python

Python 这语言真是混乱和原始

  •  
  •   tedeyang · 2018-08-24 12:24:08 +08:00 · 25269 次点击
    这是一个创建于 2276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    under under method,解释器里狂塞私货 _xxx 这种私有变量, 多重继承, 抽象类居然是用包来支持的,abc.ABC ClassA.method1(ClassB),unbound method ?

    python 混乱,一点也不优雅和统一。

    第 1 条附言  ·  2018-08-24 13:58:05 +08:00
    原来对 python 还是有幻想的,以为 python 是强迫症设计的语言,一定很简洁优雅,这一周有时间学 python,从头到尾系统地了解下来,这玩意简直就是补丁加补丁,层层叠叠,比 ruby 差远了。
    类库、语法糖,就是 python 不多的抓手了,
    OOP 设计是 shit,python 确实是一条蟒蛇,软软的。
    第 2 条附言  ·  2019-12-21 22:59:13 +08:00
    感谢回复,看发言,大家都是大牛,我不是,我是 ppt 程序员。一年才难得上一次 v2ex,看到这么多 reply 很是惊讶,希望大家用 py 能赚到小钱钱。
    155 条回复    2020-10-31 16:33:14 +08:00
    1  2  
    fyxtc
        101
    fyxtc  
       2018-08-24 18:28:10 +08:00
    都是闲的,一下喷这个垃圾一下喷那个垃圾。。。语言这么多选择,自己用的不开心就换一个呗。有那么多时间还不如多深入一点自己的领域知识,真是服了
    WispZhan
        102
    WispZhan  
       2018-08-24 18:45:20 +08:00   ❤️ 2
    同意,我今天刚刚还和朋友抱怨 Python。

    但是也无法否认 Python 的地位,比较槽点和优点是并存的。就和 Java 一样,槽点和优点都是那么明显。

    “世界上只有两种编程语言:整天被人喷的语言和没有人用的语言。”
    reus
        103
    reus  
       2018-08-24 19:00:45 +08:00   ❤️ 3
    @XIVN1987
    王垠这种人的话,能听?
    读书半途而废
    工作半途而废
    yin 语言半途而废
    那个什么教程半途而废
    easylee
        104
    easylee  
       2018-08-24 19:36:14 +08:00
    @reus 您说的这些更让我明白,世界太残酷,天才没出路。
    Yourshell
        105
    Yourshell  
       2018-08-24 19:46:03 +08:00 via iPhone
    看到这么多人喷 asyncio 我就放心了。不过就说 Python,张嘴就喷真的好么,好歹写个博文论证一下啊,我比较菜看不出个一二三来,希望各位大神写两篇科普一下,谢谢。
    Wincer
        106
    Wincer  
       2018-08-24 19:52:08 +08:00 via Android
    喷 asyncio 不好用的可以试试 curio
    DavidNineRoc
        107
    DavidNineRoc  
       2018-08-24 20:51:22 +08:00
    大家不要吵了,听我一句劝。
    是的,有什么不好的都把锅甩给 PHP 吧!
    都没人说,那我就说了!!!
    PHP 是世界上最好的语言!!!
    justff
        108
    justff  
       2018-08-24 21:04:13 +08:00
    @DavidNineRoc 我同意,PHP 是世界上最好的语言
    ViceP
        109
    ViceP  
       2018-08-24 21:08:44 +08:00
    PHP 是世界上最好的语言!
    kawkeye
        110
    kawkeye  
       2018-08-24 21:13:40 +08:00
    @ViceP 胡说 bhb 才是世界上最好的语言
    keysona
        111
    keysona  
       2018-08-24 21:15:41 +08:00
    一直觉得 python 的协程很难用....

    ----

    真要用协程,我选择 go....
    keysona
        112
    keysona  
       2018-08-24 21:18:21 +08:00
    没有一门语言生来完美的。

    其他不也是修修补补。我个人觉得这不是喷点。

    ---

    它是可以简洁优雅的,不过考验功力。

    flask 的源码看得很舒服。
    iConnect
        113
    iConnect  
       2018-08-24 21:33:51 +08:00
    连 Flask 的作者都说没看懂 asyncio
    cenqingbo
        114
    cenqingbo  
       2018-08-24 21:40:40 +08:00
    PHP 是世界上最好的语言
    YvesX
        115
    YvesX  
       2018-08-24 21:52:21 +08:00
    现在回头看 Zen of Python,感想就是:想得美。
    CSM
        116
    CSM  
       2018-08-24 22:15:33 +08:00
    看到标题我以为大家都会怼楼主,没想到这么多人赞同
    ---

    曾经对 asyncio 抱有幻想,但最近越来越发现难用,各种清理工作很难正确进行,后台协程中抛出的异常不特别注意就忽略掉了等等
    zwh2698
        117
    zwh2698  
       2018-08-24 22:19:00 +08:00 via Android   ❤️ 2
    1.python 早期 主要为了替代那些事物型 c/c++那些人要处理的问题,因为 c 的复杂性,很多人真的很纠结。
    2.python 借鉴了三代语言的特点,提升了开发效率,而且一直在丰富,不错。
    3.python 语言设计这个真的需要王垠这种大牛进行分析。我觉得其他人造诣根本不够。
    4.python 语言分析,解释器核心代码确实写的不错。但是其他外围那些支持动态库真的不怎么样。我曾经修改过部分 Python 源码,切身体会。
    itfanr
        118
    itfanr  
       2018-08-24 22:28:20 +08:00 via Android
    学 go 吧
    chengxiao
        119
    chengxiao  
       2018-08-24 22:57:49 +08:00
    @waterlaw
    Instagram 业余吗?知乎业余吗?豆瓣业余吗?
    我觉得能说出这种话的人 才是真的业余
    agagega
        120
    agagega  
       2018-08-25 00:39:54 +08:00   ❤️ 1
    Python 本来的定位就是短、平、糙的胶水语言,很多东西写起代码也就是平铺直叙,没经过什么特别的设计。在很多 C++ 的大型项目中充当编译辅助脚本的角色。

    什么「人生苦短,我用 Python 」这种话,就跟「 Ruby 让程序员爱上它的工作」「 JavaScript 统治世界」一样,社区营销而已。针对 Python 库多和脚本语言的特性说这句话并没什么特别的,同样我也可以说人生苦短,我用 Ruby、JavaScript、Perl,乃至 Go、Swift ……

    Python 确实很火,但把这个语言吹上天的,开个地图炮吧,大概就是那些其他专业过来想搞 AI、Web 什么的,大学里专业可能也只学过一点点 C、VB,突然发现有这个东西然后惊为天人的……嗯这话对于一部分搞所谓「算法」的研究生也适用。我认为一个有足够知识的程序员 /工程师在编程语言这件事上面,是不会一叶障目的。
    ddzzhen
        121
    ddzzhen  
       2018-08-25 00:42:08 +08:00 via Android
    优雅还强迫症?哈哈,你很强迫,所以请远离 python。
    李白和杜甫的诗句格格不入
    Wicked
        122
    Wicked  
       2018-08-25 01:02:00 +08:00   ❤️ 1
    每门流行的语言自有它适用的地方,存在就是合理。我觉得你用一门语言,至少正儿八经写过一个适用这门语言的项目,才能比较了解这门语言的特性,才有发言权。动不动就说“ xx 是垃圾”,只会显得很幼稚...
    猪场的游戏大多都是用 Python 写的,项目说大不大,但也绝对不算小了,不也运行得好好的?
    Blender 也是用 Python 写的,3D Max 的开源替代,非常好用,了解一下?
    bucky
        123
    bucky  
       2018-08-25 01:03:47 +08:00   ❤️ 5
    @reus 这话说的,最起码王垠有半途而废的能力,而且人家的半途对大多数人来说人生的终点都达不到
    jiangnanyanyu
        124
    jiangnanyanyu  
       2018-08-25 01:20:28 +08:00 via Android
    hacknews 有很长的讨论,各位可以搜搜看
    IMRES
        125
    IMRES  
       2018-08-25 01:22:45 +08:00 via iPhone
    弱类型语言流行起来后都是一地鸡毛
    inframe
        126
    inframe  
       2018-08-25 01:31:58 +08:00 via Android
    任何计算机语言是为了解决一定问题
    脱离这个现实约束讨论
    毫无意义
    dartabe
        127
    dartabe  
       2018-08-25 03:43:25 +08:00
    @agagega 在大学里作为免费的科学计算工具替代 matlab 不是挺好的嘛 有啥好喷的
    ruoyu0088
        128
    ruoyu0088  
       2018-08-25 06:12:30 +08:00
    本来以为楼主是大牛,正在构思优雅,统一的理想中的语言。结果一看附言,拿 Ruby 当个宝。
    zhangpeter
        129
    zhangpeter  
       2018-08-25 07:06:44 +08:00
    @tlday
    python 协程可以看我的文章
    https://github.com/zhang0peter/python-coroutine
    jxl
        130
    jxl  
       2018-08-25 08:31:58 +08:00 via iPhone
    @laike9m == sry 搞反 @tyfulcum 动态和弱不是相对的吧
    q397064399
        131
    q397064399  
       2018-08-25 09:02:52 +08:00
    解决问题就好了,用来搞短平快 快糙猛的玩意 你指望它建摩天大厦?
    lihongjie0209
        132
    lihongjie0209  
       2018-08-25 10:10:54 +08:00
    @dacapoday #65 这是优点? 你返回一个 map 你让调用者怎么处理? 靠猜? 靠文档? 这些都是靠不住的, 所以 Java 用编译器来发现这些问题.
    barbery
        133
    barbery  
       2018-08-25 10:33:45 +08:00
    我就知道 PHP 要躺枪了
    Phishion
        134
    Phishion  
       2018-08-25 12:03:06 +08:00
    Python 永不为奴!!!
    railgun
        135
    railgun  
       2018-08-25 12:35:17 +08:00
    @chenqh 说得好,但是最好的语言是 PHP
    laike9m
        136
    laike9m  
       2018-08-25 14:15:15 +08:00 via Android   ❤️ 1
    @IMRES 连 Python 是强类型都不知道就不要指点江山了吧
    laike9m
        137
    laike9m  
       2018-08-25 14:17:39 +08:00 via Android
    @jxl Python is strongly and dynamically typed.
    用英文不容易有歧义。
    edwinxe2v
        138
    edwinxe2v  
       2018-08-25 15:12:30 +08:00
    用可读性和结构性极强的 Pascal 系(Delphi/Lazarus)的飘过。

    这些年学过或者用过 VB、C#、Python、C++、PHP 和 JavaScript,最喜欢的还是已经变得有点没落的大 Delphi。

    随着上个月免费的 Community Edition 的退出,希望她的占有率能重新有点起色吧,而且希望背后的公司不久的将来把 for Linux 的支持也放到免费社区版去。
    jxl
        139
    jxl  
       2018-08-25 15:51:24 +08:00 via iPhone
    @laike9m 我知道啊 是搞反了 弱类型 说的是 java go
    secondwtq
        140
    secondwtq  
       2018-08-25 17:59:54 +08:00   ❤️ 1
    @Wicked Blender 这个例子举的真是 ...
    首先除了 Web 开发等少数领域之外,其他很多圈子的开源之路甚至不能说刚刚开始,Blender 现在也就算刚露个头,好用不好用是很主观的事情
    另外你去看 Blender 的 GitHub repo,Python 代码连 5% 都不到 ... 这种数据量巨大的东西没有哪个傻瓜会全用 Python 写的
    有一点倒是没错,就是 VFX 圈子现在很流行 Python + Qt 的组合,不过包括 Blender 在内,主要都是写个脚本和界面完善工作流而已,这个和 MS Office 内嵌 VBA,AI 流行 Python 是一样的道理。写这些的人并不是专业的程序员,只不过顺手写两段而已

    核心代码全都是 C 和 C++。
    Qzier
        141
    Qzier  
       2018-08-25 21:19:18 +08:00 via iPhone
    先入为主?后面的都是垃圾?
    nicoljiang
        142
    nicoljiang  
       2018-08-26 02:02:38 +08:00
    @kisnows 双击标题栏放大,了解一下。
    kisnows
        143
    kisnows  
       2018-08-26 03:50:48 +08:00
    @nicoljiang #142 你自己去试试就知道了,不是所有情况下双击标题栏都会窗口最大化的。
    nicoljiang
        144
    nicoljiang  
       2018-08-26 09:11:16 +08:00   ❤️ 1
    @kisnows 嗯哼。我用了这么久的感受基本都可以,不可以的大概可以分两种情况。

    一种可能是支持不好,比如:
    1、微信,用了「不标准的视窗」,但又没有单独支持(同样使用不标准视窗的 QQ 和 QQ 音乐 就可以);

    一种是软件本身刻意为之,比如:
    1、QQ 音乐(跟微信一样,但有特别支持),双击标题栏只能缩放高度,因为这软件就不让你调宽度。
    2、文件管理器(访达),默认情况下双击标题栏默认可以放大缩小,但是当你手动调整过大小之后,双击标题就变成「默认大小」和你「手动调整大小」之间的切换。

    再顺带一提:在高度、宽度均可调整的视窗种,一般情况下除了可以双击「标题栏」放大缩小之外,还可以双击视窗的「四个边界」,可以做到「自动单边放大顶边」(虽然不能双击再缩小)。

    以上是我的大致总结,你也可以试一下。
    reus
        145
    reus  
       2018-08-26 13:38:43 +08:00
    @bucky 所以大多数人就应该当他说的话是放屁啊
    Wicked
        146
    Wicked  
       2018-08-26 19:25:12 +08:00 via iPhone
    @secondwtq 确实没有看过 blender 的 repo,想来 cpp 占主体也是合理的。用 python 的好处是,撸个插件很容易。此外,用 pyqt 写工具也是很愉快的体验
    你举的例子,在我看来都很正面…这就是我所说的,语言要用在合适的地方。
    但比较不认同的是“写这些的人并不是专业的程序员”,所有 python 程序员都被你地图炮了…
    secondwtq
        147
    secondwtq  
       2018-08-26 23:24:13 +08:00
    @Wicked 这里我说的不是很清楚,其实指的是在特定领域的特定人群,不好意思。

    我 po 这一段的目的也是给大伙说明一下 Python 在主流视野之外的一些具体应用,并无地图炮之意。
    jhdxr
        148
    jhdxr  
       2018-08-27 13:43:14 +08:00
    @chengxiao 你说的是那个成天服务器提了一个问题的知乎吗?嗯,的确挺专业的。 ←_←
    chengxiao
        149
    chengxiao  
       2018-08-27 15:04:40 +08:00
    @jhdxr 那你觉得 v2 专业不专业呢?
    mingyun
        150
    mingyun  
       2018-09-04 22:41:57 +08:00
    gowk
        151
    gowk  
       2018-10-12 11:41:00 +08:00
    以前被 Zen of Python,Pythonic 忽悠的不要不要的。现在想想,正因为原始和混乱,所以才出现了 PEP 8,The Zen of Python,以前奉为圭臬的东西原来是不值得追捧的。但这不妨碍 Python 好用,工程上当然是适合什么就用什么,但就是对 Python 喜欢不起来了,所以我套用一句,“人生苦短,爱我所爱”。
    gowk
        152
    gowk  
       2018-10-12 12:08:38 +08:00   ❤️ 1
    https://twitter.com/mattmillr/status/1050477727743127552: The more I write in #golang, the dirtier I feel about every line of #python I've ever written. That doesn't mean I'll stop writing dirty, dirty #python.
    zjhken
        153
    zjhken  
       2019-05-25 16:46:35 +08:00
    终于有人跟我对 python 一样的想法了
    mainfunction
        154
    mainfunction  
       2019-09-14 03:23:14 +08:00
    虽然不想挖坟,但是忍不住想说,python 真的很不优雅,但是 pycharm 真的好
    SuperMild
        155
    SuperMild  
       2020-10-31 16:33:14 +08:00
    @gowk 同感,了解了 Go 的设计细节之后,看 Python 就会觉得一大坨(有点乱、有点重),Go 则简洁轻快高效。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2500 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:06 · PVG 00:06 · LAX 08:06 · JFK 11:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.