V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
silianbo
V2EX  ›  程序员

为什么 要这样说:人生苦短,我用 Python

  •  
  •   silianbo · 2015-06-18 17:00:37 +08:00 · 19435 次点击
    这是一个创建于 3441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    95 条回复    2015-07-23 01:57:21 +08:00
    yahoo21cn
        1
    yahoo21cn  
       2015-06-18 17:01:50 +08:00
    开发效率高
    moliliang
        2
    moliliang  
       2015-06-18 17:02:07 +08:00
    其实我觉得ruby的开发效率也很高~
    POP
        3
    POP  
       2015-06-18 17:02:20 +08:00
    俩字,好用
    ericzhan
        4
    ericzhan  
       2015-06-18 17:06:16 +08:00
    我觉得golang的开发效率也很高
    aszxqw
        5
    aszxqw  
       2015-06-18 17:07:47 +08:00
    @ericzhan 强类型和弱类型的语言还是有差别的。
    BOYPT
        6
    BOYPT  
       2015-06-18 17:14:01 +08:00   ❤️ 2
    这是python社区普遍认同的哲学信仰,具体“碑文”在任意python运行环境运行import this可显示。

    也许存在比Python更加爽的语言,更有效率的语言,这并不影响这个哲学的流行。
    blacktulip
        7
    blacktulip  
       2015-06-18 17:16:14 +08:00   ❤️ 1
    这句话是 2002, 2003 年的时候说的,那时候主流开发语言都比较繁琐,开发效率低,所以有这说法。现在脚本语言和各种类库已经非常普及,这句话的适用性已经很小了。
    ivenvd
        8
    ivenvd  
       2015-06-18 17:25:29 +08:00
    这两句话拆开来看,你就理解了。
    yakczh
        9
    yakczh  
       2015-06-18 17:29:57 +08:00
    import React from 'react';


    class Hello extends React.Component {
    render() {
    return <div>Hello {this.props.name}</div>;
    }
    }

    export default Hello;

    javascript才是王道
    hhkbp2
        10
    hhkbp2  
       2015-06-18 17:34:13 +08:00
    因为用了Python之后人生就变长了
    robertlyc
        11
    robertlyc  
       2015-06-18 17:37:21 +08:00   ❤️ 8
    因为 他们没学过ruby
    tini20
        12
    tini20  
       2015-06-18 17:37:26 +08:00
    节省的时间:
    1、写的时候节省
    2、读代码、维护的时候节省(python的杀手锏)
    silianbo
        13
    silianbo  
    OP
       2015-06-18 17:39:45 +08:00
    @hhkbp2 不太明白!
    wasabia
        14
    wasabia  
       2015-06-18 17:39:50 +08:00
    lilydjwg
        15
    lilydjwg  
       2015-06-18 17:44:28 +08:00   ❤️ 1
    @aszxqw 这里有人提到了某个弱类型语言吗?

    Python 是动态类型的语言,程序不跑起来你没法准确地推知指定名字的数据类型。Go 是静态类型的语言,变量的类型在写代码时已经确定了。
    aszxqw
        16
    aszxqw  
       2015-06-18 17:53:34 +08:00
    @lilydjwg 我说的弱类型语言就是指动态类型语言
    realityone
        17
    realityone  
       2015-06-18 17:57:35 +08:00
    @aszxqw 弱类型和动态类型是不一样的吧……
    tonyluj
        18
    tonyluj  
       2015-06-18 18:01:54 +08:00
    @aszxqw C/C++是弱类型静态类型语言
    wizardoz
        19
    wizardoz  
       2015-06-18 18:10:02 +08:00
    @ivenvd 我虽然不同意你吐槽的内容,但是被你吐槽的技巧深深折服了
    MForever78
        20
    MForever78  
       2015-06-18 18:11:58 +08:00
    为了压韵,他们什么都说得出来。
    paw
        21
    paw  
       2015-06-18 18:12:26 +08:00
    好用,公司其他组提供的API是C++的,我宁可写个cpp文件编译成动态链接库,然后在python加载这个so用,也不愿意直接写C++
    AndersQ
        22
    AndersQ  
       2015-06-18 18:21:28 +08:00
    这是一种编程哲学与生活态度的统一。
    Python的特点之一就是简单易用,能够数行代码解决问题,干嘛要加入一大堆琐碎无用的东西?
    人生苦短,难道不该用最简单的办法解决问题节省时间吗?
    开发效率低就是在浪费生命,所以你需要用Python!
    caoyue
        23
    caoyue  
       2015-06-18 18:26:51 +08:00
    你知道什么叫安利嘛~
    kslr
        24
    kslr  
       2015-06-18 18:52:50 +08:00
    代码写出来赏心悦目,被自己陶醉。
    silianbo
        25
    silianbo  
    OP
       2015-06-18 18:53:28 +08:00
    @kslr 贴一段 你的艺术品呗!
    kslr
        26
    kslr  
       2015-06-18 18:57:59 +08:00
    @silianbo 这里不是指代码牛逼,是指语法和风格,刚开始被空格虐的死去活来,后来就觉得棒棒哒。
    junnplus
        27
    junnplus  
       2015-06-18 19:01:16 +08:00
    两个字,任性
    hbkdsm
        28
    hbkdsm  
       2015-06-18 19:07:12 +08:00
    because it's true
    ajianrelease
        29
    ajianrelease  
       2015-06-18 19:24:28 +08:00
    学了Python你就知道为什么了,上手易,编程快,不像C++那样有那么多复杂的语法。效率(时间)就是生命
    chrishine
        30
    chrishine  
       2015-06-18 19:26:09 +08:00
    还有 Death is coming, Let's go
    leavic
        31
    leavic  
       2015-06-18 19:26:46 +08:00
    上手快,什么都有人帮你做好了,不用重复发明轮子。
    ZHenJ
        32
    ZHenJ  
       2015-06-18 20:03:58 +08:00
    和 PHP是宇宙最好的语言 同理
    yxzblue
        33
    yxzblue  
       2015-06-18 20:28:24 +08:00
    其实我学得php开发起了挺快的
    yxzblue
        34
    yxzblue  
       2015-06-18 20:29:21 +08:00
    @chrishine go dead
    tony1016
        35
    tony1016  
       2015-06-18 20:40:41 +08:00
    和java比一比在控制台输出个hello world就明白了
    jun4rui
        36
    jun4rui  
       2015-06-18 21:12:40 +08:00 via Android
    @moliliang ruby面窄了。。。
    jun4rui
        37
    jun4rui  
       2015-06-18 21:14:46 +08:00 via Android
    @yahoo21cn 不是开发效率高,是做事情直截了当,Java是绕啊绕的,一个简单的事情你要绕一圈。

    Python的直接让你的思维都直观一些,效率高是思维精简后带来的成果。
    chaucerling
        38
    chaucerling  
       2015-06-18 21:16:13 +08:00
    python最像锤子
    lilydjwg
        39
    lilydjwg  
       2015-06-18 21:18:33 +08:00
    @aszxqw 如果你看到某美国人谈论汉语和英语的巨大差别,但仔细一看,其实他谈论的是日语和英语。你不觉得坑爹吗?欺骗感情吗?混乱不堪吗?
    lilydjwg
        40
    lilydjwg  
       2015-06-18 21:22:09 +08:00
    @aszxqw 静态类型语言的类型系统没办法特别弱,因为太弱就分辨不了了。但是动态类型的语言的类型可以很强,虽然 Python,尤其是 Python 2 的类型系统并不是太强。通常认为 C 已经是强类型语言了,Python 更不用说也是。

    这两种划分类型的方法虽然不完全正交,但是静态强类型、动态强类型、动态弱类型这三种是毫无疑问存在的。
    hbkdsm
        41
    hbkdsm  
       2015-06-18 21:31:23 +08:00
    @chaucerling 不是像瑞士军刀吗?
    darrenxyli
        42
    darrenxyli  
       2015-06-18 21:38:06 +08:00
    一个粉转路路转黑的人来吐槽两句,确实如@jun4rui 所说,python的优势就在于弱类型动态,让程序员心思负担轻了,只需要关心业务逻辑,思维直观。但是不谈应用场景说语言就是耍流氓,大型应用使用Python就是个巨大的坑,一来动态语言不编译起来根本不知道哪出错,试想一下面对几十万行代码发布前期改bug的场景,虽然JAVA是我最不喜欢的语言,但是几十年工业界打磨出来的IDE预编译检测和本身的静态特性,发布过程不是痛苦的。再来就是“人生苦短,我用Python”这句话后面还要加一句话
    darrenxyli
        43
    darrenxyli  
       2015-06-18 21:40:55 +08:00   ❤️ 2
    接上条,再加一句,“Python一时爽,重构火葬场”,我就不解释了,这才是真zhi巨坑。[冲动脸]。个人觉得Python让程序员该有的专业思维变懒惰了,当然Python也有很好的适用场景,胶水胶水胶水和做项目原型。
    silianbo
        44
    silianbo  
    OP
       2015-06-18 21:42:30 +08:00
    @darrenxyli 哈哈,大哥,看来 你这是被python伤痛了心
    issues
        45
    issues  
       2015-06-18 21:50:57 +08:00
    我安利golang
    elgoog1970
        46
    elgoog1970  
       2015-06-18 21:56:05 +08:00
    效率高,效率又低
    darrenxyli
        47
    darrenxyli  
       2015-06-18 22:06:26 +08:00
    @silianbo Twitter上面有个人说了一句话“Python能进工业界就是奇葩”,简直不能同意得更多,它不进工业界我们还能愉快的玩耍。
    jusonalien
        48
    jusonalien  
       2015-06-18 22:30:38 +08:00
    我用Python 人生苦短
    Lucups
        49
    Lucups  
       2015-06-18 22:33:47 +08:00
    也可以这么说:

    人生苦短,我选Golang
    人生苦短,快拍(P)黄(H)片(P)
    人生苦短,来杯Coffee(Script)
    ...
    mulog
        50
    mulog  
       2015-06-18 23:10:16 +08:00
    @darrenxyli
    连 javascript 和 PHP 都。。。。(逃
    chaucerling
        51
    chaucerling  
       2015-06-19 00:16:02 +08:00
    @mulog 他都说了大型应用,javascript 和 php 都偏 web 快速开发
    publicID321
        52
    publicID321  
       2015-06-19 00:51:56 +08:00
    Axurez
        53
    Axurez  
       2015-06-19 01:41:14 +08:00
    这是好多好多好多好多好多年前的话吧。。最近新出的语言都是强类型了
    http://www.zhihu.com/question/31100089
    laoyuan
        54
    laoyuan  
       2015-06-19 06:57:32 +08:00
    人生苦短,我用 Python、PHP、Ruby
    Imyssed
        55
    Imyssed  
       2015-06-19 07:29:12 +08:00 via Android
    @chrishine http://jimmykuu.sinaapp.com 你说起来我就想到这个哈哈
    vietor
        56
    vietor  
       2015-06-19 08:22:15 +08:00 via Android
    是当初合伙出书的那批人想出的口号。可爱的Python。垃圾的小圈子,早散伙了。
    ryanking8215
        57
    ryanking8215  
       2015-06-19 08:36:42 +08:00   ❤️ 1
    发现大伙对动态语言和静态语言,强类型和弱类型都没搞清楚啊...
    python是动态语言,强类型
    js是动态语言,弱类型

    至于静态语言,一般都是强类型的,否则就失去编译时类型检测的优势了
    Tiande
        58
    Tiande  
       2015-06-19 08:53:46 +08:00
    @ryanking8215 谢谢安利
    thirtiseven
        59
    thirtiseven  
       2015-06-19 09:03:25 +08:00
    人生苦短,我来给perl站个队。。。
    fork3rt
        60
    fork3rt  
       2015-06-19 09:34:57 +08:00
    刚好今天穿了这件T恤
    Tink
        61
    Tink  
       2015-06-19 09:37:07 +08:00
    时间就是生命啊
    est
        62
    est  
       2015-06-19 09:41:31 +08:00
    说python不能做大型系统的,写你们代码的团队几个人组成?其中有没有人有大型系统开发经验?重构了几次?单元测试覆盖率有多少?code review有进行么?
    fortunezhang
        63
    fortunezhang  
       2015-06-19 09:46:00 +08:00
    @yakczh 我到不喜欢在class里面拼html,总感觉怪怪的。
    geeklian
        64
    geeklian  
       2015-06-19 09:58:09 +08:00 via iPhone
    这话放十年前没任何问题吧。
    那时候有人用ruby?有人用go lang?
    robertlyc
        65
    robertlyc  
       2015-06-19 10:02:13 +08:00
    @geeklian 10年前的twitter就是ruby写的 7年前的github现在依然是ruby写的
    geeklian
        66
    geeklian  
       2015-06-19 10:11:54 +08:00 via iPhone
    @robertlyc 那就再往前算5年吧……
    robertlyc
        67
    robertlyc  
       2015-06-19 10:12:57 +08:00
    @geeklian python先解决版本号 再来吹
    geeklian
        68
    geeklian  
       2015-06-19 10:17:27 +08:00 via iPhone
    @robertlyc 吹啥吹,就事论事,楼主这句话写在import this时,有人用ruby么?go lang诞生了么?有python3么?

    为啥ruby,go lang这些后来以致现在会流行,还不是因为都是一致的哲学理念。
    robertlyc
        69
    robertlyc  
       2015-06-19 10:32:11 +08:00
    @geeklian 哈哈哈哈 是是是 作为一个鼓吹"有且仅有一个最优解"的语言 搞出两个分裂的版本 真是先进的哲♂学理念
    superxzr
        70
    superxzr  
       2015-06-19 10:34:00 +08:00
    Python的开发效率高吧
    zonghua
        71
    zonghua  
       2015-06-19 11:38:10 +08:00
    @publicID321 有mono C#,C# .NET更快把。另外你们不是经常诋毁微软的都是拖控件吗?一行代码都不用写。人生苦短,我用C#。
    yetone
        72
    yetone  
       2015-06-19 11:58:04 +08:00
    楼主你好,反正我用 Python 从没加过班。我那个开发 Java 的大学同学天天是加班狗,端午放个假都高兴半天 = =
    wezzard
        73
    wezzard  
       2015-06-19 12:17:09 +08:00
    Life is short, learn PHP.
    mathgl
        74
    mathgl  
       2015-06-19 12:25:28 +08:00
    @est 现在基本放弃推荐使用Python了,如果大家有相近爱好,坐下来聊聊,没有就算了。懒得浪费时间,多说无益。

    自己用得好就是了。
    Feiox
        75
    Feiox  
       2015-06-19 12:45:04 +08:00
    @tini20 写和读都是那么的舒畅,简单明了,甚至可以直接读出来,I like it ~ 倒时不太喜欢 Ruby 的一袋子语法糖,太甜了 :P ~ (BTW :Python 中可恶的 lambda 函数限制,伤了伤了)

    @darrenxyli 这样说一切弱类型的语言都是玩具。但,paypal 具他们自己用的说,很多核心模块是用 node 写的,更不要说 GitHub 之类的基本不用 java 的巨型站点了。个人是觉得 java 是外包(比如银行、证券类似的可慢不可错,或者几百人的“培训班”开发团队)最终归宿,动态语言是互联网的最好落脚点。如果要看吐槽,你搜一下 ruby js 这些语言的吐槽,大多也如此。BTW ~ JVM 的运行效率我是服气的很哈 :P
    qaulau
        76
    qaulau  
       2015-06-19 12:58:10 +08:00
    简洁易用,节省时间,类库和包很多(可以避免自己重复制造轮子),总的来说就是省时、效率高
    asassas
        77
    asassas  
       2015-06-19 13:08:18 +08:00
    本来就事论事讨论python语言特性之类的主题又成了语言战争。
    而且又是赞ruby贬python。
    ruby确实优美,rails也确实魔法。
    但是国内的大型UGC网站已经有douban,zhihu,guokr等用python实现的了,
    rubyer们先别拿github嘲讽python了,加油啊。
    shuson
        78
    shuson  
       2015-06-19 13:16:32 +08:00
    人生苦短,我去泡妞了
    Axurez
        79
    Axurez  
       2015-06-19 13:25:10 +08:00
    @ryanking8215 可是C是弱类型的
    celon
        80
    celon  
       2015-06-19 14:01:01 +08:00
    如果真的觉得人生苦短,这方面ruby比python好太多
    tabris17
        81
    tabris17  
       2015-06-19 14:06:28 +08:00
    因为用了python你会觉得人生很漫长
    darrenxyli
        82
    darrenxyli  
       2015-06-19 14:16:21 +08:00
    @Feiox 不能说是玩具呀,Ruby没写过,NodeJS写了不少,NodeJS的坑就不说了反正社区也一直在想办法优化这个坑,嗯我主要表达一个观点“不谈场景就是耍流氓”,“人生苦短”的大字报也不是100%恰当的,各有优劣当然都有吐槽的地方,我对任何语言都没有偏见,lisp这种我都在写。互联网就是要快快快所以一来上动态肯定有优势,不过落脚点我持保留意见,普遍思路都是见坑填坑,拿其他优势(换语言,重构或者堆设备)填,例如G家200X年的爬虫是拿Python重写的,后来似乎是改C++重写了?Dropbox拿Python搭的,后来想开发Python的VM来优化编译?Douban似乎很早很多模块都不用Python了?。JVM我也是服气的,全世界大大小小组织至少也是砸了亿级的成本进去优化。喜欢你讨论问题的语气,嘿嘿。个人觉得语言战真没意思啊,技能属性不同,打火系怪物要用水系魔法,打火系黑暗怪要用水系光明魔法,见招拆招千里取贞操,嗯~以上全是愚见,各位不服莫辩因为我肯定辩不赢你的~
    Feiox
        83
    Feiox  
       2015-06-19 14:49:15 +08:00
    @darrenxyli 哈哈,所以,对于牛X or 装B 用 Scheme(Racket) 写算法那是极好的,对于一大堆杂牌军并附带 2.5k 月薪的大学实习生来说,javavavava ~ 对于快快快快快上线的互联网,用 PyRuNo 那就是对了。但,对于 PHP (<7)的语法我真的无力吐槽。
    所以,人生苦短,我用Python 这句话的真正奥义,我觉得是把 Py3 (我一定要强调,是 py3k !)作为生活学习小秘书 😂,而非严谨高效可**流水化生产**的工业语言。
    在《黑客与画家》中谈到过,你用 java 才写完一个包的时候人家都开始谈融资了。不过我认为,如果团队里有水平不高的开发者时,你用 java 写的都开始数钱了,他们 PyRuNo 还在 debug。
    P.S. 性能敏感的还是老老实实静态语言吧,但大多数产品都死在了没钱为继的晚上。
    jun4rui
        84
    jun4rui  
       2015-06-19 15:05:25 +08:00
    @celon 如果能在非Web开发方面和非*nix系统上能更给力就好了……
    ryanking8215
        85
    ryanking8215  
       2015-06-19 15:22:57 +08:00
    @Axurez 为什么是弱类型?你指C的隐式参数类型提升吗?
    gzxultra
        86
    gzxultra  
       2015-06-19 15:24:27 +08:00
    @AndersQ 刚开始学习Python,请教一下Python能开发桌面应用么,比如做一个类似QQ的即时通讯软件
    popu111
        87
    popu111  
       2015-06-19 15:26:25 +08:00
    @caoyue 知道啊,不就是你的组织么
    Axurez
        88
    Axurez  
       2015-06-19 17:59:44 +08:00
    levn
        89
    levn  
       2015-06-19 19:19:27 +08:00
    为了押韵
    FrankHB
        90
    FrankHB  
       2015-06-19 20:22:46 +08:00
    @ryanking8215
    你至少搞错了两点。
    1.你楼上讨论的除了一个在黑python的的都是动态类型语言和静态类型语言,什么时候在说动态语言和静态语言了?两者完全不是一回事,前者是指类型检查发生的时机,后者是指是否在运行时允许改变程序自身的构造。(顺便,上面那个动态语言的说法没有问题。)
    2.强类型和弱类型这样的说法的意义早就乱了,各种鸡同鸭讲所以不能指望在不确定具体上下文时知道意思。非得要直接给一个定义来强行说清楚反而是有问题的。
    如果要说原意,强类型=要求类型检查,弱类型=不要求类型检查,就是“有”和“没有”的区别,不是现在许多人经常以为的只有相对含义却说不清界限的玩意儿。
    young
        91
    young  
       2015-06-19 22:09:21 +08:00
    好奇问一下, 人生苦短? 到底有多短?
    stranbird
        92
    stranbird  
       2015-06-20 10:49:30 +08:00
    Python:
    1.
    dict.viewkeys
    dict.setdefaults
    dict.popitem
    ...
    ...
    dict.has_key # <- wtf?

    2.
    Decimal("1024") is not JSON serializable. # <- wtf?

    3.
    string.upper
    string.strip
    ...
    ...
    len(string) # <- wtf?

    4.
    ascii, gbk, unicode, utf-8
    can't decode ascii character at position 1-2 ... # <- wtf?

    5.
    lambda 只能一行

    个人觉得当时说出这句口号就像是刘姥姥进大观园没见过世面,看到了新世界也无可厚非。但都进入二十一世纪这么多年了,还抱着这样的优越感就有点无语了。
    hitsmaxft
        93
    hitsmaxft  
       2015-06-20 19:31:32 +08:00
    几年前挺喜欢 python, 如果在3.x能有实质性的突破,也许就不是今天这个样子。在我主要关注的web这个领域里, python 已经没地位了。 系统编程方面还可以一用, 但是 go 摆在那里也不是吃素的。

    唉,看到这个话题好想说点什么, 但是却什么也说不出来。
    noli
        94
    noli  
       2015-07-23 01:52:12 +08:00
    @FrankHB
    strong typing weak typing 还是有一定的标准的,例如维基百科上的说法:

    In computer programming, programming languages are often colloquially referred to as strongly typed or weakly typed. These terms do not have a precise definition, but in general, a strongly typed language is more likely to generate an error or refuse to compile if the argument passed to a function does not closely match the expected type. On the other hand, a very weakly typed language may produce unpredictable results or may perform implicit type conversion.

    概括点来说就是是否 ill-behaved 作为标准:

    对于strong typing 来说,类型不符合预期不会导致 ill-behaved 是因为会报错(编译时或运行时都可以),程序无法继续运行。

    对于 weak typing 来说,类型不符合预期,会通过隐式类型转换或者忽略而继续执行,导致产生预期以外的结果进而影响程序产生 ill-behaved。

    区别在于行为是否在语言预期之中。
    silianbo
        95
    silianbo  
    OP
       2015-07-23 01:57:21 +08:00
    @noli 大半夜还不睡觉!怎么翻出这个主题了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1308 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.