成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么 Facebook 發明新語言“Hack”

開發 項目管理
為什么 Facebook 發明新語言“Hack”?(注:Hack是一種PHP的派生語言)為了替換掉那些有年頭的老代碼,Facebook創建了一個新的語言。這篇文章將會告訴背后的故事。

為什么 Facebook 發明新語言“Hack”?(注:Hack是一種PHP的派生語言)

為了替換掉那些有年頭的老代碼,Facebook創建了一個新的語言。這篇文章將會告訴背后的故事。

---By Steven Melendez

這個故事來自Facebook工程師Julien Verlaguet和Ed Smith的一次訪談。2004年2月,扎克伯格(Mark Zuckerberg)的哈佛同學們***次登陸Facebook,服務器里運行著PHP。那個時候PHP擊敗了Perl成為最炙手可熱的Web開發語言。

使用類似Ruby的Rails或者Python的Django這些當下***的開發框架都不是那個時候的選擇。Rails***次發布是在幾個月之后(注:2004年7月),而Django在一年后才被發布(注:2005年)。十年后,PHP因為笨拙的庫,不一致的命名規則,內置定義的函數,在多語言程序中語法和語義與相關語言巨大差異使人混淆,過去的設計原則極容易導致安全性問題等而被指責。

“每一個PHP程序員日復一日地處理著難以捉摸或者棘手的任務”,Facebook的工程師Julien Verlaguet和Alok Menghrajani在最近的公司博客上寫道。

但是,PHP并沒離開Facebook,并且其他的大公司和工程的數百萬行代碼都是用這個語言寫的。程序員們仍然得益于PHP的快速開發和部署,且努力去除那些不好的特性。

減輕PHP程序員的痛苦不是說拋棄這個語言和多年的開發成果。Facebook開發了Hack,這是一種新的,派生于PHP的語言。它將與已有的代碼和諧相處,增強了安全特性源于函數式編程語言和學術研究。

“這是一種很特別的設計,能與PHP進行無縫的交互”,Verlaguet說。技術***著Hack項目的發展,它的背后是一份混合編程語言和行業經驗的正式學術研究。Facebook已經在內部使用和發展Hack大概有兩年時間了。最近,已經將項目開源,并且在4月9日安排公開的“開發者日”。

“我們這樣做的目的是希望能更好地傾聽來自社區的反饋, 同時開源社區也會讓Hack面對Facebook外的開發者有更好的體驗”,Verlaguet說。

也許Hack的主要創新是引入了自動類型判斷,概念類似于深奧難懂的Haskell和 ML語言但是比他們少得多的命令行,同時更接近主流的編程語言。

傳統的PHP是動態類型,這意味著在代碼中的基本的本質的變量類型是一個數還是一個字符串或者其他類型是不確切的,除非程序實際運行著。程序員們享受這種靈活,卻為錯誤開辟了空間,它不像Java或者C那樣的靜態類型語言,代碼被寫出來的時候就明確告訴你變量的類型。

Hack走了一條中間路線:它可以基于變量怎樣被使用的使用邏輯讓開發者指定類型,如果代碼的邏輯沖突,就會給出一個錯誤(error)。這個概念本身不是新的,但是它以前都是被用在編譯型語言上的,開發者需要等待他們的源代碼被轉換成機器碼,不能像PHP程序員希望的那樣點完保存立即執行,Verlaguet說。

“解決方案在于建立了一個類型檢查守護進程”,他說。關于這個后臺程序運行在開發者的電腦里。它代替等待開發者去顯示調用一個編譯器,當源代碼文件被改變的時候,類型檢查進程要求操作系統去通知編譯器。這類似于同步文件需要更新時,Dropbox就得到一個信號。

被改變檢查的有效的方法是通過類型檢查器被反復檢測,直到其確認與其他的代碼是一致的。只要類型檢查器足夠快,程序員基本就不需要等待,類似于在Git版本管理系統上轉換到新分支那樣,Verlaguet說。

Hack還有其他一些特性,增強的集合類型如vector和set來增強PHP的數組,匿名函數被使用在函數編程上。新的語言讓Facebook逐步提升已有的PHP代碼,使得長期投資在PHP上的價值繼續發揮作用, Ed Smith說,Facebook的HHVM運行引擎將會同時提供給Hack和PHP。

“Hack 讓我們能在同一時間和同一文件上動態轉換我們的代碼”,Smith說,“換做其他的一種語言將會有很大的困難”你認為是嗎?

其他的公司和工程轉換到時髦的Hack還為時尚早,項目剛剛開源,Verlaguet說。不過,從對他采訪的記錄來看,整個項目目前是處于積極的態勢中。

英文原文:fastcolabs

譯文鏈接:http://www.oschina.net/news/50565/why-facebook-invented-a-new-php-derived-language-called-hack

責任編輯:林師授 來源: 開源中國社區 編譯
相關推薦

2014-03-21 10:45:33

FacebookHack

2022-01-17 16:09:43

Go語言開發

2015-04-08 10:46:11

2023-02-10 08:58:46

2014-11-03 10:14:22

2021-05-06 06:53:39

DockerGoogleFacebook

2015-09-08 16:22:14

Facebook公有云云市場

2019-02-20 11:14:08

程序員技能溝通

2013-04-25 10:14:39

Facebook開發者開發

2021-09-15 19:11:05

2021-03-26 06:00:37

編程語言CPU

2021-03-25 16:01:11

編程語言CPU機器語言

2010-11-02 14:31:44

Google Maps

2011-11-08 10:30:05

Eclipse

2020-04-07 16:12:56

Go編程語言開發

2017-09-06 10:51:22

Facebook

2012-06-12 09:47:17

C語言

2020-09-04 15:34:07

C編程語言開發

2017-04-05 18:10:05

R語言開發Ross

2011-09-09 12:09:27

Dart
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片a| 国产在线精品一区二区 | 日韩视频一区二区三区 | 久久性色 | 99免费看 | 精品久久久久久久人人人人传媒 | 午夜影视| 日韩亚洲一区二区 | 久久久婷婷 | 一级黄色片在线免费观看 | 亚洲精品一区在线观看 | 欧美日韩亚洲国产 | 久久精品国产a三级三级三级 | 国产福利资源在线 | 1000部精品久久久久久久久 | 久久躁日日躁aaaaxxxx | 国产91亚洲精品 | 欧美一a一片一级一片 | 操亚洲 | 免费观看一级黄色录像 | 国产精品久久久久久久久久久久午夜片 | 国产视频91在线 | 日韩一区二区在线视频 | 91免费小视频| 精品亚洲国产成av人片传媒 | 免费久草 | 中文字幕高清免费日韩视频在线 | 欧美一级免费 | 国产精品小视频在线观看 | 黄色小视频大全 | 欧美精品在线播放 | 亚洲系列第一页 | 国内精品久久久久久 | 国产精品一区视频 | 国产激情视频在线 | 欧美激情综合 | 久久国产综合 | 国产91在线 | 亚洲 | 一区二区三区四区在线视频 | 视频一二区 | 欧美日韩国产在线观看 |