作为全球最大的社交网站,Facebook与“开源”关系密切。其开源项目负责人James Pearce曾公开表示,Facebook不仅起源于开源平台,也一直致力于建设一个完整的开源“栈”环境。仅2014年,Facebook就设立了107项开源项目,使其总的开源项目超过200个。通过开源项目的方式,Facebook创建良好的生态环境,吸引了外界大量的优秀开发者为其工作。近日,Facebook又正式开源了Nuclide项目。 其实,在相继开源Hack、HHVM和React Native后,Facebook 就开始考虑Nuclide项目的开源工作。作为基于文档编辑器Atom的软件包库,Nuclide提供了类似IDE的功能,主要用于简化原生移动应用的开 发。在项目启动之初,Facebook团队就试图寻找一个支持可再开发、开源的编辑器作为起点。GitHub去年开源的Atom在 线文本编辑器正好满足了该需求。Atom利用当前流行的web技术进行开发,允许用户使用自己的React或者ES7。它提供了一个强大的原生 shell,能够很好的集成移动平台编译器或者开发工具。而且,Atom针对多个语言都拥有完善的社区生态系统。最后,其丰富、可扩展的API支持用户快 速开发Nuclide定制的功能。因此,Facebook最终选择了Atom作为Nuclide项目的基础。 那么,究竟什么是Nuclide呢?Nuclide就是一套基于Atom的软件包库,其代码托管在GitHub上。由于没有复制Atom编辑器的核心代码,当前初始版本的Nuclide可以安装在标准的Atom版本上,并支持用户继续使用除Nuclide外的其他社区软件包。Nuclide的主要功能如下:
Facebook的软件工程师Michael Bolin表示,Facebook 当前发布的软件包将仅仅是一个起点。未来,Facebook将会和社区开发人员合作进行包的迭代优化工作。此外,Facebook还有更大宏达的计划—— 统一的跨平台开发者体验。支持iOS、React以及React Native都是未来要实现的功能。而且,对于服务器和移动客户端都十分重要的调试功能也是未来要添加的功能。Michael表示,正如Buck和Infer项目一样,Nuclide项目未来将会在功能方面不断完善。 |