來源:簡書作者靈感編程

學編程,意味著要選擇一種編程語言,那麽很容易産生的疑惑就是:選哪種編程語言?爲什麽要有那麽多的編程語言?

先來看爲什麽要有那麽多的編程語言:

編程領域內爲什麽要有那麽多的語言?

1:應用領域不同,導致需要的是不同的編譯效率和代碼質量以及執行速度的要求

編程領域內爲什麽要有那麽多的語言?

所以要求處理速度快,代碼質量高,能用一句的絕不用兩句,那麽就意味著不能有很複雜的編譯過程、同時代碼質量要高、精簡,不能笨重。顯然應該直接寫機器碼,起碼也得寫彙編語言,一步到位就能得到機器碼。再不濟也得用C語言,但爲了開發起來友好點,想方便一點,C++也霸蠻的允許,因爲它裏面有面向對象可以極大的方便編程。但再不能是java了或者PHP以及JS這些了。

所以比如嵌入式領域或者底層驅動領域,你就不會看到用JAVA和PHP去寫驅動就是這個原因。爲了任務分配合理,開發人員偷懶,選擇了引入操作系統,但也通常也只能是小的被裁剪了的操作系統內核,如uclinux,也絕不能是那種直接在電腦上運行的龐大的操作系統如win7,win8,win10,redhat,centos;否則就意味著要麽你的系統性能下降,要麽就需要你的硬件升級。

2:使用的領域不同,導致側重點不同。而不是編程語言本身的好壞。那麽平常說的好壞只是對開發人員的友好性而言。

編程領域內爲什麽要有那麽多的語言?

比如:PHP是面對應用領域的開發語言。要求的是快速看到效果,友好性好。因此就不太在乎比C語言多損耗了點編譯性能和多集成一些庫了。所以,它的最大特點就是:把N多常用的庫都集成進來了,讓你用起來簡單的多,如:mysql連接庫,mysqli鏈接庫等。

但這並不能說明PHP就比C語言好,只是對用戶開發起來友好而已,只是他們用的領域不同而已。如果從驅動領域來說,PHP談不上比C語言好!如果從開發微信交互來說,C語言談不上比PHP好。

3:開發時間決定

編程領域內爲什麽要有那麽多的語言?

如:PHP重要的是應用,應該在短時間內開發出應用,那就不能從頭到尾的寫,否則內容太多,比如你不可能從彙編寫起來,否則功能還沒寫出來,幾個月就過去了,所以PHP領域內會出現很多很多的框架和CMS系統,這些系統雖然參差不齊,有的代碼質量本身就很差勁,但是能看到效果啊,

至于晚幾毫秒,用戶也根本體驗不到,所以開發速度就要比代碼本身的質量效率和解析效率要重要的多。否則,PHP的應用定位就失去了意義,它就不能說自己是面向應用領域的上層語言了,那是什麽?鬼知道!

所以要求開發速度、能馬上見到效果的領域,就要開發起來變得很簡單,那麽就得用上層的面向對象的方式去支撐。所以,PHP的開發就是直接用面向對象來應用。

那麽用彙編和C語言去寫非常好看的圖形化界面,它的意義只在于學習,而不在于實際應用。你寫了好幾天的引入各種的圖形庫函數庫最後看到個紅顔色,還不如PHP裏寫一條控制CSS的color:red來的省事呢,當然用CSS就更加省事了。

所以學習什麽和實際怎麽使用,還是有一點差距的。

4:用戶體驗度、友好性決定

編程領域內爲什麽要有那麽多的語言?

很多人在寫C語言的時候感覺很頭痛,因爲C語言友好性不好(雖然比彙編還是友好點),特別是它的字符串處理很是麻煩,經常容易錯,又難以理解,用起來一點都不如中上層語言方便,如:C++如PHP如Java;友好程度也不如他們。

比如:C語言你編程很可能經常會被報告指針不能讀和寫!但PHP,不會動不動給你彈出指針錯誤的那種恐怖的窗口。因爲它做了很多包容性好的異常處理。

但這是需要消耗編譯性能和速度的。所以:C語言明明可以引入這些,但是爲了讓編譯效率高就是不引入。這就是C語言爲什麽那麽多年了就是停留在面向過程的級別。而PHP就會把這些東西都早已集成進來了。那麽意味著每次都要加載那麽多的東西,勢必效率就會慢。

這樣自然不能用在操作速度要求很快的比如操作系統任務分配裏了,也不能用在驅動裏了,因爲經常要經過這些動作,你每次都笨重,自然速度就慢。

但這並不能說明PHP就比C語言好,也不能說明C語言比PHP好。如果走到他們各自擅長的領域,他們比誰都好。

各門語言因爲自己定位在不同的應用領域,所以它的編譯器(或者叫解釋器)即使語法功能沒做的那麽智能和強大,也不會去升級,否則就失去了它的應用定位的意義。

這就是C語言裏爲什麽就到面向過程就打止了的原因。不是不可以引入面向對象類的解析功能,而是引入了會導致編譯器解析速度和效率的降低,C語言就會成爲一個應用領域不明確的四不像的語言。就失去了本身的意義。所以不再引入。

由此可見:其實編程語言本身其實談不上好和壞,只是應用領域的不同而已。所以選擇什麽編程語言,就看你要朝哪方面去走了。

其實這麽多的語言,編程思想上沒什麽區別。只要學懂編程思想,一切語言都通。

既然沒有什麽好壞之分,編程思想也是相通的,那麽就是看你以後想做什麽了。學習編程還有就是多實踐,最好是能結合生活中的實際應用場景,深入研究下去,否則很可能什麽都不精通!知道再多的語言也沒有什麽意義。