개발자 소식으로 돌아가기

Open Source: 2020 Year in Review

2021년 1월 28일제작:Suraj Subramanian

This article was written in collaboration with Dmitry Vinnik, an Open Source Developer Advocate at Facebook.

There is no denying that 2020 was a challenging year for many of us in so many different ways. Despite these challenges, we saw more projects going live and more people contributing to the growth of open source worldwide.

In this blog post, we want to share the appreciation we have for our community and highlight some of the work done in 2020. After looking at our open source portfolio's core metrics, we take a look at our foundations and partnerships focus from last year. Then, we review our community engagement through the Facebook Open Source social media channels, including Twitter, YouTube, and blog. Lastly, we deep dive into our open source portfolio in several categories: Developer Tools, Data, Mobile/Web, AI/ML, and Blockchain.

Facebook Open Source by the Numbers

In 2020, Facebook's open source portfolio grew to over 700 active repositories, with more than 200 projects made public this year alone.

Facebook engineers and developers across the world collaborated to make over 127,000 changes to the codebase.

We welcomed the 1.2 million people who starred our projects on Github to our communities, and we look forward to seeing you around in 2021 too.

Foundations and Partnerships

As part of our commitment to increasing open source usage and experiences for all developers, Facebook looks to be involved in appropriate foundations and partnerships to help achieve these goals.

Facebook continued its long-standing support of open source by joining the Linux Foundation and the Zephyr Project at the Platinum level and becoming a founding contributor of the Software Developer Diversity and Inclusion project.

We partnered with GitHub and Major League Hacking (MLH) to launch a remote Summer 2020 Fellowship program, a year-long fellowship program through 2020-2021, and provide Black developers scholarships to participate in the Fall 2020 Fellowship.

Spark AR’s Blender Toolkit empowers artists to render immersive experiences from their Blender projects seamlessly. To further support creators continually pushing the envelope in AR/VR and AI, FB joined the Blender Foundation Development Fund as a patron member in November.

Facebook partnered with Microsoft on extending a static analyzer, Infer, to C# programming language. As a result of this collaboration, Microsoft published project Infer# to detect potential bugs like null-pointer dereference and resource leak or race conditions in the .NET ecosystem.

Facebook helped found MLCommons, an open engineering consortium for ML research and systems, as a founding member to tackle issues like dataset diversity and fairness, and performance benchmarking and reproducibility.

Community

Lockdown couldn’t stop us from engaging our incredible community. On Twitter, we wanted to take the time to thank members who have inspired and motivated us this year. Our Community Spotlight series featured work from our community that contributed to our open source ecosystem's development and growth.

We also wanted to engage more with the open source audience on our YouTube channel. We launched an ELI5 (Explain Like I’m 5) series to introduce Facebook’s open source projects to you in 60 seconds. We also shared unique content like a live-coded session on improving your web app with the power of machine learning through AWS Sagemaker and PyTorch.

On the Facebook Open Source blog, we shared plenty of interesting articles like hands-on lessons on using Rust while building a Discord bot and a smart bookmarking tool.

Developer Tools

Developer productivity was the theme of the year. Our engineers open sourced Retrie to make refactoring and codemodding Haskell faster, easier and safer. For those who work with the SQLite library, Facebook shared the CG/SQL project that allows developers to write complex stored procedures with extensive queries without the manual code checking that existing methods require.

Another highlight this year was our engineers’ open source work for system-level developer tools. One of the projects, resctl-demo, simulates system resource conflicts to provide developers an intuitive understanding of their systems' resource control. Another project called PCIcrawler displays information about PCI/PCIe buses, devices, and topology to diagnose and debug PCIe issues at scale.

Finally, Docusaurus, Facebook Open Source’s website infrastructure project, had amazing usage and growth in 2020. From feature additions and community contributions to adoption and version 2 migration, Docusaurus had one of its best years yet. And there is more planned for 2021.

Data

It’s been a big year for Presto, a distributed SQL query engine for Big Data. The Presto Foundation grew to 8 members, with Alluxio, Ahana, UpSolver and Intel joining this year. We also hosted PrestoCon 2020, connecting nearly 600 data engineers and developers around the world. We encourage you to watch the recordings from the event on the PrestoDB channel and sign up for our virtual meetup group to get the most up-to-date information about upcoming events.

Mobile and Web

In early 2020, Facebook open sourced a new React state management library named Recoil. This library emphasizes compatibility, simplicity and provides features like time-travel debugging. Although the project has only been live for less than a year, its community has been rapidly growing, with over 11 thousand followers on its project page.

React added support for the new JSX transform. The latest React release sets up the ability to perform gradual React upgrades, allowing you to use more than one version of React in your app.

With React Native last year, we had significant updates to improve the developer experience and flatten the learning curve. After extensive community feedback, the website went through a refresh with brand new getting started, testing, security, and reference guides. Developers who work with React Native now can use debugging functionalities like LogBox and Flipper out-of-the-box as they are shipped with the project by default.

For native mobile developers, Litho, a declarative framework for building efficient UIs on Android, has released an Android Studio plugin. This plugin significantly speeds up the development of Components and Specs with smart navigation, autocompletion and templates.

AI/ML

Facebook Research

Researchers open sourced their implementation of a multilingual translation model that works for any pair of 100 languages without an English intermediary. With projects like ReBeL, an implementation of a deception-games playing algorithm, our researchers are making a big step towards general AI.

To continue moving AI forward, Facebook AI and NYU Langone Health continue collaborating on a project called FastMRI. In September 2020, the team launched its second community challenge to reconstruct neuroimaging data. We also open source the data and models to further engage in medical research and AI communities.

To accelerate the development of better and faster probabilistic programming languages (PPL), engineers at Facebook AI open sourced PPL Bench, an evaluation framework that standardizes PPL benchmarking, and made differentiable programming a first-class feature of Kotlin. If you are interested to learn more about Facebook AI’s research, we invite you to visit these curated posts: NeurIPS 2020, ECCV 2020, ICML 2020, ACL 2020, ICASSP 2020.

PyTorch

Year after year, PyTorch continues its growth all thanks to its strong community, and 2020 was no exception. The community developed open source projects on top of PyTorch across computer vision, distributed training, reinforcement learning, and many more. The curated list of tools and libraries can be found on this PyTorch Ecosystem page. In November 2020, the PyTorch team hosted PyTorch Developer Day, with keynotes from the core developer team, researchers and ML engineers working in AI.

Over 2,500 people across 114 countries participated in the PyTorch Summer Hackathon 2020. This hackathon had many categories where developers could apply themselves like PyTorch Developer Tools, Web/Mobile Applications, and Responsible AI Developer Tools.

The PyTorch team also launched a project called Opacus, a high-speed, scalable library for training PyTorch models with differential privacy, and partnered with OpenMined to develop free courses in privacy-preserving AI. Along with Google, the team announced general availability of the PyTorch / XLA package that lets PyTorch run on Google Cloud TPU accelerators.

Blockchain

We remain committed to an inclusive payment technology that is also open source. We refreshed the developer experience for the Diem blockchain (formerly Libra) with new documentation and follow-along tutorials. The docs start from ground-zero, walking you through fundamental concepts powering the Diem blockchain, all the way to building your clients in Python, Java, or Go with our official SDKs. We encourage you to build a demo wallet to understand everyday use cases for custodial wallets, and simulate the experience of running a store on Diem using the public demo merchant service.

Our communities across the world faced challenges and hurdles through every month of this year. And yet, they banded together to contribute their effort and time in building and growing codebases that anyone can freely use. We are deeply grateful to all our contributors, and we look forward to continuing this collaboration through 2021.

To learn more about Facebook Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter.