淺談幾種主要編程語(yǔ)言
經(jīng)常聽(tīng)到有人在抱怨這個(gè)語(yǔ)言哪里哪里不好,那個(gè)語(yǔ)言又是如何的優(yōu)秀。對于這樣的牢騷,我只是一笑而過(guò)。
就我而言,語(yǔ)言只是工具,沒(méi)有好壞之分。只要你采用相應的語(yǔ)言,完成對應的工作,那你的目標就完成了。我們無(wú)需抱怨這種語(yǔ)言的缺點(diǎn),而是應該抱有接受的態(tài)度。任何語(yǔ)言的存在都有它的合理性,如果不合理是不會(huì )經(jīng)受住時(shí)間的考驗的。世間之物都具有雙面性,只是看利多還是弊大。如果一個(gè)東西是十全十美的,那我毫不猶豫的告訴你,一種情況是它不存在,另一種情況是你還沒(méi)發(fā)現它的缺點(diǎn)。
每種語(yǔ)言都有自己得天獨厚的優(yōu)勢,當然缺點(diǎn)同時(shí)伴存。C語(yǔ)言是計算機界的常青藤。C語(yǔ)言執行效率高,用于寫(xiě)底層的驅動(dòng)那是再適合不過(guò)。指針是C語(yǔ)言的精華。而C++是很強大的,只要你是個(gè)高手,你幾乎可以利用C++完成任何事情。當然虛函數是C++的精華。Java取消了指針,這是應該喜還是憂(yōu)。喜的是,沒(méi)有C或者C++那種對內存繁瑣的操作,而且也降低了很多致命性的錯誤發(fā)生的概率。憂(yōu)的是,效率大打折扣,采用虛擬機的方式使得Java有跨平臺的特性,必然會(huì )使得效率降低。另外一個(gè)方面,你借別人的東西使用(內存),是不是應該還回去呢?從這一方面考慮,C或者C++的設計思想更有意義。經(jīng)常關(guān)注TIOBE世界編程語(yǔ)言排行榜,Java已經(jīng)有很久排名第一,我覺(jué)得這樣的排名只是看看而已,無(wú)需過(guò)多的信奉。下面看看幾種主要語(yǔ)言的優(yōu)缺點(diǎn)。
C語(yǔ)言
C語(yǔ)言的優(yōu)點(diǎn):
1.簡(jiǎn)潔緊湊、靈活方便
2.運算符豐富
3.數據結構豐富
4. C是結構式語(yǔ)言
5. C語(yǔ)法限制不太嚴格,程序設計自由度大
6. C語(yǔ)言允許直接訪(fǎng)問(wèn)物理地址,可以直接對硬件進(jìn)行操作
7. C語(yǔ)言程序生成代碼質(zhì)量高,程序執行效率高
8. C語(yǔ)言適用范圍大,可移植性好
9. C語(yǔ)言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統,如DOS、UNIX,也適用于多種機型
10.有效地將一個(gè)較復雜的程序系統設計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開(kāi)發(fā)和維護
C語(yǔ)言的缺點(diǎn):
1. C語(yǔ)言的缺點(diǎn)主要是表現在數據的封裝性上,這一點(diǎn)使得C在數據的安全性上做的有很大缺陷,這也是C和C++的一大區別。
2. C語(yǔ)言的語(yǔ)法限制不太嚴格,對變量的類(lèi)型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語(yǔ)言比其他高級語(yǔ)言較難掌握。
3.可重用性差
4.數據安全性差
5.難以開(kāi)發(fā)大型軟件和圖形界面的應用軟件
6.把數據和處理數據的過(guò)程分離為相互獨立的實(shí)體
7.當數據結構改變時(shí),所有相關(guān)的處理過(guò)程都要進(jìn)行相應的修改
8.每一種相對于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)銷(xiāo) 9.圖形用戶(hù)界面的應用程序,很難用過(guò)程來(lái)描述和實(shí)現,開(kāi)發(fā)和維護也都很困難
C++
C++優(yōu)點(diǎn):
1.可擴展性強
2.高效 簡(jiǎn)潔 快速
3.可移植性
4.面向對象的特性
5.強大而靈活的表達能力和不輸于C的效率
6.支持硬件開(kāi)發(fā)
7.程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨立性、數據的安全性就有了良好的保障
8.通過(guò)繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開(kāi)發(fā)和維護都更為方便
C++缺點(diǎn):
1.比較底層,易用性不是很好
2.多重繼承和友元機制
3.標準庫涵蓋范圍不足
4.開(kāi)發(fā)周期長(cháng)
5.非并行
6.掌握有難度
7.粒度封裝不夠
Java
Java的優(yōu)點(diǎn):
1.簡(jiǎn)單性
2.面向對象性(面向對象的程度可以達到95%)
3.健壯性
4.跨平臺性
5.高性能(自動(dòng)垃圾回收機制)
6.多線(xiàn)程
7.動(dòng)態(tài)性
8.安全性
Java的缺點(diǎn):
1.效率低(毋庸置疑)
2.跨平臺是它最大的優(yōu)點(diǎn)也是最大的缺點(diǎn)
3.復雜性(做一個(gè)項目需要很多的知識,涉及面廣)
很多時(shí)候,一種語(yǔ)言的優(yōu)點(diǎn)很可能是它的缺點(diǎn),缺點(diǎn)又可能是它的優(yōu)點(diǎn)。這主要看你是從哪方面去考慮。這就印證了那句話(huà),凡事沒(méi)有必然。
不管是哪種語(yǔ)言,就像文章開(kāi)頭所言,只要你采用他達到你想要的,那就成功了。無(wú)需過(guò)多在意它的缺點(diǎn),更無(wú)需贊揚它的優(yōu)點(diǎn)。所以網(wǎng)上那些關(guān)于哪種語(yǔ)言更好的口水仗,我只能說(shuō)這樣的爭斗毫無(wú)意義。
語(yǔ)言只是工具,沒(méi)有好壞之分。
評論