技术开发 频道

2013年Facebook在开源方面所做的工作

        【IT168 技术】自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句,开源就已经是我们工程哲学中的一个重要的部分。

  现在,我们使用、维护并为大量的主要项目做出了贡献——涉及多种领域如手机工具、大数据系统、客户端的web库、后端的运行库和基础架构,也涉及到开放计算项目,服务器和存储硬件。

  2013 是我们开源项目具有重要意义的一年,我们拥有大量令人自豪的新项目,为正常运行和维护它们的更新承诺,和使用它们的充满活力的社区一起工作的愿望。仅在我们的Github账户上,我们现在已经有超过90个仓库,有超过40,000次的提交,一共被复制了15,000次。

  年末是一个很好的机会来回顾我们投入精力的一些主要的领域,简要重述(不是详细的!)下我们工作的一些项目列表。

  手机

  我们最自豪的开源贡献常常是我们为了解决在 Facebook 遇到的规模和性能的挑战而开发的一些技术。

  手机也不例外:Facebook 的手机应用已经是我们产品团队今年的一个重点,我们现在也还需要开发新的兼容性——在这种情况下,那些要迅速开发、编译、测试并发布我们手机应用的需求变得更加的高效。开源我们的工作,正如我们已经做的那样,是很自然的事情,这些工具已经成为我们手机开源作品集的核心。

  比如,在四月份,我们发布了Buck,我们的Android编译工具。开发者的效率对我们来说很重要,自然速度是Buck的首要工作:在Facebook,我们发现它在编译我们的应用时,比 Ant 快了超过两倍。从一开始,这个项目就越来越强大,并被Android社区也包括一些有名的Java项目广泛应用。

  对于iOS,我们也有类似的瓶颈,发现我们需要加速和自动化Xcode的手动编译过程。结果就是非常流行的 xctool ——也在四月份发布——可以使工程师(更不说那些持续集成的机器)更加简单的编译和测试iOS和Mac项目。

  我们在十月份举行的Mobile @ Scale上推出了Rebound,一个Android的物理和动画库。Will Bailey在这篇最近的博文中详细介绍了这个项目,我们相信对真实世界的物理建模是一个有力的方式,方便在应用中创建自然、可触的动画和交互效果。

  最后,通过发布另一个手机工具来结束这一年,还有比这更好的方式吗?今天我们很激动的发布Origami,一个Quartz Composer的工具集,允许设计者更快的编译和构建手机交互的原型。

  Web

  Web技术也和Facebook相关,包括手机和桌面的客户端。在前段,我们开源的重点更多的在于支持在五月份的JSConf上发布的快速灵活的JavaScript库React。

  从那以后,React库——和社区的热心者——有了一定的发展。现在在编译工具上有了大量的集成,服务器端的环境(像node,Rails,和Python)和其他客户端的库——也包括一些备受瞩目的外部的部署工具如Khan Academy。团队维护了一个出色的社区概要博客,包括大量其他React项目的例子、演示和教程。

  总之,我们也想帮助提高JavaScript语言和web应用的质量。例如,Regenerator,是用来转换ECMAScript 6的yield语法到现今的浏览器的一个转换器,Huxley,在夏天由Instagram团队构建的,已经快速成为web应用中一个非常流行的可视化正则测试工具。

  数据

  Facebook与开源数据基础设施(open source data infrastructure)颇有渊源,回顾我们对MySQL, Cassandra,Hadoop,Hive和Hbase所做的贡献可以看出这一点。2013年也不例外,仅仅在过去的几个月里,我们就上线了两个新的旗舰级数据项目。

  首先是Presto,一个新的分布式SQL查询引擎,被设计用于高性能分析我们用于运行交互式查询的300PB数据仓库。

2
相关文章