程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP的未來:Facebook的Hack

PHP的未來:Facebook的Hack

編輯:關於PHP編程

PHP的未來:Facebook的Hack


Facebook今年發布了一種新的編程語言Hack,無論從什麼角度分析,這種語言都類似於時下流行的PHP。其大量的功能,比如靜態類型等等和PHP開發人員長期要求的保持一致。拋開語法這些,其實Hack並不是PHP。Hack運行在Facebook的虛擬機HHVM)上,而其競爭對手則運行在傳統的PHP Zend引擎上。

為什麼Facebook要建立Hack?

首先Facebook的內部代碼是用PHP編寫的,同時Facebook可以讓很多新的開發人員能夠使用PHP,因為語言是容易學習和使用的。當然,Facebook的PHP代碼可能轉換為C衍生物被推到之前的生產環境中。問題的關鍵是Facebook強烈的依賴於PHP語言,以吸引新的人才和提高開發人員的效率。

嚴格的類型

不幸的是,PHP不可能在Facebook的規模下執行。因為PHP是一種松散類型的語言,很多關於類型的錯誤可能在運行的時候不會被發現。這就意味著Facebook在早起必須編寫很多執行類型錯誤檢查的測試,或者花更多的時間來重新構建發布後的運行錯誤。為了解決這樣一個問題,Facebook添加嚴格的類型來對運行時的返回類型實施攻擊。嚴格的類型抹殺了很多相關單元測試的必要性,同時也激勵開發人員在早期開發過程中捕獲與類型相關的錯誤。

瞬時類型檢查

為了使開發的過程中捕獲錯誤更加得心應手,Facebook的HHVM引擎包含了一個類型的檢查服務器,這個服務器在本地運行時監控Hack代碼。開發人員的代碼編輯器和IDE在代碼開發過程中可以使用這個類型檢查服務器來立即報告語法或類型的相關錯誤。

現有的PHP代碼呢?

大多數現有的PHP代碼將運行在Facebook的HHVM引擎,這是必要的,因為Facebook的現有代碼庫主要是PHP代碼。Hack代碼存在一些異常,畢竟其沒有和傳統的PHP等效,比如一些語言特性如變量)和Zend擴展仍然不被支持。隨著時間的推移,HHVM也會盡快實現與Zend引擎的奇偶化校驗。

此外,Facebook創建的Hack語言與傳統的PHP代碼進行逐步的遷徙。

這是否意味著PHP“死”了?

如果Hack是那麼好,這是否意味著PHP的日子已經屈指可數了?答案當然是:NO!傳統的PHP Zend是由專門的機構管理審核通過的,任何新的功能必須由機構的成員審核投票通過之後才能公布,這樣的投票時100%公正和公開的。

但Hack是非常不錯的,Hack有非常多屬於自己獨特的功能,所以永遠不可能成為傳統的PHP語言。Facebook的HHVM引擎比Zend引擎更好的性能,而且它具有更多的內部開發人員,致力於不斷使HHVM引擎變得更好。

這也並不意味著PHP的Zend引擎將消失,Zend和HHVM引擎能夠而且將會並存。競爭是一件好事,我希望這兩個Zend和HHVM會從彼此的優勢中獲益。

是Facebook負責嗎?

Hack是Facebook的產物,這主要是源於Facebook的工程師。雖然現在公眾都希望它能公布,但是Hack和HHVM很大程度上仍然依賴與Facebook的持續投資和參與。

未來

由於Hack和HHVM的優越性,我想從某種程度想來說,Hack是PHP的未來。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved