First ReactEurope interview: Dan Abramov
As promised, we’re interviewing each conference speaker so you may get to know them a little better before the conference. The goal is to know where they’re coming from, how they came to love React.js and what’s their expectations.
Our first interviewee is Dan Abramov. Dan is a prolific writer both of code and essays on React.js and related topics. I highly recommend you subscribe to his blog as each of his articles tend to be insightful gems recommended by the brightest.
Tell us a bit about yourself, where are you from, what do you do?
I’m from Saint Petersburg, Russia. I help build Stampsy.com. I’m doing a little bit of everything but mostly focus on keeping UI code and underlying architecture solid and flexible so we can implement what designers want in a maintainable way.
I love good developer tools and abstractions that make you more productive so that’s an area where I try to contribute.
What were you using before React?
A long time ago, Windows Forms. A couple of years ago, UIKit on iOS. Some Angular. Later, Backbone with jQuery.
What made you switch to React?
Render as a function of state. Powerful composition model. Being able to work with a designer on the same codebase, with him tweaking and refactoring actual components in different states. Real (read: no) template language. With Flux and cousins, a predictable data model that is easy to reason about.
What’s your greatest react projects, open source or not that you’d like to tell the world about?
React Hot Loader lets you edit components live in development and patches them without reloading the page or even unmounting, state preserved. A huge time saver.
React DnD is a flexible library that lets you handle drag and drop in a React way. All rendering is top-down and controlled by you: we offer no readymade components to constrain you. In addition to a nice API hiding browser differences, it has unique features such as custom drag layers.
In the near future, we plan to make React DnD more powerful than ever by making underlying implementation switchable (HTML5, mouse, touch) and supporting several components representing the same dragged item at once. This makes UI like Trello a breeze to implement with Flux and strict top-down data flow. Keep an eye on it!
Last but not the least, Normalizr flattens nested API responses so they’re easy consumed by Flux stores. It’s a solid solution until we have Relay.
What do you expect from the conf?
Meet a lot of great people I know from Twitter an Github.
Bring hot reloading and state time travel to a wider developer audience and explain the concepts that make it possible.
Inspire developers to work on similar tools. Spread the message that we don’t need separate tools for hot reloading CSS and JS: this should be solved at the bundler (and thus module system) level.
Anything else you want to tell future attendees?
Modules should be able to specify how they want to apply their own updates. Source transforms can then generate hot reloading code for different module kinds (CSS, React components, Flux Stores). Webpack got it right.
There you go, you now know a bit more about Dan and hopefully you will be able to meet him personally at the conf.
If you haven’t done so, make sure to grab your ticket to the conference before they’re all gone and see you there!