關於PHP在企業級開發領域的訪談——企業級開發,PHP準備好了嗎?

ibrahim發表於2014-10-15

關於PHP在企業級開發領域的訪談

                         ——企業級開發,PHP準備好了嗎?

 

轉自:http://www.nowamagic.net/librarys/veda/detail/256

 

雖然PHP是Web應用開發中最廣泛使用的環境,但它還是一度被認為無緣企業級開發。

  • Zeev Suraski,Zend Technologies公司創始人,該公司主要關注PHP的進展
  • Rob Nicholson,高階技術研員, 曾為IBM編寫過程式設計語言執行時
  • Derick Rethans,PHP開發小組成員,eZ元件的專案負責人

Q:企業軟體的一個關鍵元素就是互操作性,它可以讓軟體與其他平臺交換資訊。大家都認為PHP在這方面表現欠佳,因為它的WS-*支援相對來說比較新且功能較少,成熟度不高。關於這點你們是怎麼考慮的?它會不會有所改變?

Zeev:我覺得相比WS-*而言,互操作性涉及的要更加多些。事實上,我們只看到了很少的基於SOAP的Web服務請求,而更多的則來自於其他標準,這主要是因為部署SOAP的過程較為複雜。PHP極好地支援了互操作,並且為此提供了很多不同的介面(REST,優秀的XML支援,SOAP,以及為web服務提供的 ZF元件等等)。據說PHP從2004年開始就為SOAP提供了非常好的基礎支援,從2006年開始就通過Axis2擴充套件為WS-*提供了廣泛的支援。我只能說我還從沒有碰到過使用者抱怨缺乏互操作性的情況,如果真的有,那也一定是讚美吧。

Rob:我覺得這只是部分人的觀點。PHP源於其簡單性。它是一門只需必要的複雜度,就能“解決web問題”的語言。因此PHP程式設計師會更多的選擇REST 而不是SOAP。傳統的企業軟體正逐步向位於中間的PHP靠攏。比方說,IBM的許多企業級軟體產品在去年都提供了RESTful互動支援,包括Atom 釋出協議,這樣的話就多了一個選擇。在該用WS-*的地方使用它,而在開發的簡單性和速度至關重要時,應使用REST。我們也饒有興趣的看到了PHP被用來直接加強企業連通性。IBM的Message Broker可以當作一個“萬能轉換器”,它能夠將一個東西連線到另外一個東西,而現在它的訊息轉化流中也提供了對PHP計算節點的支援。所以現在是可以在企業軟體內部中使用PHP語言簡單而又強大的語法和語句的。我們最近為IBM的CISC事務處理器釋出了一個SupportPac,用以支援PHP語言。CISC正如軟體一樣,具有“企業級“的性質。它執行於主機上,可以由一些像銀行,政府和醫療保健部門的組織來使用,用以處理一些最重要的可能影響到日常生活的事務。

Derick:我覺得這裡沒什麼太大問題。PHP已經為所有的WS技術如SOAP,XML-RPC和JSON提供了支援。

Q:過去的幾年裡,將指令碼語言移植到JVM中並以利用它豐富的監控,安全等功能已經成為了一種趨勢。這對於PHP開發而言並不陌生,因為現實世界中存在好些個執行在JVM中的PHP應用。製造商們對於提升效能的話題各抒己見。你們是怎麼看待這種趨勢的?

Zeev:我們在.Net中也看到了類似的趨勢,但是這些指令碼語言並沒有很遠地脫離原始的實現。我想對於JVM上的PHP也是同樣的道理。事實上我們可以看到原生實現的PHP相比綜合改造後的PHP所擁有的效能優勢——尤其是對記憶體的需要以及在現實世界中長期執行的表現。儘管如此,標準實現最大的優勢是在於它所擁有的強大社群支援(包括在程式碼貢獻和使用上),這是其他實現所缺少的一個東西。

Rob:它的一切都令人如此興奮,我相信它會有很好的未來。在數以千計的已經被實現的語言中,只有少量語言在自然選擇過程中倖存下來,原因是它們特別適合於某個用途。因此開發者改進創新某種語言的實現是一個很自然的事情。如果我們看看Ruby社群就會發現,這門語言的成功歸因於至少半打以上的實現,還有這些實現中的共享測試和效能調整,它們幫助明確了語言的規範,而相互間”最快Ruby“頭銜的競爭也功不可沒。我想我們正在PHP上見證同樣的事情發生。我們已經看到了PHP實現間協作所帶來的巨大好處,例如在過去兩年裡由社群產生了大量的全新測試用例以及為改善某些API而作的努力,我相信這種現象在未來會持續下去。我現在正工作於PHP在JVM上的一個實現,它已經用在了IBM的ProjectZero孵化器(incubator )中,WebSphere sMush產品,以及我前面提到的CISC PHP SupportPac和MessageBroker計算節點中。我認為對於某些型別的問題,在JVM上執行PHP會非常有意義。我們看到我們的合作伙伴和客戶正在使用它來耦合現有的基於Java的系統,這樣做他們可以在輕鬆重用Java庫和API的同時,享受PHP所帶來的便捷。

Derick:儘管效能方面“可能”會有所提高,但是可擴充套件性卻始終是個問題。PHP的整體思想是在無共享架構的情況下輕鬆實現可擴充套件性。在JVM上跑PHP會移除掉它的無共享架構。不幸的是PHP社群中只有一個叫做PHP-on-JVM的專案在儘可能的貢獻著測試用例。

Q:從PHP 4到PHP 5的升級不是一個簡單的遷移過程。關於那些猶豫是否對即將釋出的PHP 6進行投資的公司,你們想說些什麼?

Zeev: 實際上我並不同意關於4->5遷移是個非常困難過程的說法。整個過程並沒有太多的相容性破壞問題,而只是相對簡單地修補應用程式。事實上想要利用新的功能,多花一點工作是在所難免的,也是意料之中的。在6的版本中我們實際上更多的考慮了相容性破壞問題——目前這個問題在6中要比在5中更具實質性。這就是我們需要花時間去做的事情。

Rob:我認為PHP5在今後很長一段時間都會存在。即將釋出的5.3版本已經儘可能的設計為無痛升級,且增加了原本定在PHP6.0中的幾乎全部的功能,只差移除掉一些不用的功能和增加PHP 6.0中的unicode了。我非常渴望看到unicode版本的的PHP,因為它可以讓基於PHP的JVM具有更加直接的相容性,之所以更加直接是因為 JVM原生地採用了unicode來表示字串,但是我懷疑採納過程在PHP 5和PHP 6中都將會非常緩慢且持續許多年。

Derick:雖然大家對此總是懷疑,但是我們會努力減少這些問題,通過引入向前相容的功能來轉移到PHP 6。如果大家能夠向我們反饋一下自己在當前開發版本中碰到的問題的話,那麼可以幫助我們將遷移過程變得更加簡單。

Q:在所有的建立的語言中,社群中的人們都推動增加了許多高階的功能。而另一方面PHP一直被認為易學的功能較少。你們認為這種情況需要改變嗎?

Zeev:我絕對不認為它應該改變,因為它是PHP成功的一個關鍵因素。希伯來語中有句諺語大致這麼說“給的越多,拿的越多”,我堅信這句話對於 PHP是適用的,至少在語言結構與語法上如此。通過使用擴充套件和框架,PHP可以無止境的擴充套件,在我來看,這些擴充套件和框架正是PHP最佳和最有趣的“最後前沿”。我覺得完全使用PHP的大型複雜網站(Facebook,Yahoo,Flickr),完全基於PHP的複雜現有應用(SugarCRM,OpenPro,CMS's),以及公司網站或內部系統依賴於PHP的企業證明了這樣一個事實:PHP的功能集已經成熟,並且我們應該朝著這個方向走下去。

Rob:在我們著手為IBM的指令碼產品WebSphere sSmash選擇指令碼語言時,就因為PHP如此廣泛的使用面而特別選擇了它。我們希望能夠讓數以百萬的PHP程式設計師們能與企業或者企業軟體緊密聯絡在一起,並且我們希望支援一種能夠讓新人程式設計師快速上手的語言。PHP的強大在於它的簡單性。一門語言如果不想滅亡的話就一定需要不斷的演變。如果PHP 5沒有支援物件導向程式設計的話,肯定會喪失很多吸引力。伴隨著PHP 5.3的釋出,PHP肯定可以在這些新的特性上潛在的增加其複雜性。我想未來更多的工作是去了解怎樣使用它們和在此之上形成的語句。鑑於新版本被採納的滯後性,因此在大部分主流應用程式轉移到使用5.3功能之前,還需要等上若干年,我想在這段時間裡PHP程式設計師將會用大量例項來掌握這些新功能,並將它們用在簡化常見的程式設計任務上。

Derick:不,它不需要改變,這兩類開發人員都存在。增加新功能並不一定需要提高入門的門檻。

Q:PHP作為一門語言,在這些年裡一直追隨優秀的範型而演變,並從一個簡單的前處理器演變成了一個強大的OO語言。隨著函數語言程式設計風格嶄露頭角,你們覺得這種這種正規化是否會走進未來PHP的世界?

Zeev:不會。PHP仍然支援過程式開發,並且不太可能會消失;我們早在啟動PHP(PHP 3)中就增加了OO的支援,雖然它現在跨越到了PHP 5中。lambda大概是最接近函式式正規化的東西了,而這正是我們需要完成的。這也映襯了我前面回答的一個問題——我們不想要一個一勞永逸的語言,只是想要一個能夠完成工作的簡單語言。

Rob:這在一定程度上已經發生了。PHP 5.3中閉包的概念就是來源於函數語言程式設計的世界裡。PHP社群混雜了大量經過“經典訓練”的電腦科學專業人員以及一些業餘自我訓練的程式設計師。看到這個多樣的社群中閉包的誕生和常用語句的演化其實是一件很有趣的事。我相信我們最終會完成一套被廣泛接受的模式和語句,它可以很優雅的解決web開發中的常見問題,而程式設計師在使用時都不會想到其實這一切都源於函數語言程式設計。

Derick:我不確定,我認為它不會特別合適。但是如果它對PHP應用程式有意義的話,也許可以找到進入PHP的出路。PHP在整合其他語言中有趣和有用的理念方面一直做得很優秀。

你是怎麼認為的呢,選擇PHP是企業的明智之舉嗎?

相關文章