PHP未來的一些可能
德國開放源碼軟件開發(fā)者Frank Karlit-schek主導(dǎo)的ownCloud項(xiàng)目,是目前采用PHP編寫的最大型開源項(xiàng)目之一。他在談及為何選擇PHP時(shí),提到以下幾點(diǎn)。
普遍性:ownCloud的目的是讓所有人來托管自己的云服務(wù)器。而PHP目前廣泛用于Web服務(wù)器、操作系統(tǒng),平臺的優(yōu)勢使得用戶能輕松地進(jìn)行部署。
通用性:作為腳本型語言,一個(gè)服務(wù)器tar文件可以運(yùn)行于所有的平臺而無須復(fù)雜的額外編譯。
門檻低:大多數(shù)程序員對PHP都不陌生,即使是零基礎(chǔ)的用戶,學(xué)習(xí)PHP也是相對輕松容易。
輕巧強(qiáng)大:只要使用得當(dāng),PHP運(yùn)行速度快,功能強(qiáng)大。維基百科、Facebook、WordPress等大型Web應(yīng)用都是用PHP編寫的。
資源豐富:PHP擁有龐大的開發(fā)生態(tài)系統(tǒng),包括類庫、組件、連接器/驅(qū)動等。使用它就如同站在了巨人的肩膀上。
但縱然PHP有這些亮麗的優(yōu)點(diǎn),F(xiàn)rank也指出它有不足之處。
安全性:作為20世紀(jì)90年代的產(chǎn)物,它在安全性方面的表現(xiàn)不能令人放心,畢竟那個(gè)時(shí)候人們的安全意識還是比較天真幼稚的。
編譯時(shí)間/運(yùn)行時(shí)配置:調(diào)用./configure腳本來隨心所欲地按照自己意愿編譯PHP聽起來很有趣,但如果進(jìn)行換位思考,我們在維護(hù)時(shí)要逐字逐句地查看別人的腳本配置那就不見得那么美好了。
矛盾的函數(shù)和類命名:一時(shí)是下劃線,一時(shí)是駝峰命名;某些特性可以是過程風(fēng)格或是面向?qū)ο蠼涌陲L(fēng)格,甚或兼而有之。
靜態(tài)類型:PHP在靜態(tài)類型上可以做得更好。
最近Apple新推出的開發(fā)語言Swift觸動了Frank,語言在更新?lián)Q代時(shí)是需要保持向下兼容還是完全創(chuàng)新?而如果是類似Perl和Python那樣無法前后兼容,最終分道揚(yáng)鑣的局面,是大家不想看到的。對此,F(xiàn)rank就PHP的未來提出了自己的想法。
安全性:摒棄_Get、_Post、_SERVER,引入一個(gè)合適的API來對數(shù)據(jù)輸入進(jìn)行篩選。
數(shù)據(jù)庫:PHP的數(shù)據(jù)庫支援API真的太豐富了。但某些API已經(jīng)非常老舊甚至過時(shí)了。Frank建議對此進(jìn)行標(biāo)準(zhǔn)化,最終形成唯一的面向?qū)ο蠼涌诰涂梢粤恕DO是他做出的第一步嘗試。
32位/64位:在32位或64位運(yùn)行PHP時(shí),人們多少會發(fā)現(xiàn)特別是整型數(shù)據(jù)的運(yùn)行差別。消除不同類型系統(tǒng)的運(yùn)行差別是非常必要的。
剔除save_mode、open_basedir等傳統(tǒng)概念,使用unicode字符。
移除大部分有關(guān)編譯和運(yùn)行時(shí)配置的選項(xiàng):所有下一代PHP的運(yùn)行時(shí)環(huán)境應(yīng)該是盡可能統(tǒng)一和穩(wěn)定的。
類型:引入可選靜態(tài)類型的做法必定是非常令人激動的。這樣的話一個(gè)變量可以定義為布爾或整形。如果錯(cuò)誤地使用了變量,會拋出一個(gè)異常。
本文作者Frank Karlitschek系ownCloud發(fā)起人,自由軟件開發(fā)者。
原文鏈接:http://karlitschek.de/2014/10/a-possible-future-for-php/ via:csdn
相關(guān)文章:
1. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟2. Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫進(jìn)行日期格式化的實(shí)現(xiàn)方法3. IIS Express 取代 ASP.NET Development Server的配置方法4. IntelliJ Idea2017如何修改緩存文件的路徑5. HTML <!DOCTYPE> 標(biāo)簽6. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐7. Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作8. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析9. 一篇文章帶你了解JavaScript-對象10. python flask框架快速入門
