50 歲老碼農:Python Bug 太多,我選 Rust 和 Go!

50 歲老碼農:Python Bug 太多,我選 Rust 和 Go!

作者 | 伍杏玲

出品 | CSDN(CSDNnews)

這裡有一位IT界的老司機,不,是久經沙場的老碼農:

Linux專家,幾十年來開發不少免費的開源軟件;Linux之父的同窗好友,見證Linux的崛起;當過大學老師,擔任過多家企業的首席技術官;會芬蘭語、瑞典語、英語、德語四國語言。

他就是Linus的好友——Lars Wirzenius。

作為88年便成為赫爾辛基大學的計算機科學系的學生,Lars Wirzenius寫代碼已有30年,可謂是編程界的“老司機”了。可最近這位老司機引起程序員們的熱議,為什麼呢?

面對正大熱的Python,自1993年就開始使用Python的他竟說:“不要用Python,去學Rust和Go吧”。

50 歲老碼農:Python Bug 太多,我選 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:

我已經開發過一個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

50 歲老碼農:Python Bug 太多,我選 Rust 和 Go!


分享到:


相關文章: