Hack – Facebook推出的新语言

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修改过]

看来是面相网站的语言。。。。

在好的语言给新手写也是个问题,还得积累经验。