鐘勝輝談PHP發(fā)展的現(xiàn)狀和前景
原創(chuàng)【51CTO獨(dú)家專(zhuān)訪(fǎng)】鐘勝輝,也就是國(guó)內(nèi)PHP領(lǐng)域廣為人知的淡淡風(fēng)。鐘勝輝是PHPcms的創(chuàng)始人,之后他第二次創(chuàng)業(yè),帶來(lái)了令人期待已久的CMSTOP。近日,51CTO記者阿菜通過(guò)電子郵件聯(lián)系到了鐘勝輝先生,請(qǐng)他談一談PHP發(fā)展的現(xiàn)狀和前景。以下是交流信件原文:
PHPcms和CMSTOP創(chuàng)始人:鐘勝輝(淡淡風(fēng))
51CTO記者:從Web開(kāi)發(fā)的歷史看來(lái),PHP、Python和Ruby幾乎是同時(shí)出現(xiàn)的,都是十分有特點(diǎn)的、優(yōu)秀的開(kāi)源語(yǔ)言,但PHP卻獲得了比Python和Ruby多得多的關(guān)注度(PHP在本月的TIOBE排行榜上已經(jīng)排行第三,超過(guò)C++了)。您認(rèn)為這和PHP旨在網(wǎng)站開(kāi)發(fā)的立足點(diǎn)與PHP語(yǔ)言本身的特點(diǎn)有很大關(guān)系么,還是有什么其他的因素影響?
鐘勝輝:三門(mén)語(yǔ)言當(dāng)中,無(wú)疑php是最流行的,而Python和Ruby在最近幾年也有著不錯(cuò)的發(fā)展趨勢(shì)。我個(gè)人認(rèn)為,Ruby的流行更多地源于Ruby on Rails,這個(gè)框架的流行程度甚至超過(guò)了Ruby語(yǔ)言本身,也引發(fā)了其它語(yǔ)言平臺(tái)上對(duì)框架的研究。而Python在近來(lái)的被關(guān)注度和發(fā)展速度要超過(guò)Ruby,被一些喜歡創(chuàng)新的項(xiàng)目采用,這可能要更多地歸功于google。
這三種語(yǔ)言都是相當(dāng)優(yōu)秀的腳本語(yǔ)言,為什么PHP能大行其道,殺入排行榜的三甲呢?從表面上來(lái)看,這是就業(yè)環(huán)境使然。越來(lái)越多的新公司或者新項(xiàng)目使用PHP,這使得PHP相關(guān)社區(qū)越來(lái)越活躍,而這又反過(guò)來(lái)影響到很多項(xiàng)目或公司的選擇,形成一個(gè)良性的循環(huán)。就我目前了解到的情況,PHP是國(guó)內(nèi)大部分web項(xiàng)目的首選,而且有很多公司從其它語(yǔ)言(如ASP,JAVA)轉(zhuǎn)到了PHP。合適的就是最好的,PHP的快速,開(kāi)發(fā)成本低,周期短,后期維護(hù)費(fèi)用低,開(kāi)源產(chǎn)品豐富(這點(diǎn)可以影響到很多項(xiàng)目的決策),這些都是另外兩種語(yǔ)言無(wú)法比擬的。另外,在很多大項(xiàng)目中,Python更多地是做為一種“粘合劑語(yǔ)言”出現(xiàn),似乎正在走向與PHP不同的發(fā)展方向,讓我們拭目以待。
51CTO記者:PHP開(kāi)發(fā)框架的盛行是由RoR的火爆所引起的,而PHP框架的發(fā)展也從模仿Rails到逐漸有了自己的風(fēng)格。不過(guò)仍然有很多入行較早的PHP開(kāi)發(fā)者至今仍認(rèn)為PHP這種快捷的語(yǔ)言不需要框架,甚至認(rèn)為只要有優(yōu)秀的架構(gòu),框架根本沒(méi)必要。您認(rèn)為PHP框架對(duì)PHP而言是必要的么?您對(duì)于PHP開(kāi)發(fā)工具的現(xiàn)狀滿(mǎn)意么?
鐘勝輝:這是一個(gè)見(jiàn)仁見(jiàn)智的問(wèn)題,我個(gè)人認(rèn)為,一個(gè)優(yōu)秀的框架能在很大程度上提高工作效率,尤其是對(duì)大中型項(xiàng)目。當(dāng)然如果對(duì)項(xiàng)目有足夠的把控能力,框架也并非是必須的,畢竟PHP的框架跟ROR的情況有所不同,多而混亂,而學(xué)習(xí)一個(gè)框架是需要時(shí)間的。像你的問(wèn)題中提到的,很多老的PHP程序員對(duì)框架不屑一顧,認(rèn)為自己對(duì)項(xiàng)目有足夠的把控能力,不需要框架這么累贅的東西,然而從長(zhǎng)遠(yuǎn)來(lái)看,一個(gè)優(yōu)秀的框架可以延長(zhǎng)一個(gè)項(xiàng)目的壽命,降低維護(hù)和二次開(kāi)發(fā)的成本。我們目前正在開(kāi)發(fā)中的CMSTOP,是一個(gè)產(chǎn)品型項(xiàng)目,在這樣的項(xiàng)目中,沒(méi)有一個(gè)優(yōu)秀的框架是很難想象的。在研究對(duì)比了目前主流的PHP框架之后,我們發(fā)現(xiàn)沒(méi)有哪個(gè)框架能完全適合一個(gè)CMS的項(xiàng)目,于是我們決定自己開(kāi)發(fā)一個(gè)框架。目前這個(gè)框架極大地提高了我們的工作效率,而且,我們會(huì)在適當(dāng)?shù)臅r(shí)候?qū)⑦@個(gè)框架開(kāi)源。
51CTO記者:PHP的面向?qū)ο笤O(shè)計(jì)的并不是很好。很多在Java一類(lèi)語(yǔ)言里面可以很好應(yīng)用的面向?qū)ο髮?xiě)法在PHP里面實(shí)現(xiàn)起來(lái)卻很繁瑣。您認(rèn)為面向?qū)ο髮?duì)于PHP這樣的Web開(kāi)發(fā)語(yǔ)言來(lái)說(shuō)重要么?PHP的面向?qū)ο笫欠襁€能夠改進(jìn)呢?
鐘勝輝:PHP的面向?qū)ο髮儆跉v史遺留問(wèn)題,而且,說(shuō)其不好,慢慢也會(huì)成為歷史問(wèn)題。從PHP5相對(duì)PHP4的進(jìn)步,我們有理由去期待PHP6給我們帶來(lái)更多的驚喜。不論對(duì)什么樣的語(yǔ)言,面向?qū)ο蟾嗟氖且环N思考問(wèn)題的方法,沒(méi)有必要為了面向?qū)ο蠖ッ嫦驅(qū)ο?。PHP最初的面向?qū)ο螅梢院?jiǎn)單地看作是函數(shù)的升級(jí),曾經(jīng)被很多其它語(yǔ)言的開(kāi)發(fā)者取笑,但PHP5的面向?qū)ο笠呀?jīng)足以滿(mǎn)足大部分WEB項(xiàng)目了。一門(mén)語(yǔ)言要想生存下去,就得去適應(yīng)技術(shù)發(fā)展的潮流,并不斷做出調(diào)整,在這方面,PHP的團(tuán)隊(duì)充滿(mǎn)了活力。
51CTO記者:PHP網(wǎng)站的安全是個(gè)很常見(jiàn)的問(wèn)題,有關(guān)PHP網(wǎng)站漏洞的消息是很多的。您認(rèn)為這其中的原因和PHP語(yǔ)言本身的特點(diǎn)有關(guān)么(相對(duì)于如PHP網(wǎng)站數(shù)量、PHP代碼編寫(xiě)習(xí)慣等其他因素)?PHP的安全有改善的空間么?
鐘勝輝:網(wǎng)站的安全是一個(gè)比較系統(tǒng)的問(wèn)題,它跟服務(wù)器安全以及代碼的質(zhì)量是直接相關(guān)的,我們并不能說(shuō)PHP這門(mén)語(yǔ)言不安全。目前PHP有很多優(yōu)秀的開(kāi)源產(chǎn)品,例如discuz,phpcms等,即使在開(kāi)源的情況下,這些產(chǎn)品也保證了足夠的安全性。PHP的門(mén)檻很低,一兩周的時(shí)間就可以入門(mén),而這些“快速入門(mén)”的程序員,往往容易忽略代碼安全問(wèn)題。安全問(wèn)題的改善,取決于越來(lái)越多的PHP程序員對(duì)這個(gè)問(wèn)題的重視程度。
51CTO記者:現(xiàn)在在不少大型項(xiàng)目中,PHP完全充當(dāng)了腳本的功能,而邏輯性比較強(qiáng)的業(yè)務(wù)處理則由另一門(mén)功能豐富的語(yǔ)言(例如Java)來(lái)實(shí)現(xiàn)。您認(rèn)為這樣在復(fù)雜度、開(kāi)發(fā)快捷度、開(kāi)發(fā)周期以及成本等方面有著怎樣的影響?
鐘勝輝:這種情況確實(shí)存在,但我認(rèn)為之所以出現(xiàn)這種情況,并不是因?yàn)镻HP“做不了”,而是很多項(xiàng)目負(fù)責(zé)人對(duì)PHP的偏見(jiàn)以及對(duì)JAVA等語(yǔ)言的迷信造成了這種現(xiàn)狀。當(dāng)然,我們不能否認(rèn),有很多問(wèn)題確實(shí)是PHP做不了的,做為一種解釋型的腳本語(yǔ)言,PHP本身就不適合做大型的數(shù)據(jù)運(yùn)算,它也不可能成為一門(mén)“萬(wàn)能語(yǔ)言”。在大型項(xiàng)目中,多種語(yǔ)言配合工作是一件很正常的事情,例如說(shuō),PHP負(fù)責(zé)收集數(shù)據(jù),提供界面,C負(fù)責(zé)處理分析數(shù)據(jù),Python來(lái)做粘劑。各種語(yǔ)言各司其職,協(xié)同合作,只是分工的不同而沒(méi)有高低貴之分,就像如果用C來(lái)做數(shù)據(jù)展示一樣會(huì)很痛苦。我不認(rèn)為PHP往復(fù)雜計(jì)算方面發(fā)展是一件好事,而且我相信PHP的開(kāi)發(fā)團(tuán)隊(duì)也會(huì)把握好這個(gè)度。沒(méi)有哪種語(yǔ)言可以做到“萬(wàn)能”,java有這樣的野心,但我們可以看到j(luò)ava現(xiàn)在的境遇似乎并不如PHP那么紅火,如果PHP也追求“萬(wàn)能”,那將是一場(chǎng)災(zāi)難。
【編輯推薦】