The next plateau of Javascript applications

The "future" of Javascript is decided by one body, ECMA International. They are a standards organization that maintains the Javascript standard. As with any organization of this type, there are competing interests and long running debates. ES6 is the new version of Javascript and ES7 already being formalized. The Javascript language is changing.

Along the way, some clever people figured out that by running a cross-compiler with polyfills, you could write in ES6 and still produce code that is compatible with browsers that are slow to adopt the new standards.

These days, Babel, a "compiler for writing next generation JavaScript" has become the gold standard for cross-compilers that write ES6 Javascript.

With Facebook's hiring Babel creator, Sebastian McKenzie, they have abandoned their own compiler pipeline in favor of one designed by the community to stay very close to the standards.

React.js and JSX have formed a strong alliance with the workflow of standards conscious programmers. As Javascript evolves, so will Babel and WebPack, and React will continue to be a part of that conversation.

What makes React so attractive?

React is just a view layer. Facebook designed it that way. You can use it with whatever architecture you want. It just happens that Facebook also released Flux shortly after React. Flux is a real advancement in frontend application design. Beyond all the MV* variants, Flux genuinely brings a new approach. The benefits include data integrity, built-in rendering efficiency and clear separation of concerns.

It just so happens that React.js works very well as the view layer in a Flux architecture, and another Facebook library, Immutable.js makes an excellent data layer in the same architecture.

Is Facebook trying to rule the universe?

No, at least not yet.

The React community is thriving, and there is no shortage of attempts to do-it-better than Facebook. Alt, for instance, wraps Facebook's Flux library providing a far simpler interface, or another example, Redux re-imagines the role of a data store and simplifies applications well beyond Facebook's original envisioning.

The React.js community is very open and the documentation is available. With some of Facebook's other libraries, their self-interest is less transparent. Immutable, for instance, requires a secret decoder ring to unravel the documentation, and private classes start at $600 a day.

How to get started

I created a boilerplate, Kabuki-Motion, to help people jump into this new world of new libraries and techniques.

Kabuki-motion is a starter project for publishing a single-page web app with web animators in mind. It creates both a react/flux development environment and live production server. The react application comes pre-built with one-directional flux architecture and example components that make use of the React-Motion library.

The aim of this repo is to incorporate the best practices to building non-trivial apps with Reactjs v0.14 that include Heroku support. Other boilerplates that include Heroku support also require the MongoDB addon, which is free now, but may not be in the future. This library does not require any Heroku addons.

Kabuki shows an example usage of Immutable, React, Alt, Node/Express, Webspack, Sass, and Heroku.

Some other great things to be excited about

Definitely watch these two presentations from React Europe 2015:

Cheng Lou presenting "The State of Animation in React"

Dan Abramov presenting about Hot Reloading and Redux

Also, Uber just released this impressive Mapping API for React

Some pretty impressive stuff coming out for React!

Come join the fun.