學編程,意味着要選擇一種編程語言,那麼很容易產生的疑惑就是:選哪一種編程語言?爲何要有那麼多的編程語言?java
先來看爲何要有那麼多的編程語言:mysql
1:應用領域不一樣,致使須要的是不一樣的編譯效率和代碼質量以及執行速度的要求:底層是用戶發出操做上層的各個軟件發出全部指令的最終匯聚點,都要去控制CPU。至關告訴千米上的收費站,全部車輛都要匯聚到這裏。linux
因此要求處理速度快,代碼質量高,能用一句的毫不用兩句,那麼就意味着不能有很複雜的編譯過程、同時代碼質量要高、精簡,不能笨重。顯然應該直接寫機器碼,起碼也得寫彙編語言,一步到位就能獲得機器碼。再不濟也得用C語言,但爲了開發起來友好點,想方便一點,C++也霸蠻的容許,由於它裏面有面向對象能夠極大的方便編程。但再不能是java了或者PHP以及JS這些了。sql
因此好比嵌入式領域或者底層驅動領域,你就不會看到用JAVA和PHP去寫驅動就是這個緣由。爲了任務分配合理,開發人員偷懶,選擇了引入操做系統,但也一般也只能是小的被裁剪了的操做系統內核,如uclinux,也毫不能是那種直接在電腦上運行的龐大的操做系統如win7,win8,win10,redhat,centos;不然就意味着要麼你的系統性能降低,要麼就須要你的硬件升級。編程
2:使用的領域不一樣,致使側重點不一樣。而不是編程語言自己的好壞。那麼日常說的好壞只是對開發人員的友好性而言。centos
好比: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的方向是一個很不錯的方向...一我的不能作兩個甚至多個行業的事情,不然若是你不是夠聰明,極可能什麼都不精通!慎選。