為什麼開發者對PHP又愛又恨
受人尊敬的伺服器端指令碼語言PHP,因在web開發中的應用而知名。首次由Rasmus Lerdorf在1995年釋出,受WordPress和Facebook的影響而變化著,據W3Techs報導,82%網站的伺服器端程式語言是PHP。這門語言在程式語言受歡迎程度排名上,稍微落後於Java,在競爭對手Tiobe排行榜降到第六名。做為高效能的升級版本PHP 7,預期在2015年釋出。
然而,就像任何語言,它也有支持者和反對者。下面解釋了支持者聲援PHP、和持不同意見者痛批它的原因。
好的:流行、入門快
“PHP是目前最流行的web開發語言,”PHP工具提供商Zend Technologies公司【注1】CEO Andi Gutmans說。在New Media Campaings供職的開發者Josh Lockhart,也是一名作家,強調了PHP較小的學習曲線、易於部署和快速的開發迭代。Lockhart說,“PHP是最易理解的web開發語言之一,它被安裝在大部分伺服器上(包含大部分共享主機)。因為有優秀的線上文件和最新的線上資源,學習起來相對容易。”
好的:好找工作
“PHP幫助你賺錢、找到一份在伺服器端的工作”,Gutmans說。在上週的Dice.com技術工作網站上的快速研究,找到了3,366份PHP相關的工作。與17,418份Java工作相比顯得很平淡,緊追Perl(4,300)和Python(5,429),但是高於Ruby(2,973),甚至包括Objective-C(985)。Lockhart把PHP看做使用頻率最高的語言之一,儘管它和Ruby、Python、Go和Rust之類的語言比起來,有些保守。
好的:繼續在發展
這門語言自詡有閉包和名稱空間之類的現代功能,還有效能和現代框架。正如Gutmans所指出的,“一些想離開的人在PHP能提供什麼上面所受到的必要教育不多。”Lockhart說,開發者正在意識到,PHP有著強大的現代特性以及合適的物件導向程式設計模型。即將到來的版本7,在應用程式上提供了巨大的效能提升。Lockhart指出,Facebook對PHP的增強,包含了HHVM虛擬機器和Hack語言【注2】。
壞的:抱怨設計、缺乏重心
博主Eevee在2012年反對這門語言的公開信《PHP:不規則的糟糕設計》中說道,“事實上PHP裡的每個特性都多多少少是不規則的”。Eevee不僅僅給這門語言差評,而且包括框架和生態系統。根據該博主說的,這門語言不是可預期的、一致的,而是充滿了讓人詫異和不一致的地方。在批評中,PHP被稱作不透明的,沒有預設的堆疊跟蹤,一直承受著複雜的、功能不佳的型別,“沒有清晰的設計哲學。早期的PHP受到了Perl的激勵;帶有‘out’引數的龐大的stdlib來自於C;物件導向部分模仿著C++和Java設計。”
Lockhart承認,Eevee的反PHP言論有些“誇大了事實本質”。儘管是一名PHP支持者,Lockhart在被問及時,還是足夠和藹地列出了批判:
- 這門語言是不一致的,特別是函式名稱和引數順序。“這很容易修正,因此這不是個大問題。”
- PHP仍然有很多遺留包袱,像全域性變數、魔術引用等等。“這些壞的實踐正在緩慢地從語言中修剪,但是在它們消失之前,它們還會慫恿愚昧的開發者堅持不好的實踐。”
- PHP不像其它語言那樣專注,Lockhart將其歸咎於“受到委員會驅動的、長期都是一塊一塊的”。
- 注1:Zend Technologies 公司是一家網際網路基礎架構軟體公司。Zend Technologies最為人們熟知的是它的兩個奠基人:Andi Gutmans和Zeev Suraski,他們與其他以色列程式設計師一起,發展了由Rasmus Lerdorf開創的PHP語言。http://zh.wikipedia.org/wiki/Zend_Technologies
- 注2:Hack,一種開源指令碼語言,執行在HHVM虛擬機器上,主要開發者為Facebook。在2014年3月20日正式釋出。在釋出前,Facebook已經在它的網站上廣泛使用及測試。http://zh.wikipedia.org/wiki/Hack_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)
相關文章
- 又愛又恨感情複雜,育碧遊戲為什麼迷失了?遊戲
- 讓人又愛又恨的ESLintEsLint
- 讓人又愛又恨的Mysql多表查詢MySql
- MySQL讓人又愛又恨的多表查詢MySql
- 那些年,我們又愛又恨的HashMap(二)-原始碼篇HashMap原始碼
- 前端踩坑系列《六》——讓人又愛又恨的npm包前端NPM
- Typescript 一些令人又愛又恨的內容 — Type Guard、NarrowingTypeScript
- Flash,這把讓網際網路又愛又恨的雙刃劍
- 又老效能又差,為什麼好多公司依然選擇 RabbitMQ?MQ
- 《沉沒之城》,一款讓人既愛又恨的遊戲遊戲
- 又苦又累 為什麼遊戲主播做獨立遊戲會這麼困難?遊戲
- 開發者工具又加了什麼好東西?(Chrome 68)Chrome
- 紅黑樹這個資料結構,讓你又愛又恨?看了這篇,妥妥的征服它資料結構
- iwatch2又將跳票 蘋果公司為了什麼又改計劃?蘋果
- 聖誕又雙叒來了:因為AI,所以愛AI
- 這個公司的程式設計師人均月薪7萬+!騰訊又又又又又又又又漲薪了程式設計師
- 又愛又怕 ERP專案總與成功失之交臂(轉)
- 應對網路安全威脅我們又該做些什麼?
- Vue為什麼比JQuery更受開發者喜愛?VuejQuery
- 什麼是 Goroutine ?又該如何停止它?Go
- 為什麼戰棋遊戲又受到玩家們的青睞了?遊戲
- 又又報錯
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- Redis真的又小又快又持久嗎Redis
- 公司又又又又要裁員啦!直面天命
- 怎麼擺脫又臭又長的 Git 命令?Git
- 許北林:我為什麼加入OpenHarmony生態?又為什麼要做“啟航KP”開發套件?套件
- Trickbot惡意軟體又又又升級了!
- Python為啥又火了?Python
- 昨晚“IDFA”又改判死緩了,蘋果跟Adnet之間又發生了什麼?蘋果
- java中又實用又基本又容易錯的比較Java
- 智慧數字經營3.0怎麼做才又穩又好?
- Swift 5.3 又更新了什麼新奇爽快的語法?Swift
- 拿什麼拯救缺芯又“缺心”的科技產業?產業
- 【解密】什麼樣的跨網檔案擺渡軟體 可以讓傳輸又簡單又安全?解密
- 為什麼開發者對Java 9如此的興奮Java
- 相見恨晚的幾個Excel小技巧,簡單實用又高效!Excel
- 前蘇聯硬核遊戲的大逃殺模式,為什麼又讓你沉迷了?遊戲模式