幾種計算機語言的排序?
一、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。
它的最大長處是強勁的文本處理能力,無以倫比的正則表達式支持,而且有全套Unix API的內部支持,顯著減少了對C的需求。
Perl的主要缺點是某些部分設計得非常丑陋,且無法補救,某些部分也過于復雜。當程序規模增大時,必須嚴格遵守約定,才能保證模塊化和設計的可控性,難于維護。
五、Python
Python發布于1991年,是一種與C語言緊密集成的腳本語言。
Python的優點是非常干凈優雅,鼓勵清晰易讀的代碼,易學易用;提供了面向對象編程的可能,但并不把這個選擇強加于設計者;具有出色的模塊化特性,同Java一樣,適合用來做需要協同開發的大型復雜項目。在很多方面,它都比Java簡單。此外,Python標準中包括了對許多網絡協議的支持,因此也很適合網絡管理任務。
Python的缺點主要是效率低下,速度緩慢。在執行速度上,它不僅無法與C/C++競爭,而且也不如其他主要的腳本語言。但是,這其實并不是一個嚴重的問題,有時網絡或磁盤的延遲,會完全抵消Python本身消耗的時間。而且因為Python特別容易和C結合起來,因此性能關鍵的 Python模塊,可以很方便地轉化成C語言來提高速度。
總的來說,對于小型項目和大量依靠正則表達式的項目,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可能在大型項目上有優勢,但是也不是絕對的。