50 岁老码农:Python Bug 太多,我选 Rust 和 Go!
作者 | 伍杏玲
责编 | 唐小引
出品 | CSDN(CSDNnews)
这里有一位IT界的老司机,不,是久经沙场的老码农:
Linux专家,几十年来开发不少免费的开源软件;Linux之父的同窗好友,见证Linux的崛起;当过大学老师,担任过多家企业的首席技术官;会芬兰语、瑞典语、英语、德语四国语言。
他就是Linus的好友——Lars Wirzenius。
作为88年便成为赫尔辛基大学的计算机科学系的学生,Lars Wirzenius写代码已有30年,可谓是编程界的“老司机”了。可最近这位老司机引起程序员们的热议,为什么呢?
面对正大热的Python,自1993年就开始使用Python的他竟说:“不要用Python,去学Rust和Go吧”。
老码农炼成记
从2000年以来,Python是Lars Wirzenius的“心头好”,一直用它编程。可最近几年,Lars Wirzenius竟对Python竟有“两看相厌”的不满意,他直言Python有“三宗罪”:
- Lars Wirzenius想从编程工具中得到更多的帮助,比如静态类型检查、更好地处理抽象和代码模块,让他编写出更大、更复杂的软件(但Python没有)。
- 他正在编写更具挑战性的软件,并试图从现有的硬件条件中获得更多的帮助(但Python并不能)。
- 他没有感觉到Python社区正朝着他想遵循的方向发展。相反,社区还往他不喜欢的方向去发展。(他看不惯)
嗯,一个傲娇码农炼成记。
接着Lars Wirzenius话题一转,唠嗑到他写了十多年但宣告失败的“亲儿子”——Obnam:
他从2006年开始用Python编写Obnam备份服务程序,Obnam大约有15000行Python代码,但该项目最终在2017年宣告结束。他说,Python很好,具有一定的程序规模和复杂性。但——
(开始发好人卡了)
他经常在Python的一些静态的、强类型的地方遇到Bug。他说:像Python这样的语言需要程序员自主控制的地方很多。
所以他决定要弃 Python,那么接下来该用什么语言编程呢?老码农将目光转移到TA!
老码农为什么会弃 Python 投奔 Rust和Go
Lars Wirzenius学了几个月的Rust和Go,感觉良好,可以想象他对这两个语言“比心”点赞道:“这两个语言都有强大的静态类型系统;都有不错的模块系统;两者很好地支持并发性。”
于是他决定“贪新忘旧”了:我是写大型软件的,这两个语言都可以很好地替代Python。
在两者中,Lars Wirzenius更喜欢Rust,因为它“有更好的类型系统、更好的编译器、更好的工具”。并连连打call:“它吸取了过去三个世纪编程语言和工具的经验!”
目测Rust已化身为Lars Wirzenius的“缪斯女神”:“(Rust)的设计方式是有充分理由的!”
Python vs. Rust 和 Go,开发者们都怎么选?
那么网友对Lars Wirzenius“迷弟”般的言论有什么看法呢?
正反:比起Python,我也会选Rust和Go
@lordnacho
我也会选择Rust和Go,但是基于和Lars Wirzenius不同的原因。
当程序员编写任何“脚本”时,Python仍然是最好的语言:上手快;类型少,使用起来很明显;性能不是问题。
我认为Python最终是用来粘合代码。用来做粘合代码的语言应该有一个很大的libs生态系统,并且它是易于阅读。综上所述,Python有以下优点:空白的格式便于阅读,还可以使用一些内置的list/dict语法,让代码更加整洁和简短。
对于Web服务来说,当你需要更快的node.js但你不想花费太多时间去选择一个C++版本时,选择Go是一个很好的选择。
@littlestymaar:
我已经开发过一个100KLOC静态类型的项目,我可以看到静态类型(语言)是如何搭建更小的代码库。当然我不能在写完一千行JavaScript时,也不会遇到一个“undefined不是一个函数“这样的错误。没错,你可能会觉得我是一个糟糕的程序员,但我确实发现静态类型(语言)很有用。而且与Java、C#或Go相比,Rust的确非常好。
反方:人生苦短,我只选Python
@dkersten
我非常喜欢Python,自2001年以来,我一直在使用它,并且多年来一直是一个非常顽固的Python爱好者。
@typon
然而,整个数据科学世界都建立在Python之上。我不明白(大家)对这种现实的公然无视。
当然还有这种,越学越High的程序员:
@atoav
当我开始学习Rust时,我是一个学了一年Python的程序员,我想要一个强类型的快速替代Python(的语言)而不需要垃圾回收。
我读过一些关于Rust的东西,它看起来很有趣,足以满足我的程序。我尝试用了下它,并且比我预期更喜欢它,现在我用它比用Python多。
有趣的是,在我学习了Rust之后,我对C和C ++等语言的兴趣增强了。它给了我一个关于C ++的良好新视角,并且包含了大量好的模式和概念,这些模式和概念在其他语言中变得有用。
你怎么看?
最后Lars Wirzenius爆料说,其实自己还没用 Rust 和 Go 写过什么重要代码,上面的说的鼓励大家“学 Rust 和Go,不用Python”仅仅是根据他几个月的看书学习来谈的,他直言后续随着他的深入学习,没准想法会有所改变。
那么作为开发者的你,是看好正大热的动态语言Python,还是静态语言 Rust和Go呢?欢迎来留言哦!
参考资料:https://news.ycombinator.com/item?id=19475218