程式設計師的奮鬥史(一)——淺談幾種主要程式語言
經常聽到有人在抱怨這個語言哪裡哪裡不好,那個語言又是如何的優秀。對於這樣的牢騷,我只是一笑而過。
就我而言,語言只是工具,沒有好壞之分。只要你採用相應的語言,完成對應的工作,那你的目標就完成了。我們無需抱怨這種語言的缺點,而是應該抱有接受的態度。任何語言的存在都有它的合理性,如果不合理是不會經受住時間的考驗的。世間之物都具有雙面性,只是看利多還是弊大。如果一個東西是十全十美的,那我毫不猶豫的告訴你,一種情況是它不存在,另一種情況是你還沒發現它的缺點。
每種語言都有自己得天獨厚的優勢,當然缺點同時伴存。C語言是計算機界的常青藤。C語言執行效率高,用於寫底層的驅動那是再適合不過。指標是C語言的精華。而C++是很強大的,只要你是個高手,你幾乎可以利用C++完成任何事情。當然虛擬函式是C++的精華。Java取消了指標,這是應該喜還是憂。喜的是,沒有C或者C++那種對記憶體繁瑣的操作,而且也降低了很多致命性的錯誤發生的概率。憂的是,效率大打折扣,採用虛擬機器的方式使得Java有跨平臺的特性,必然會使得效率降低。另外一個方面,你借別人的東西使用(記憶體),是不是應該還回去呢?從這一方面考慮,C或者C++的設計思想更有意義。經常關注TIOBE世界程式語言排行榜,Java已經有很久排名第一,我覺得這樣的排名只是看看而已,無需過多的信奉。下面看看幾種主要語言的優缺點。
C語言
C語言的優點:
1.簡潔緊湊、靈活方便
2.運算子豐富
3.資料結構豐富
4. C是結構式語言
5. C語法限制不太嚴格,程式設計自由度大
6. C語言允許直接訪問實體地址,可以直接對硬體進行操作
7. C語言程式生成程式碼質量高,程式執行效率高
8. C語言適用範圍大,可移植性好
9. C語言有一個突出的優點就是適合於多種作業系統,如DOS、UNIX,也適用於多種機型
10.有效地將一個較複雜的程式系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護
C語言的缺點:
1. C語言的缺點主要是表現在資料的封裝性上,這一點使得C在資料的安全性上做的有很大缺陷,這也是C和C++的一大區別。
2. C語言的語法限制不太嚴格,對變數的型別約束不嚴格,影響程式的安全性,對陣列下標越界不作檢查等。從應用的角度,C語言比其他高階語言較難掌握。
3.可重用性差
4.資料安全性差
5.難以開發大型軟體和圖形介面的應用軟體
6.把資料和處理資料的過程分離為相互獨立的實體
7.當資料結構改變時,所有相關的處理過程都要進行相應的修改
8.每一種相對於老問題的新方法都要帶來額外的開銷
9.圖形使用者介面的應用程式,很難用過程來描述和實現,開發和維護也都很困難
C++
C++優點:
1.可擴充套件性強
2.高效 簡潔 快速
3.可移植性
4.物件導向的特性
5.強大而靈活的表達能力和不輸於C的效率
6.支援硬體開發
7.程式模組間的關係更為簡單,程式模組的獨立性、資料的安全性就有了良好的保障
8.通過繼承與多型性,可以大大提高程式的可重用性,使得軟體的開發和維護都更為方便
C++缺點:
1.比較底層,易用性不是很好
2.多重繼承和友元機制
3.標準庫涵蓋範圍不足
4.開發週期長
5.非並行
6.掌握有難度
7.粒度封裝不夠
Java
Java的優點:
1.簡單性
2.物件導向性(物件導向的程度可以達到95%)
3.健壯性
4.跨平臺性
5.高效能(自動垃圾回收機制)
6.多執行緒
7.動態性
8.安全性
Java的缺點:
1.效率低(毋庸置疑)
2.跨平臺是它最大的優點也是最大的缺點
3.複雜性(做一個專案需要很多的知識,涉及面廣)
很多時候,一種語言的優點很可能是它的缺點,缺點又可能是它的優點。這主要看你是從哪方面去考慮。這就印證了那句話,凡事沒有必然。
不管是哪種語言,就像文章開頭所言,只要你採用他達到你想要的,那就成功了。無需過多在意它的缺點,更無需讚揚它的優點。所以網上那些關於哪種語言更好的口水仗,我只能說這樣的爭鬥毫無意義。
語言只是工具,沒有好壞之分。
參考資料:
http://www.mscto.com/C/07626105.html
http://topic.csdn.net/u/20081014/09/a38a71e5-78ad-4fda-867d-8628344575a1.html相關文章
- 程式設計師的奮鬥史(三)——談時間程式設計師
- 《程式設計師的奮鬥史》——目錄程式設計師
- 程式設計師的奮鬥史(三十七)——大學斷代史(一)——開篇程式設計師
- 編輯手記之《一個程式設計師的奮鬥史》程式設計師
- 程式設計師的奮鬥史(五)——謙遜才是王道程式設計師
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——26程式設計師
- 程式設計師的奮鬥史(二)——今天你跑步了嗎程式設計師
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——125程式設計師
- 程式設計師的奮鬥史(四)——興趣是第一驅動力程式設計師
- 一個女程式設計師的奮鬥經歷程式設計師
- 程式設計師的奮鬥史(四十)——大學斷代史(四)——我與部落格程式設計師
- 程式設計師的奮鬥史(三十九)——大學斷代史(三)——我和知乎邂逅程式設計師
- 程式設計師的奮鬥史(四十四)——大學斷代史(八)——大學的友誼程式設計師
- 程式設計師的奮鬥史(四十七)工作三個月小結程式設計師
- 程式設計師的奮鬥史(六)——我們是需要團隊合作精神的程式設計師
- 那些年啊,那些事——一個程式設計師的奮鬥史 開始預售了程式設計師
- 程式設計師的奮鬥史(四十一)——大學斷代史(五)——我的娛樂方式程式設計師
- 程式設計師的奮鬥史(四十二)——大學斷代史(六)——我與圖書館程式設計師
- 程式設計師的奮鬥史(七)——溝通交流、表達能力的重要性程式設計師
- 程式設計師必知的程式語言編年史程式設計師
- 程式設計師的奮鬥史(三十八)——大學斷代史(二)——我與資料庫的故事程式設計師資料庫
- 程式設計師的奮鬥史(四十五)——大學斷代史(九)——獨自南下的歲月程式設計師
- 淺談程式設計師的英語學習程式設計師
- 淺談Java 8的函數語言程式設計Java函數程式設計
- java程式設計師要掌握的東東【我的奮鬥目標】Java程式設計師
- 從李小龍的一句話看程式設計師是否應該多學幾種程式語言程式設計師
- 淺談Swift程式語言Swift
- 淺談函數語言程式設計與 Java Stream函數程式設計Java
- “Java跌落向下,Python奮鬥向前”,程式設計師:看哭了...JavaPython程式設計師
- 程式設計師眼中的程式語言程式設計師
- 作為程式設計師必須知道的程式語言編年史程式設計師
- 如何成為一個通曉多種程式語言的程式設計師程式設計師
- 程式語言BASIC程式設計師的啟蒙語言C程式程式設計師
- 程式設計師的奮鬥史(四十三)——大學斷代史(七)——在實驗室的日子與我的學業程式設計師
- 淺談程式設計師創業程式設計師創業
- 從初學者到程式設計高手,幾種必學的程式語言程式設計
- 最讓程式設計師感到崩潰的10種程式語言程式設計師
- 程式設計師的奮鬥史(四十六)——大學斷代史(十)——給學弟學妹們的忠告——終結篇程式設計師