幾種電腦語言的評價 作者:Eric Raymond 摘自《Unix編程藝術(第十四章)》

來源:互聯網
上載者:User
一、C
C語言的優點是,運行效率高和接近機器語言。它特別適用於以下幾種程式:
  1. 對運行速度要求很高的程式。
  2. 與作業系統核心關係密切的程式。
  3. 必須在多個作業系統上移植的程式。
除此之外,學習C語言有一個最大的理由,那就是它能協助我們學會,在硬體層次上考慮問題。如果你想以編程作為自己的人生事業,C是一定要學習的。
C的最大缺點是,在編程過程中,你不得不花很多時間,考慮與你要解決的問題完全無關、且非常複雜的硬體資源管理問題。
二、C++
C++在80年代中期推出,支援OO(物件導向編程),原意是作為C語言的取代者。
但是它沒能做到做一點,原因有以下幾個:
  1. 它也沒有解決"記憶體管理"問題,雖然比C有所改善。
  2.
標準化不成功。各個編譯器都只支援自己選擇的一個子集,導致跨平台性不如C。
  3. 過分的精細和複雜了。C++的複雜度,超過了C和OO的複雜度之和。
  4.
OO並沒有帶來多少優勢,反而帶來了一些副作用,比如厚重的膠合層和龐大的代碼體積。
總的來說,C++的優勢還是程式效率,以及物件導向編程能力,糟糕之處是它鼓勵複雜的設計。
三、Shell
Shell程式寫起來很容易,對於簡單的任務,開發速度很快。
當程式變大時,它就不太適合了,很難維護,而且將變得非常專用(只能在你自己的機器上使用),因為
Shell必須調用各種外部程式,無法保證每一台機器都同樣安裝了這些程式。
最常見的Shell是bash,它的一些文法規則很混亂,會產生很難閱讀的代碼。另外,shell只能在Unix上使用,無法跨平台。
Shell的最佳用途如下:
  1. 執行簡單的系統管理任務。
  2. 編寫系統啟動時的初始化指令碼。
  3. 作為其他語言開發的程式的封裝器。
四、Perl
Perl發佈於1987年,基本上就是一個增強Shell。
它的最大長處是強勁的文本處理能力,無以倫比的Regex支援,而且有全套Unix
API的內部支援,顯著減少了對C的需求。
Perl的主要缺點是某些部分設計得非常醜陋,且無法補救,某些部分也過於複雜。當程式規模增大時,必須嚴格遵守約定,才能保證模組化和設計的可控性,難於維護。
五、Python
Python發佈於1991年,是一種與C語言緊密整合的指令碼語言。
Python的優點是非常乾淨優雅,鼓勵清晰易讀的代碼,易學易用;提供了物件導向編程的可能,但並不把這個選擇強加於設計者;具有出色的模組化特性,同Java一樣,適合用來做需要協同開發的大型複雜項目。在很多方面,它都比Java簡單。此外,Python標準中包括了對許多網路通訊協定的支援,因此也很適合網路管理工作。
Python的缺點主要是效率低下,速度緩慢。在執行速度上,它不僅無法與C/C++競爭,而且也不如其他主要的指令碼語言。但是,這其實並不是一個嚴重的問題,有時網路或磁碟的延遲,會完全抵消Python本身消耗的時間。而且因為Python特別容易和C結合起來,因此效能關鍵的
Python模組,可以很方便地轉化成C語言來提高速度。
總的來說,對於小型項目和大量依靠Regex的項目,Python不如Perl的表達能力強。至於更小的項目,Python則是大材小用,shell也許更適合。
六、Java
Java發佈於1995年,設計目標有兩個。
一個是"write once, run
anywhere"(一次編寫,到處運行),即不依賴於特定的平台;另一個是在網頁中嵌入互動程式(applet),可以在任何一個瀏覽器中運行。由於它的所有者Sun公司的一系列失誤,第一個目標並沒有完全實現,第二個目標則是徹底失敗。但是Java依然在系統編程和應用編程方面非常強大,足以挑戰C和
C++。
Java的優點是比C++小巧簡單,可以自動管理記憶體,支援類似C的文法和OO編程,與C程式的結合也很好。
Java的缺點是某些部分過於複雜,比如內部類和匿名類的運用會產生很混亂費解的代碼;某些部分功能不完善,也無法利用作業系統提供的功能介面,比如在Java中讀取和處理文字檔,並不像其他語言那樣容易。此外,Java配置環境和版本的混亂,也讓人很頭疼。
總的來說,除了系統編程和某些對運行速度要求很高的編程之外,Java都是比C++更好的選擇。如果和Python相比,Java可能在大型項目上有優勢,但是也不是絕對的。
(完)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.