Facebook 对 PHP 的偏爱众所周知。追溯到 Facebook 的创建初期,PHP 支撑起了该公司的很多产品。PHP 的一大优势是,它是一种动态语言,非常适合快速建立原型,但是动态特性也往往会导致大规模代码库开发和维护的复杂化。为处理这些问题,Facebook 发布了 Hack ——一种希望在保持 PHP 优势的同时通过所谓的“渐变类型(gradual-typing)”和一些新语言特性加以增强的新编程语言。
渐变类型的使用意味着,在 Hack 中动态类型和静态类型代码可以在同一文件中互操作。这使得已有的 PHP 代码可以根据其所在的每个项目的需要转换为 Hack,同时不需要很大的前期转换代价。为帮助从 PHP 向 Hack 迁移,Facebook 正在提供转换工具。在用户编辑源文件时,Hack 会予以监控。有个系统守护进程会监控本地文件系统,当修改被保存到磁盘时,一个类型检查器会快速分析所做修改。Facebook 表示,这种转变平均会消耗200 毫秒,很少会超过一分钟。
Hack 不仅带来了类型特性,还提供了其他一些语言特性。其中包括类型注解、可以为空的类型、泛型、集合和 Lambda。Hack 语言参考提供了这些特性相关的、目前可用的所有细节信息。和Facebook 的PHP 代码一样, Hack 也运行在 Facebook 的 Hip Hop 虚拟机( HVVM )上,HVVM 使用即时编译技术(JIT)来提升程序性能。
如果想了解 PHP 在 Facebook 使用情况的更多背景,可以查看 InfoQ 发布的去年 12 月对 Facebook 的 Keith Adam 的访谈。
查看英文原文: PHP Evolved: Facebook’s New Hack Programming Language
评论