Facebook 发布了 2020 年的开源回顾,从开发者 工具 、数据、移动/Web、AI/机器学习和区块链等领域进行了介绍。
概要
2020年,Facebook 累计已有 746 个活跃的开源仓库,其中超过 200 个仓库于去年正式公开。
协作方面,Facebook 工程师与世界各地的开发者对开源代码库进行了超过 127000 次更改,其中约 13% 的改动是由 Facebook 之外的贡献者参与。
这些开源项目总共收获到了 128 万个 star,仅去年就新增了超过 12 万个 star。
开发者工具
Facebook 去年开源了 Retrie 项目,此项目可用于更快、更容易且更安全地重构和修改 Haskell 代码。对于使用 SQLite 的用户,Facebook 开源了 CG/SQL 项目,它可以帮助开发者编写带有大量查询的复杂存储过程,而无需手动检查现有方法所需的代码。
2020年的的另一个亮点是 Facebook 工程师为系统级开发者工具进行的开源工作。其中一个项目 resctl-demo 可以模拟系统资源冲突,开发者通过它可以直观地了解其系统的资源控制。另一个名为 PCIcrawler 的项目显示有关 PCI/PCIe 总线、设备和拓扑的信息,以大规模诊断和调试 PCIe 问题。
最后,Facebook 开源的网站基础设施项目 Docusaurus 在2020年有了惊人的使用和增长。从功能添加和社区贡献到采用,以及版本 2 迁移,Docusaurus 经历了迄今为止最好的一年,并且还制定了针对2021年的更多计划。
数据
Presto 是用于大数据的分布式 SQL 查询引擎。对于 Presto 来说,2020年是重要的一年,Presto 基金会发展到拥有了 8 位成员,Alluxio、Ahana、UpSolver和 Intel 也将于今年加入。
移动/Web
2020年初,Facebook 开源了一个名为 Recoil 的 React 状态管理库。该库强调兼容性、简单性,并提供诸如时间旅行调试 (time-travel debugging) 之类的功能。尽管该项目仅开源了不到一年,但其社区正在迅速发展,目前已拥有超过 11000 个 star。
另一个热门项目 React 增加了对新 JSX 转换的支持。最新的 React 版本设置了执行渐进式 React 升级的能力,从而支持开发者在应用程序中使用多个版本的 React。
Facebook 去年也为 React Native 进行了重大更新,以提升开发者体验和降低学习难度。现在使用 React Native 的开发者可以直接使用调试功能,例如 LogBox 和 Flipper,因为它们默认情况下随项目一起提供。
对于原生移动应用开发着来说,用于在 Android 构建高效 UI 的声明性框架 Litho 已发布 Android Studio 插件。该插件通过智能导航、自动补全和模板大大加快了组件的开发。
AI/机器学习
Facebook 研究人员开源了他们实现的多语言翻译模型,该模型可在不依赖英语情况下翻译任意 100 对语言,被认为比那些需要先翻译成英语再得出目标语言最终翻译结果的系统更加准确。
通过 ReBeL 之类的项目(一种欺骗游戏算法的实现),Facebook 研究人员声称正在朝着通用 AI 迈出一大步。
为了继续推动 AI 向前发展,Facebook AI 和 NYU Langone Health 继续合作开展了名为 FastMRI 的项目。2020年9月,研究小组发起了第二次社区挑战,以重建神经成像数据。他们还开源了数据和模型,以进一步参与医学研究和 AI 社区。
最后,为了加快更好和更快的概率编程语言 (PPL, Probabilistic Programming Languages) 的发展,Facebook AI 的工程师开源了 PPL Bench,这是一个标准化 PPL benchmark 测试的评估框架,并使"differentiable programming"特性成为 Kotlin 的一级支持功能。
和 AI/机器学习有关的项目自然离不开 PyTorch,PyTorch 正在年复一年地继续增长。2020年,PyTorch 社区在 PyTorch 之上开发了跨计算机视觉、分布式训练和强化学习等的开源项目。
PyTorch 团队还启动了一个名为 Opacus 的项目,该项目是一个高速、可扩展的库,用于训练具有差异性隐私的 PyTorch 模型,并与 OpenMined 合作开发了免费的隐私保护 AI 课程。
区块链
Facebook 对于区块链技术一直保持着热情的参与,去年他们致力于采用开放式的包容性支付技术。
Facebook 通过新文档和后续教程更新了 Diem 区块链(以前称为 Libra)的开发者使用经验。这些文档从零开始,帮助用户逐步了解为 Diem 区块链提供支持的基本概念,并通过他们的官方 SDK 逐步以 Python 、 Java 或 Go 构建自己的客户端。
了解有关 Facebook 开源的更多信息,访问 Facebook 开源项目主页:https://opensource.facebook.com/projects。
猜你喜欢: