學(xué)編程,意味著要選擇一種編程語言,那么很容易產(chǎn)生的疑惑就是:選哪種編程語言?為什么要有那么多的編程語言?
先來看為什么要有那么多的編程語言
1:應(yīng)用領(lǐng)域不同,導(dǎo)致需要的是不同的編譯效率和代碼質(zhì)量以及執(zhí)行速度的要求:底層是用戶發(fā)出操作上層的各個(gè)軟件發(fā)出所有指令的最終匯聚點(diǎn),都要去控制CPU。相當(dāng)告訴公里上的收費(fèi)站,所有車輛都要匯聚到這里。
所以要求處理速度快,代碼質(zhì)量高,能用一句的絕不用兩句,那么就意味著不能有很復(fù)雜的編譯過程、同時(shí)代碼質(zhì)量要高、精簡(jiǎn),不能笨重。
顯然應(yīng)該直接寫機(jī)器碼,起碼也得寫匯編語言,一步到位就能得到機(jī)器碼。再不濟(jì)也得用C語言,
但為了開發(fā)起來友好點(diǎn),想方便一點(diǎn),C++也霸蠻的允許,因?yàn)樗锩嬗忻嫦驅(qū)ο罂梢詷O大的方便編程。但再不能是java了或者PHP以及JS這些了。
所以比如嵌入式領(lǐng)域或者底層驅(qū)動(dòng)領(lǐng)域,你就不會(huì)看到用JAVA和PHP去寫驅(qū)動(dòng)就是這個(gè)原因。
為了任務(wù)分配合理,開發(fā)人員偷懶,選擇了引入操作系統(tǒng),但也通常也只能是小的被裁剪了的操作系統(tǒng)內(nèi)核,
如,也絕不能是那種直接在電腦上運(yùn)行的龐大的操作系統(tǒng)如win7,win8,win10,,;否則就意味著要么你的系統(tǒng)性能下降,要么就需要你的硬件升級(jí)。
2:使用的領(lǐng)域不同,導(dǎo)致側(cè)重點(diǎn)不同。而不是編程語言本身的好壞。那么平常說的好壞只是對(duì)開發(fā)人員的友好性而言。
比如:PHP是面對(duì)應(yīng)用領(lǐng)域的開發(fā)語言。要求的是快速看到效果,友好性好。因此就不太在乎比C語言多損耗了點(diǎn)編譯性能和多集成一些庫(kù)了。
所以,它的最大特點(diǎn)就是:把N多常用的庫(kù)都集成進(jìn)來了,讓你用起來簡(jiǎn)單的多,如:mysql連接庫(kù),鏈接庫(kù)等。
但這并不能說明PHP就比C語言好,只是對(duì)用戶開發(fā)起來友好而已,只是他們用的領(lǐng)域不同而已。
如果從驅(qū)動(dòng)領(lǐng)域來說,PHP談不上比C語言好!如果從開發(fā)微信交互來說,C語言談不上比PHP好。
3:開發(fā)時(shí)間決定
如:PHP重要的是應(yīng)用,應(yīng)該在短時(shí)間內(nèi)開發(fā)出應(yīng)用,那就不能從頭到尾的寫,否則內(nèi)容太多,比如你不可能從匯編寫起來,
否則功能還沒寫出來,幾個(gè)月就過去了,所以PHP領(lǐng)域內(nèi)會(huì)出現(xiàn)很多很多的框架和CMS系統(tǒng),這些系統(tǒng)雖然參差不齊,有的代碼質(zhì)量本身就很差勁,但是能看到效果啊。
至于晚幾毫秒,用戶也根本體驗(yàn)不到,所以開發(fā)速度就要比代碼本身的質(zhì)量效率和解析效率要重要的多。
否則,PHP的應(yīng)用定位就失去了意義,它就不能說自己是面向應(yīng)用領(lǐng)域的上層語言了,那是什么?鬼知道!
所以要求開發(fā)速度、能馬上見到效果的領(lǐng)域,就要開發(fā)起來變得很簡(jiǎn)單,那么就得用上層的面向?qū)ο蟮姆绞饺ブ巍?/p>
所以,PHP的開發(fā)就是直接用面向?qū)ο髞響?yīng)用。
那么用匯編和C語言去寫非常好看的圖形化界面,它的意義只在于學(xué)習(xí),而不在于實(shí)際應(yīng)用。
你寫了好幾天的引入各種的圖形庫(kù)函數(shù)庫(kù)最后看到個(gè)紅顏色,還不如PHP里寫一條控制CSS的color:red來的省事呢,當(dāng)然用CSS就更加省事了。
所以學(xué)習(xí)什么和實(shí)際怎么使用,之間還有一個(gè)賽選的味道。
4:用戶體驗(yàn)度、友好性決定
很多人在寫C語言的時(shí)候感覺很頭痛,因?yàn)镃語言友好性不好(雖然比匯編還是友好點(diǎn)),
特別是它的字符串處理很是麻煩,經(jīng)常容易錯(cuò),又難以理解,用起來一點(diǎn)都不如中上層語言方便,如:C++如PHP如Java;友好程度也不如他們。
比如:C語言你編程很可能經(jīng)常會(huì)被報(bào)告指針不能讀和寫!但PHP,不會(huì)動(dòng)不動(dòng)給你彈出指針錯(cuò)誤的那種恐怖的窗口。
因?yàn)樗隽撕芏喟菪院玫漠惓L幚怼?/p>
但這是需要消耗編譯性能和速度的。所以:C語言明明可以引入這些,但是為了讓編譯效率高就是不引入。
這就是C語言為什么那么多年了就是停留在面向過程的級(jí)別。而PHP就會(huì)把這些東西都早已集成進(jìn)來了。
那么意味著每次都要加載那么多的東西,勢(shì)必效率就會(huì)慢。
這樣自然不能用在操作速度要求很快的比如操作系統(tǒng)任務(wù)分配里了,也不能用在驅(qū)動(dòng)里了,因?yàn)榻?jīng)常要經(jīng)過這些動(dòng)作,你每次都笨重,自然速度就慢。
但這并不能說明PHP就比C語言好,也不能說明C語言比PHP好。如果走到他們各自擅長(zhǎng)的領(lǐng)域,他們比誰都好。
各門語言因?yàn)樽约憾ㄎ辉诓煌膽?yīng)用領(lǐng)域,所以它的編譯器(或者叫解釋器)即使語法功能沒做的那么智能和強(qiáng)大,
也不會(huì)去升級(jí),否則就失去了它的應(yīng)用定位的意義。
這就是C語言里為什么就到面向過程就打止了的原因。
不是不可以引入面向?qū)ο箢惖慕馕龉δ埽且肓藭?huì)導(dǎo)致編譯器解析速度和效率的降低,C語言就會(huì)成為一個(gè)應(yīng)用領(lǐng)域不明確的四不像的語言。
就失去了本身的意義。所以不再引入。
由此可見:其實(shí)編程語言本身其實(shí)談不上好和壞,只是應(yīng)用領(lǐng)域的不同而已。
所以選擇什么編程語言,就看你要朝哪方面去走了。
其實(shí)這么多的語言,編程思想上沒什么區(qū)別。只要學(xué)懂編程思想,一切語言都通。
既然沒有什么好壞之分,編程思想也是相通的,那么就是看你怎么才能學(xué)懂編程和以后想做什么了。學(xué)習(xí)順序和學(xué)習(xí)方法就很重要。
學(xué)編程思想,得先從C語言去看,學(xué)會(huì)面向過程編程思想;
然后從C++去看,學(xué)會(huì)面向?qū)ο缶幊趟枷搿?/p>
然后去學(xué)一門應(yīng)用范圍廣的語言,比如PHP,如:JAVA,如C#。
因?yàn)橛捎诰幊趟枷胧窍嗤ǖ模訮HP的面向過程和面向?qū)ο蟮恼Z法可以推理出一多半,這樣就可以給PHP的學(xué)習(xí)減負(fù)了許多許多...
至于你選擇什么上層語言,就看你以后想工作在什么領(lǐng)域,這就又要和未來的發(fā)展趨勢(shì)來結(jié)合一起考慮了,你想做驅(qū)動(dòng),想做嵌入式底層c語言 圖形用戶界面,那你就和苦澀無味的C語言打一輩子交道,忍受它的開發(fā)麻煩的困擾。
但是以后移動(dòng)互聯(lián)+的影響會(huì)越來越深入和廣大,PHP的方向是一個(gè)很不錯(cuò)的方向...一個(gè)人不能做兩個(gè)甚至多個(gè)行業(yè)的事情,否則如果你不是夠聰明,很可能什么都不精通!慎選。
寧哥簡(jiǎn)介
我也是來自農(nóng)村c語言 圖形用戶界面,也是一個(gè)真正的地地道道的窮山溝出來的人。
碩士畢業(yè)后閉關(guān)3年修煉PHP體系。
但我現(xiàn)在可以在全國(guó)去任何城市輕易的找到高薪工作。
但最終懷抱輕松學(xué)習(xí)的理想,開創(chuàng)PHP學(xué)習(xí)輔導(dǎo)的平臺(tái):“PHP葵花寶
典”(),希望打造出一個(gè)真正有實(shí)際指導(dǎo)意義的平臺(tái)。
讓它成為初學(xué)者前行的燈塔,成為在求學(xué)沙漠上的一片綠洲。
成為浮躁而無助的塵世中一道靚麗的風(fēng)景線,相信總有一天,這種愿望會(huì)散發(fā)出萬丈光芒.......