1. 程式人生 > >程式設計領域內為什麼要有那麼多的語言?

程式設計領域內為什麼要有那麼多的語言?

學程式設計,意味著要選擇一種程式語言,那麼很容易產生的疑惑就是:選哪種程式語言?為什麼要有那麼多的程式語言?

先來看為什麼要有那麼多的程式語言:

1:應用領域不同,導致需要的是不同的編譯效率和程式碼質量以及執行速度的要求:底層是使用者發出操作上層的各個軟體發出所有指令的最終匯聚點,都要去控制CPU。相當告訴公里上的收費站,所有車輛都要匯聚到這裡。

所以要求處理速度快,程式碼質量高,能用一句的絕不用兩句,那麼就意味著不能有很複雜的編譯過程、同時代碼質量要高、精簡,不能笨重。顯然應該直接寫機器碼,起碼也得寫組合語言,一步到位就能得到機器碼。再不濟也得用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語言就會成為一個應用領域不明確的四不像的語言。就失去了本身的意義。所以不再引入。

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

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

既然沒有什麼好壞之分,程式設計思想也是相通的,那麼就是看你怎麼才能學懂程式設計和以後想做什麼了。學習順序和學習方法就很重要。

學程式設計思想,得先從C語言去看,學會面向過程程式設計思想;

然後從C++去看,學會面向物件程式設計思想。

然後去學一門應用範圍廣的語言,比如PHP,如:JAVA,如C#。

因為由於程式設計思想是相通的,所以PHP的面向過程和麵向物件的語法可以推理出一多半,這樣就可以給PHP的學習減負了許多許多...

至於你選擇什麼上層語言,就看你以後想工作在什麼領域,這就又要和未來的發展趨勢來結合一起考慮了,你想做驅動,想做嵌入式底層,那你就和苦澀無味的C語言打一輩子交道,忍受它的開發麻煩的困擾。

但是以後移動互聯+的影響會越來越深入和廣大,PHP的方向是一個很不錯的方向...一個人不能做兩個甚至多個行業的事情,否則如果你不是夠聰明,很可能什麼都不精通!慎選。