天天看點

D、GO、Rust 誰會在未來取代 C?為什麼?

不要管我的地位和 d 語言創造者之一的身份。我會坦誠的回答這個問題。我熟悉 go 和 rust,并且知道 d 的缺點在哪裡。我鼓勵人們在 rust 和 go 社群相似身份的人,也可以提出他們誠懇的觀點。接着,我們開始吧。

首先,c++ 在這個問題中也應該被提及。不管它是否取代 c,或是成為取代 c 的候選人之一,c++ 是這個等式的一個關鍵部分。它是最接近 c 的,同時也是從 c 中來的。在下面幾個問題中我會假設 c++ 是把取代 c 作為目标的。

每一個語言都有一些基礎優勢(我稱之為“十倍優勢”,因為在一定的基準上比其他打确實效率更高)和數個挑戰。這些語言在未來能否取代 c 語言,取決于它們如何利用它們的十倍優勢,并且如何克服他們的數個挑戰。

說起d,就像是領着你在我自己的屋子裡遊覽, 我知道如何展示/隐藏幹淨的/肮髒的角落。跟其他兩個語言相比, 關于d ,我能說的更多。原因很簡單: 我了解 d 地更深入,直白地說:

d 的主要挑戰有以下:

當然啦,還有其他的問題, 但是其他問題要麼是從這幾個問題上衍生出來的,要麼就是有類似的影響

我認為 d 語言 10 倍的優勢有以下(當我在下面說"十倍"的時候,通俗來講意味着"一個數量級")

這裡再重申一下,go 語言是我唯一的選擇,值得你為其付出。選擇 go 主要有下面這些挑戰:

我認為的 go 的10倍優勢如下:

讓我再次提醒,這僅僅是我的意見。我認為 rust 正面臨一些有趣的挑戰:

rust 的 10 倍優勢是:

無論是這幾種語言被定位于逐漸替換 c、c++ ,或者同時存在于代碼庫中,還是它們會成為未來項目的首選,今天的人們還是會首先選擇 c 或 c++——這一切都取決于這些語言的能力,盡量發揮它們的長處并且在各自的挑戰中獲得突破。