Hack语言是由Facebook的爱尔兰工程师Bryan O’Sullivan,Julien Verlaguet和Alok Menghrajani在过去几年中设计出来的编程语言,和其他语言不同,Hack能在系统崩溃前发现问题。
通过与其他社交网络内部工程师合作,Hack被进一步完善,让编程者能在构建复杂代码的同时,保持较快的编程速度和代码的准确性,单从这些特点上看,很少有目前通用的编程语言能达到。据介绍Hack已经在Facebook内部使用了一年,如今它的网站的大部分都是用Hack构建的,该语言已经成功支撑起这个服务于全球12亿人的社交网络。
参与Hack设计的工程师O’Sullivan表示,Hack已经通过了充分实践的考验。O’Sullivan是科技公司Sun Microsystems和Linden实验室的老牌工程师,曾在Haskell语言研发中发挥关键作用。
O’Sullivan今天早晨向全球公开了Hack语言,宣称其为“开源”编程语言,在分享这一语言的同时,希望世界各地的编程者能进一步完善Hack。
软件编码从来不缺编程语言,新的语言屡见不鲜。但如果尝试体验一下Hack,或是知道Hack设计者的背景,就会知道它绝非等闲之辈。计算机编程专家David Pollak昨天才第一次听说Hack这种语言的存在,他表示“如果是O’Sullivan的作品,无论如何我都想尝试一下。”
扎克2003年下半年推出Facebook,选择当时很流行的PHP编程语言建立网站。PHP是一种“动态语言”,不需要程序员花时间定义程序中每个变量的特定参数,完成一段代码后就能马上运行,而省下了编译的过程,编译过程在程序编写的同时在后台运行。
但随着Facebook的用户扩大到上千万,PHP开始显示出局限性。PHP网站扩大时,需要处理器运行网站的数量要比其他语言多,并且容易出现故障。网站规模足够大时,最好采用静态语言来构架,比如Java,更容易管理各种变量,需要的服务器数量少,更容易管理。但这种语言又有另一种局限:构架的速度很慢,需要完成代码和编译过程后才能运行。
去年Facebook的三名顶级工程师为PHP的局限性提出了解决方案:在PHP代码虚拟机HHVM(Hip Hop Virtual Machine)上运行程序,HHVM构成了Facebook的新基础,大大减少了网站运行需要的服务器数量。而对于Java等静态代码的局限性,则被这种新的编程语言解决了,Hack让能简化代码编辑过程的同时减少出错量。
O’Sullivan介绍说,“开发Hack语言的动机,是提高我们程序开发人员的工作效率。随着工程师团队的扩大,由于PHP动态语言的特性,让他们的工作复杂程度大大提高,工作中对代码的预测能力下降,更容易出错。”
Hack是新型PHP? 你可以这么想。Hack也可以在HHVM虚拟机上运行,但编程者可以同时通过动态或静态的方式编写。这种运作方式被称为“gradual typing”。这种编写方式此前还只在实验室研究中提出过,Hack首次在现实中实现了其“实际的产业价值”。
有了Hack,Facebook可以逐步用它来替换已有的PHP程序,把原本的动态编辑系统转变成静态编辑系统。O’Sullivan解释说,“这种语言让编写者能自由选择动态或静态的程度,比如可以用动态语言开始,然后逐步往其中添加静态语句,从而将这两种不同特点的语言优势发挥到最大。”
Hack的其他优点还包括:提供了更加精确的编辑语言以减少出错率,为编程者提供了“安全网”(safety net),工程师在重新访问代码时更容易读懂等等。
Hack在提供这些优势的同时,没有影响编程者的速度。和其他静态语言不同,Hack可以在不编译的情况下直接运行。在完成代码书写后,可以直接在网页上运行并得到运行结果,如下图所述,没有普通静态语言编辑和运行上的延迟,同时保证了安全性(及时纠错)和速度。
用户反馈:Nils Adermann是Forumatic公司软件工程师兼联合创始人,他也用Hack语言。Adermann表示,这种语言超越了其他任何语言。PocketRent的工程师James Miller和Simon Welsh也适用Hack,并认可了上述评价。他们认为此前最接近Hack的语言是Haskell,Haskell是一种静态编译语言,代码反馈的速度也很快,能动态查看编辑效果,但Hack显然在这一点上做的更好。
Adermann表示,Hack对于已经采用PHP编辑的网站来说具有很大的吸引力,“有些讽刺,PHP采用Hack的最主要原因,是因为它和PHP的不同之处。”这些网络也可以模仿Facebook,从PHP逐步转化到Hack。但Adermann相信,即便是还没有采用PHP的工程师也会意识到Hack的实用性,因为PHP是目前网络构架最常用的语言,而Hack解决了它连贯性差的一大缺陷,让原有的语言的可用性大大扩展了。”
但对于Hack最大的肯定,莫过于在Facebook这一全球最大社交网络上的成功应用。一个新语言能通过如此瞩目的方式被业界所认识实属难得。但有些人对Hack的身份提出了质疑:算不上是PHP的替代,更像是PHP的补丁。那么Facebook对于这种声音的态度如何呢?O’Sullivan笑称,这是茶余饭后争论的好话题。
原作者介绍:Cade Metz,Wired.com科技网站编辑。
(via wired 译/快鲤鱼)