Hack – Facebook推出的新語言

banq發表於2014-04-09


Facebook推出的Hack語言也許正是Facebook的駭客Hacker精神體現,他們宣稱該語言能夠幫助開發者更快更容易編制出更少錯誤的程式碼。

Hack是用於以很快的速度來構建複雜的網站,同時還確保了網站的原始碼有良好的組織且沒有錯誤。它的“安全網”功能允許程式設計師編寫更安全的程式碼,以減少日後維護擴充時帶來的煩惱。這篇文章(點選原標題進入)探討Hack哈克一些特點,可以說它是比目前最流行的網路程式語言PHP要更好。Hack是建立在Facebook的HHVM虛擬機器上,HHVM提供了眾所周知的卓越的執行效能。

在2003時創始人祖克伯建立Facebook時,他使用的是PHP這個Web開發語言,當時它是建立動態網站最流行的語言。

PHP是一個動態型別語言,意味著你不必花費時間定義變數,只要你完成程式碼就立即能夠執行,這種易於編碼且降低開發時間和努力方式受到歡迎,但是這種方式同時會增加匯入大量錯誤機會,特別是在執行時會暴露其醜陋的一面。

當你需要找錯誤執行的程式碼(不同於靜態型別語言)時,這種問題進一步加劇。程式碼錯誤會隨著程式碼庫的成長不斷增長。對於每千行程式碼有5個錯誤,小專案可能不會面臨大問題,但對於一個大型程式碼庫可能多達5000錯誤 - 需要很多除錯。

這種情況在Facebook等雲規模的企業中不斷惡化,成千上萬的程式設計師每天編寫和釋出新程式碼。他們程式碼不能有錯誤,因為這可能會導致使用者資料被洩露。那麼下一步應該做什麼呢?

重新發明輪子

由於Facebook前端主要是用PHP編寫的,切換到一個新的語言就意味著公司將不得不遷移整個網站的程式碼,這不僅是不現實的,但也並不可行。

另外,如果程式設計師已經習慣了PHP,這要求人力資源重新啟動大規模的培訓招聘。幸運的是有一個更好的解決方案 - 他們重新發明了一種語言,從PHP衍生出來,能與這種傳統的語言共存。

“於是,Hack就誕生了。我們相信,它結合了兩個動態型別和靜態型別語言最優點,而且,這將是對各種大小規模的專案都是有價值的”(banq:看來適合各種個子高矮不同的人的萬能褲子誕生了)。

從本質上講,Hack是“更好的PHP ” 。從PHP派生,它可以與PHP無縫工作,更快開發更安全的Web應用。你可以有一個同時包含PHP和Hack程式碼的專案,這是吸引PHP開發人員嘗試Hack的關鍵之點。並可能鼓勵他們逐步遷移他們的PHP程式碼到Hack。

Hack主要是給PHP增加了靜態型別以及其他現代程式語言中還有更多的功能。它是基於HHVM (HipHop虛擬機器) 開發,HHVM是一個Facebook開放平臺,能夠同時執行Hack和PHP程式語言。

Hack和HHVM組合是針對現代Web的基礎之一:快速應用開發。因為歷史上測試和除錯Web應用程式從來沒有容易過,但Hack正在改變,它允許程式設計師早期發現錯誤,而且不影響PHP的開發週期。從幾個技術網站使用Hack的結果反饋來看都是好的。

Hack優點
Hack對PHP的最大的改進是:去掉不必要的和容易出錯的功能。Hack還增加了安全網(不會減慢速率),以讓你少範錯誤。它還增加了現代程式語言中的各種功能,這使得編寫程式碼變得愉快。

哈克既是動態型別又是靜態型別的Web開發語言,從而把兩個型別語言最好的結合在一起。這實際上是所謂的“漸進式型別,”這是一種允許變數要麼在編譯時或執行時進行型別化的型別系統。它可以在不編譯情況下執行你的程式碼 - 你可以編輯一個程式碼檔案並重新載入網頁,能瞬間看到修改導致變化效果。

Hack 還帶來了集合collections, lambda表示式, 和返回型別執行時增強 以及引數型別等特點, 另外還有泛型 非同步程式設計。

這些新特點沒有阻礙程式碼可讀性,程式設計師閱讀Hack程式碼如同瀏覽傳統PHP的動態語言,他們也能像如同閱讀靜態型別那種文件式程式碼一樣。

缺點
最大缺點是放棄了PHP對於初學者入門簡單的特點,你不能直接嵌入HML程式碼到原始碼中,你不能在函式或類之外寫程式碼。也許這是一種習慣問題。

Facebook已經在其網站上部署Hack “我們已經部署了Hack在Facebook,它也取得了很大的成功,在過去的一年裡,我們已經遷移幾乎我們整個的PHP程式碼庫到Hack。”Facebook部落格上如是說。



[該貼被banq於2014-04-09 11:37修改過]

相關文章