I am Ben Alpert. Ask me anything.

Ben is a software developer, currently working at Facebook building React. Previously he has worked at Khan Academy.

This is a great opportunity for you to get in touch with Ben and have his opinions on various topics. Shoot any questions you want Ben to answer!

Thanks for having me today! I hope this was useful for everyone here. I'm off to go grab lunch now.

If you have more questions about React, you can usually tweet at our team (@soprano, @gaearon, @vjeux, @zpao, @sebmarkbage) or find us at conferences on a Q&A panel.

Ask a Question

67 discussions

Thanks Ben for the AMA! How big is the React team at Facebook? What does a typical day at work look like for the React team?

I appreciate the kind of work you guys are doing! Keep it up. :)

Hi John!

Right now, the "React Core" team at Facebook is about about 5 people. The React core team is responsible for the web version – React DOM – as well as all the bits that are shared by React DOM and React Native. (There are separate teams that focus on React Native.) We also take care of a few other projects like create-react-app and react-devtools.

Each day can vary quite a bit depending on the person (and day), but it usually involves some combination of responding to GitHub issues, fixing bugs, and building new features for React that we think will help people build great apps. We also help other Facebook engineers when they have React questions and handle updating Facebook code when we introduce new deprecations, but the vast majority of our work is done in the open on the GitHub project so you can usually see what we're up to. New commits to React always land on GitHub first, then we import changes into our internal repos once every week or two.

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

Describe in 2 sentences what real world problem React is solving?

React tries to make it easy to build complicated apps by making it easy to split up your app into many simple, independent components. This means that when you change code in one place, other parts of your app don't break. It's hard to explain this benefit clearly when convincing people to use React but anecdotally, people find that their React apps are more stable and easier to debug compared to alternatives.

React is part of the "product infrastructure" group at Facebook, and our goal is to make it easier for product engineers to build great products. That could mean making it easier to get started, easier to build a high-quality app that feels good, or easier to debug an app once it's written. We also don't have top-down directives telling Facebook engineers what libraries or frameworks they need to use, so we focus on developer experience and developer happiness in order to get people at Facebook to use React. In the long run, our hope is that we can eliminate complexity and make it easier to get started with building UIs if you're new to programming.

Reply to this…

I like working with React, a lot. So thank you for all your work, and for hosting this AMA. I have been through the React Fiber Architecture document recently, and I am quite excited for it, and I have a question regarding reconcilement.

  • From what little I have gathered, React Fiber is just the reconciler; what I am not able to digest is how can a single reconciler algorithm work for all the platforms — web, and mobile. Aren't there changes at a structural level between how objects are structured in DOM as to how "views" are structured in mobile apps

  • What is your favourite pastime, apart from working on React? :)

React DOM and React Native have a lot in common. For example, the way that you define custom components and handle state in each component is exactly the same across the two platforms. The only difference is what built-in components you have to work with: in React DOM you use div, img, and span; in React Native you use View, Image, and Text.

React Fiber is a reimplementation of most of the pieces of React that are shared across platforms. It gives us a chance to fix some things that are difficult to build in our current version – like returning multiple components from render –. It's designed from the start to give more control over scheduling and split up work across multiple frames, so that your app stays responsive even if some of your components are complicated and slow.

I like to sing! My high school of ~2000 students had about 400 students in the choir program, and I sang in those choirs during all four years. These days I don't get to sing as much, but sometimes I sing in Facebook's a cappella group The Vocal Network; we even got to sing on stage in Carnegie Hall earlier this year.

Reply to this…

ReactJS and React Native are transforming how developers are creating apps for the web, desktop, and mobile devices. Where do you think this trend will lead us in the future?

Our goal with React is to make it the best way to build apps on any platform. We've advertised "Learn once, write anywhere" because we do think it's important to put care into each platform you build apps for, but it's silly that you need to relearn everything when switching between web and native – or even between iOS and Android.

Over time, we've realized that even if you make a specialized app for each platform, there are still many parts that should be shared across platforms. All of the model logic is likely the same, and even view logic and appearance is often identical for most of the inner views in an app. So we want to make it easy to share code that should be shared. Facebook's Ads Manager app is built 100% in React Native for both iOS and Android, and we were able to share 90% of the code across platforms. That's huge compared to the status quo of completely rebuilding your app for each platform.

Over time, maybe we can share view code between native and web too. There are some cool projects in the community like react-native-web (https://github.com/necolas/react-native-web) which try to make this possible. We don't have anything to show at Facebook yet down this road but maybe in a year or two we could officially support using View, Image, and Text on the web for people who want to.

Reply to this…

Given your experience at Khan Academy, what do you think the future holds for teaching new developers web technologies? And what role does React have in that future?

Good question. egghead.io teaches tech content similar to how Khan Academy videos teach – simple, no-nonsense explanations that focus on the content instead of the presenter and don't use unnecessary special effects. I think that's a great start, especially for people who don't like to learn by reading. You can rewind a video or re-watch it as many times as you need to fully understand the content.

I haven't thought too much else about this problem in the context of teaching tech. One of our goals with React is to make building UIs simpler overall so that there's less to learn.

Reply to this…

Load more responses