Thoughts from ReactEurope 2015
React Europe 2015, the first React conference in Europe, was a remarkable experience. The line-up of speakers was complemented by the incredible quality of the participants. Members of the Facebook team in addition to authors of React.js, React Native, ImmutableJS, GraphQL, Babel, Flux, React Router and Relay were approachable and willing to share what they’ve learned and what they’re planning. The audience demonstrated a deep understanding of technology that is still rapidly changing through a broad range of insightful questions.
The organizers should be very proud of themselves for putting together a program that was full of high-quality talks, and I fully intend on going next year.
In between sharing his beautiful conference notes, Michael Chan was able to charm his audience with his case for inline styles.
His slides are filled with humour and explain why keeping your style in your components encourages better maintainability of states in a code base. His belief that a “style” bug is no different from any other bug resonated with me, and I hope to revisit some of the work our team is doing in light of this talk.
He praised the work of the Radium team as well. I also see inline styles as a pre-requisite to doing sophisticated animations like those demonstrated in Cheng Lou’s talk on the new Animated library that is coming soon.
Cheng Lou and Spencer Ahrens both presented animation frameworks that I think will put the last nails in the ReactCssTransitionGroup coffin in favor of keyframe animation systems based on interpolation and curves.
Both did demos that were stunning with spring effects, adding/removing elements and complex layout manipulations on React Native and React in the browser. The approach is declarative and functional, making it easy to reason about, composable and allows for rich debugging tools, such as simulating onion-skinning.
Dan Abramov demonstrated the power of hot code reloading by doing a live demo that harkened to Brett Victor’s pivotal talk a few years ago about designing on principle. In the middle of his slide deck, he included a small Flux application based on Redux. He quickly demonstrated the power of a functional paradigm by reducing the store concept to a “reducer” function which negated the need to have even a central dispatcher. His debug panel made it effortless for him to seamlessly develop and debug his application mid-talk.
The Redux Flux implementation is an impressive distillation of the Flux concepts, and I would be curious to see it used in an isomorphic configuration or with complex data structures. It’s simplicity just feels right.
The server-side was addressed with a few excellent talks covering the different layers of a GraphQL stack. Facebook is in the process of open sourcing the remaining pieces in the coming weeks.
GraphQL is a battle-tested solution to the multi-client, multi-version, multi-consumer endpoint problem facing REST developers
As a Rails developer, what made struck me the most was the work around GraphQL. The GraphQL and Relay teams made a compelling argument for moving away from REST-based endpoints, especially when dealing with multiple platforms that will have differing JSON payload requirements. I’ve always found SPARQL and RDF truly fascinating technologies, but the querying languages were difficult to grok, and the tooling seemed heavy on both client and server.
I did notice that there was little mention of unit testing or testing strategies in general in any of the talks. I do take solace in knowing that Jest is still being actively developed within Facebook and that so far every step taken in open sourcing these tools has been carefully considered by everyone involved.
More profound than the technology which was demonstrated over these last few days — a spirit of openness and mutual respect demonstrated by those speaking.
I was deeply humbled by the incredible material that was shared at React Europe. If the community spirit demonstrated is maintained, it will no doubt further accelerate the level of innovation within the front-end web ecosystem.