PHPJavaPythonC?
如果把編程語言比作國家的話:
PHP:巴西。擁有很多美好的事物,經常炫耀自己,但私底下其實非常保守。
Java:美國。樂觀,強大,喜歡把麻煩事掩蓋起來。
Python:荷蘭。時髦,富有,平易近人,有吸引力,但并不是表現最佳的。
C:挪威。強勢,動態,但無法令人感到激動。
C++:英國。強大,嚴謹,但并不擅長于干實事,逐漸被Java取代。
如果把編程語言比作車的話:
PHP:Oscar Mayer Wienermobile。外形奇特,難以駕馭,但每個人都想駕馭它。
Java:家庭旅行車。駕駛起來很容易,速度不會太快,不容易車毀人亡。
Python:適合初學者使用的車。可以無照駕駛,適合在路況好、車速<30碼的地方行駛。
C:賽車。跑得很快,但它可能每50公里就拋錨一次。
C++:C賽車的升級版。它除了擁有C賽車的功能,還增加了許多新功能。例如它每250公里只拋錨一次,但是一旦它拋錨,基本上沒人能找出是什么地方出了錯。
--------------------------------以下是幾種語言的特點-----------------
PHP
優點:
1. 跨平臺,性能優越
跟Linux/Unix結合比跟Windows結合性能強45%,并且和很多免費的平臺結合非常省錢。
2. 語法簡單,容易上手
PHP有成熟的開發工具,比如NuPHPed,在Linux平臺下可以使用Eclipse等等。
3. 技術支持性好
很多技術工具,比如WebService、Ajax、XML等等,足夠應用;還能夠使用多種數據抽象層,模板層,方法。
4.框架多且成熟
比如支持MVC的框架:phpMVC,支持類似http://ASP.net的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
5.面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
6..開源性
比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
缺點:
1.對多線程支持不太好,大多數時候我們只能簡單的模擬去實現的。
2.語法不太嚴謹,比如變量不需要定義就可以使用,在c,Java,c++中變量是必須先定義以后才可以使用的。
3. PHP的解釋運行機制繁瑣。
Python
優點
1.易于學習
python雖然是用c語言寫的,但是它擯棄了c中非常復雜的指針,簡化了python的語法,它使你能夠專注于解決問題而不是去搞明白語言本身。
2.開源性
Python是FLOSS(自由/開放源碼軟件)之一,Python希望看到一個更加優秀的人創造并經常改進。
3.可移植性
Python經過改動,已經被移植在許多平臺上了。另外,Python解釋器把源代碼轉換成稱為字節碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行,因而,你只需要把你的Python程序拷貝到另外一臺計算機上,它就可以工作了,這也使得你的Python程序更加易于移植。
4.面向對象面向過程同時支持。
5.可擴展性和可嵌入性
你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。
6.標準庫以及第三方庫資源豐富
Python標準庫確實很龐大。python有可定義的第三方庫可以使用。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)等等。
缺點
1.運行速度慢,相比于C++/C運行速度偏慢,不過對于用戶而言,機器上運行速度是可以忽略的。
2.構架選擇太繁雜,沒有像C#這樣的官方.net構架,也沒有像ruby由于歷史較短,構架開發的相對集中,所以人人都有不同的方案。
Java
優點:
1. 跨平臺性
Java語言中, Java自帶的虛擬機很好地實現了跨平臺性。 Java虛擬機提供了一個字節碼到底層硬件平臺及操作系統的屏障,使得Java語言具備跨平臺性。
2. 面向對象
Java是一種面向對象的語言,也繼承了面向對象的諸多好處,如代碼擴展、代碼復用等。
3. 安全性
運行時Java類需要類加載器載入,并經由字節碼校驗器校驗之后才可以運行。 Java類在網絡上使用時,對它的權限進行了設置,保證了被訪問用戶的安全性。
4. 多線程
Java除了內置的多線程技術之外,還定義了一些類、方法等來建立和管理用戶定義的多線程。
5. 簡單易用
Java源代碼的書寫不拘泥于特定的環境,可以用記事本、文本編輯器等編輯軟件來實現,然后將源文件進行編譯,編譯通過后可直接運行,通過調試則可得到想要的結果。
缺點:
運行速度相比于C/C++有些緩慢了,這是機制原因導致的。
C
優點:
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、字節和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4.C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C能直接訪問物理地址和操作硬件
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟件。
7. C語言程序生成代碼質量高
程序執行效率高一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合于多種操作系統, 如DOS、UNIX,也適用于多種機型。
另外
C語言具有繪圖能力強,可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫它是數值計算的高級語言。
缺點:
運算符和運算優先級過多,不便于記憶,語法定義不嚴格,編程自由度大,對新手不友好。
C++
C++除了兼具了C語言的優勢之外,還有一下特點:
C++語言的主要特點表現在兩個方面,一是盡量兼容C,二是支持面向對象的方法。
它操持了C的簡潔、高效的接近匯編語言等特點,對C的類型系統進行了改革的擴充,因此C++比C更安全,C++的編譯系統能檢查出更多的類型錯誤。
另外,由于C語言的廣泛使用,因而極大的促進了C++的普及和推廣。C++語言最有意義的方面是支持面向對象的特征。雖然與C的兼容使得C++具有雙重特點,但他在概念上完全與C不同,更具面向對象的特征。
出于保證語言的簡潔和運行高效等方面的考慮,C++的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言本身里。C++引入了面向對象的概念,使得開發人機交互類型的應用程序更為簡單、快捷。很多優秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++。
歡迎關注我的微信公眾號:九章算法(ninechapter),幫助你了解IT技術前沿,通過面試、拿到offer、找到好工作!