HHVM 4.0 不再支持 PHP,是不是意味著 Facebook 已經沒有幾行 php 代碼了?
Hack大部分語法跟PHP是差不多的,但是刪掉了一些PHP坑爹的功能(比如reference),從其他語言中吸收補充了新功能(vector,map等)。刪掉的功能Facebook肯定已經早就不用了,所以把舊的PHP代碼轉換到新的Hack語言應該也沒有太大的困難。
Hack實際上就是Facebook的過渡語言,它可以讓老PHP代碼漸進式地改進到一門正常的語言上——仍然有一些歷史代價,比如$,比如用.連接字元串,但至少慢慢變得正常了。
之前在Hack/HHVM組待過一段時間
Hack從最初開始作為一個帶靜態類型的PHP子集,到後來加入豐富的語言特性,目的就是取PHP之精華,去其糟粕。FB自己的代碼從很久之前開始Hack化,HHVM去除對於PHP的支持,對FB自身應該是不會有影響的。
HHVM去除對PHP的支持也是有原因的,有些PHP留下來的糟糕的語言特性需要很大的功夫來支持,比如說token_get_all。至於argument pass by reference以及其他準備廢除的特性,也被Hack的新特性(如:inout)而取代。總體來說還是符合FB對於這個語言的設計目標的。
最後附一張Hack Elephant
別的不說,至少源代碼的擴展名都還是.php
php可以走了,存在問題太多,對任何一個大型項目都是負擔。
小型項目用什麼語言都行
有沒有不重要,重要的是當年上了Facebook HHVM船的公司,比如百度,現在怎麼辦?盲目跟風大公司,到後來發現,官方的PHP7和JIT都出來了,而且更好,白忙活一場.
HHVM相比 PHP7 + JIT-DynASM + Swoole 在性能上沒有任何優勢可言,自然也就沒有必要再支持PHP了,因為最好的PHP實現,依舊是官方的PHP.
「Facebook 開發的高性能PHP虛擬機 HHVM 比官方的 PHP解釋器 快超過9倍」的說法是否屬實?
其實從HHVM 出來以後就沒有了,Facebook 一直是 Hack 。
zend 太封閉,php 社區容不下 hhvm ,以後也估計沒大公司支持了。
關於php7 不需要JIT 的問題,不是說不需要只是歷史包袱太重,導致加JIT 以後沒有明顯的性能提升。
php也是7.x 去除了一些糟粕,才開始做JIT,但歷史包袱實在太重了,再加上一直沒有大投入,所以進度非常緩慢。
本來就沒有
推薦閱讀: