程序員屆素來有一個笑話,如果有人在程序員群里大喊一聲“PHP是最好的語言”一定會被群起而攻之。 由于PHP簡單、容易上手,所以很多初入行搞網站的程序員,以及一起剛開始起步的小網站,都是從PHP開始開發(fā)起來的。 那么為什么有很多貌似技術略有小成的程序員,提起PHP來,都會是一臉不屑的表情,仿佛是本科畢業(yè)生看到了初中生的情形。那么問題來了,PHP到底是怎樣一種語言,它到底適合不適合做大型網站呢?PHP程序員,到底應該被鄙視嗎? 首先我們先放結論:PHP非常適合做網站,但是并不適合做WEB系統(tǒng)。 討論一門技術,我們一定要了解一門技術的應用領域,每門技術都有自己擅長的空間,也有自己的弱點,編程中的各類要素參差不齊,有的要求安全,有的要求穩(wěn)定,有的要求快速開發(fā),有的要求簡潔明了,因此,各種語言的側重點不一樣,好的程序員,應該依據各類語言的特點,隨心所欲的在適當?shù)臅r候,使用合適的技術。能夠最佳的滿足多要素的需求。 那么為什么PHP適合做網站呢?我們先來看看PHP是什么,它的定位是什么。PHP(Hypertext Preprocessor),即“超文本預處理器”,是一種通用開源腳本語言。PHP是在服務器端執(zhí)行的腳本語言,與C語言、python類似,php的專業(yè)就是用來寫網站的。它的開發(fā)速度快,消耗系統(tǒng)資源少,周期短,上手容易,成本也很低。因此,PHP很適合一些后臺交互很少的“網站”,即單純給用戶展示一些信息之類的簡單腳本網站。 但是當WEB系統(tǒng)復雜起來,PHP的弱點就顯示出來了。 首先是PHP的安全性,PHP最為人所詬病的一點就是對于缺少對于SQL預處理支持的框架,導致PHP很容易被SQL注入。在2019年的開源代碼漏洞報告中,PHP漏洞占據了27%,僅次于古老的C語言。而PHP眾多模塊的線程不安全性,更是加劇了人們對于PHP安全性的擔憂。因此,注重安全性的WEB系統(tǒng)很難采用PHP這種對于安全支持偏弱的腳來來做。 其次是PHP的性能,盡管PHP7的性能略有提升,但是依然比Java、C#等重型語言慢了20倍以上,而比C、C++、GO更是慢了60倍以上,差勁的性能表現(xiàn),使得PHP很難在高并發(fā)的重要性日益突出的互聯(lián)網世界里占據主流地位。而這也是很多早期使用PHP的大型互聯(lián)網公司,如谷歌、臉書等,后來都棄用了PHP。 第三是PHP對于遞歸的不良支持,遞歸是非常常見的一種算法,在編程中,很多地方會大量使用遞歸。但是PHP對于密集數(shù)據使用了棧方式,而不是使用堆方式,這就導致它對于遞歸函數(shù)的的數(shù)量限制比其它語言少很多。這就導致了一些功能用PHP實現(xiàn)起來會存在很多問題。 因此,這些缺陷的存在,使得PHP并不適合做一個復雜的WEB系統(tǒng),但是現(xiàn)在大型的互聯(lián)網公司,采用的都是微服務架構,各種語言實現(xiàn)的微服務都可以存在于WEB系統(tǒng)當中。因此,了解各種技術的能力和弱點,在不同的業(yè)務類型中使用合適的技術,是每名程序員都要掌握的必備技能。 |
|