編程語言有數(shù)百種,對于初級程序員來說,應(yīng)該選哪種編程語言呢? 主流編程語言之間又有什么差異呢?
以下是2017年最新的TIOBE世界編程語言排行榜
TIOBE世界編程語言排行榜
這些編程語言之間,對于程序員來說,到底有什么差異呢?以主流編程語言為例,以下分析下各自的優(yōu)劣勢:
Java
優(yōu)勢:JVM帶來安全性上的飛躍,以及優(yōu)秀的跨平臺能力。極其龐大的社區(qū),極其豐富的各種資源。除了極端性能敏感場合,基本萬事通。勢力最大的地方是企業(yè)級程序。
劣勢:社區(qū)普遍有過度設(shè)計的傾向,代碼量爆炸。即使有IDE輔助不再折磨手指,也是折磨眼睛。
C
優(yōu)勢:極好的性能,可靠的標(biāo)準(zhǔn)和編譯器。無論是自己代碼的行為,還是操作底層硬件、操作內(nèi)存,都是直截了當(dāng)不繞彎子。非常適合底層代碼,如操作系統(tǒng)內(nèi)核。
劣勢:語言特性極其有限,開發(fā)起來十分繁瑣,且沒有任何安全防護(hù),一切全靠程序員自己。
C++
優(yōu)勢:和C相去無幾的性能,對C良好的兼容性,極其豐富的語言特性,開發(fā)效率比C高很多。適用于對性能敏感,又有復(fù)雜邏輯的地方。如游戲,系統(tǒng)程序等。
劣勢:極其復(fù)雜的語言特性,既虐待要學(xué)習(xí)的程序員,也虐待實現(xiàn)語言的編譯器。導(dǎo)致雖有標(biāo)準(zhǔn),但一堆編譯器的實現(xiàn)都不是太一致。安全防護(hù)有限,自己不小心,仍然容易出現(xiàn)底層錯誤。
C#
優(yōu)勢:完美版的Java,語言設(shè)計優(yōu)秀不少。宇宙第一IDE的加成。資源也很豐富。適合場合與Java類似。
劣勢:出身問題飽受開源原教旨主義者歧視,在非微軟平臺上一直在各種意義上是三等公民。
PHP
優(yōu)勢:為web而生,專注于web,開發(fā)web便捷迅速。適合(且只適合)于網(wǎng)站后臺。
劣勢:語言設(shè)計簡陋。
Python
優(yōu)勢:易學(xué)易用,極高的靈活性,開發(fā)效率很高。適合日常腳本,系統(tǒng)管理,網(wǎng)站后臺,科學(xué)計算,膠水語言等等。
劣勢:性能低下,多線程支持一直是殘廢狀態(tài),2/3分裂一直沒有完全解決,動態(tài)語言固有的正確性無法靜態(tài)分析,依賴于測試的死結(jié)。
JavaScript
優(yōu)勢:以前專注于前端,現(xiàn)在大肆攻城略地,滲透到web技術(shù)所能觸及的任何場合。最適合的場合永遠(yuǎn)是web頁面之中。
劣勢:除了沒有2/3分裂問題,Python的弱點一樣不落地全有。草創(chuàng)時的設(shè)計粗糙,導(dǎo)致大量陰險的暗坑(如弱類型等),因為兼容性問題一直不能完全填平。
obj-c
優(yōu)勢:IOS開發(fā)很賺錢。最適合場合:蘋果帝國里。
劣勢:依賴IOS,離開蘋果就沒人理。
基于以上的介紹,剛學(xué)習(xí)的程序員們可以根據(jù)自己的興趣,或者根據(jù)需要,擇優(yōu)選擇學(xué)習(xí)。不過最后強調(diào)一下:
① 語言只是工具,假以時日,你都會熟練掌握一門/多門語言。
② 編程語言用來表達(dá)你對計算機的理解,表達(dá)你的想法,所以解決問題的思路及方法更為重要。