誰是代替C語言的“潛力股”?

ituring發表於2016-01-08

  在去年十一月的時候,我參與了《Which language has the brightest future in replacement of C between D,Go and Rust?And Why?》(譯文:《D、GO、Rust 誰會在未來取代 C?為什麼?》)這篇文章的翻譯工作。但是依我看D語言和Rust很難成為代替C語言的語言。雖然不能否認從Rust 精確定義的語言和技術方法的深度都可以看出,它一門很好的語言。但是複雜語法讓很多程式設計師敬而遠之。

  有潛力但力不從心的Java

  不得不說,就Java良好的跨平臺性這一點來說,Java還是有潛力取代C語言的。但是自從Java隨著太陽公司(SUN)被甲骨文公司(ORACLE)收購以來,就顯得有一些力不從心。特別是最近甲骨文和谷歌之間的一些事情,讓Java顯得有些尷尬。

  如果我們把衡量一個程式語言能不能成為像C一樣的語言,除了執行速度和庫的豐富之外,我們還必須考慮,這個語言能不能寫編譯器、作業系統和資料庫。 顯然的我們考慮速度的話,那麼核心是效率優先的,除了彙編,似乎並沒有什麼語言有可能比C效率更高。但是並不是說Java不能寫,至少效率不如C。(Jnode作業系統除啟動程式之外由Java編寫,啟動程式由組合語言編寫)

  成長中的Go

  Go目前是定位在伺服器端的程式語言。它專門針對多處理器系統應用程式的程式設計進行了優化,使用Go編譯的程式可以媲美C或C++程式碼的速度,而且更加安全、支援並行程式。

  並且Go已經實現了編譯器。但是如果一個領域中沒有現成的庫的話,上手都是問題。作為一個年輕的程式語言, Go需要的是時間。

  C語言的親兒子C++

  C++進一步擴充和完善了C語言,是一種物件導向的程式設計語言。一般大部分的C程式碼可以很輕易的在C++中正確編譯,不過仍有少數差異,導致某些有效的C程式碼在C++中失效,或者是在C++中有不同的行為。最常見的差異之一是,C允許從void*隱式轉換到其它的指標型別,可是C++並不允許。

  作為C語言的親生骨肉,C++並不是那麼好上手,並且自從1983年C++誕生以來的,C++似乎一直也沒有代替C語言,雖然最開始的一段時間炒的挺火的。但是最近好像又出現走下坡路的趨勢了。

  C語言會退役嗎

  雖然很多語言都會說,它們的執行速度和效率和C一樣快。庫和C一樣豐富。但是C語言就像是組合語言一樣,即使很少使用,也不會面臨退役。何況就目前而言C語言的壟斷地位雖然不斷被挑戰,但也從未被超越。

相關文章