查看原文
其他

50 岁老码农:Python Bug 太多,我选 Rust 和 Go!

伍杏玲 CSDN 2019-04-09

作者 | 伍杏玲

责编 | 唐小引

出品 | 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有“三宗罪”:

  1. Lars Wirzenius想从编程工具中得到更多的帮助,比如静态类型检查、更好地处理抽象和代码模块,让他编写出更大、更复杂的软件(但Python没有)。

  2. 他正在编写更具挑战性的软件,并试图从现有的硬件条件中获得更多的帮助(但Python并不能)。

  3. 他没有感觉到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:

我已经开发过一个100 KLOC静态类型的项目,我可以看到静态类型(语言)是如何搭建更小的代码库。当然我不能在写完一千行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

 热 文 推 荐 

☞让苹果“沦为配角”的华为都发布了什么?

☞势逼 React Native,跨平台开发框架 Flutter 很凶猛 | 码书

☞黑客少年手机编 10 万行代码,恶意篡改 App 只为了 “炫技”?

☞日本高中生开发酷炫“扔瓶子”机器人,想砸谁就砸谁

苹果春季发布会:库克绝不玩别人玩剩下的!

在线公开课 | 从理论走向实践,多角度详解Cloud Native

中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成 (附完整报告下载资源)

上海交大CV博导微信群辱骂学生,已停止教学

现实!程序员只有跳槽才能涨薪吗?

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存