Developing for the web is awesome for the same reason that it can be tiring: New ideas, frameworks, technologies, and approaches that you should know about tend to appear every 5 minutes. One area where this has been particularly evident is in the approaches and tools addressing the desire to build a web page that reacts immediately to users, as opposed to the traditional click-think-reload page approach that has been around since the first web page.
This short post provides a brief survey of some of those responsive approaches. It’s meant to serve as a jumping off point rather than an explanation of each technology. Here we go …
Google’s AngularJS is a well-known framework, somewhat complex, and one could say it doesn’t play well with others since it really provides all the MVC concepts you need within it. For example, using Rails and Angular would be weird, since both have their own idea of a controller.
Facebook’s ReactJS and Muut‘s RiotJS are more like frontend libraries only, both serving as part of the V in MVC. ReactJS is good, but lacking in its ability to provide easy templating, so it’s often used with something like Polymer or React Templates, and as part of a Flux architecture. RiotJS came along later than ReactJS, and strives to improve on ReactJS by including, among other things, better templating features (namely, custom tags). RiotJS is also very lightweight (the entire library is only 20KB).
Ember (http://emberjs.com/) is the most “opinionated” of the bunch, and is a more complete framework like Angular. As such, it has many of the same pros and cons as other opinionated frameworks you may know, such as Rails. If you like a framework that has already solved a long list of basic “plumbing” problems because it saves you the time of deciding, documenting, and enforcing every low-level architecture decision you make, you may like Ember. For Rails fans, EmberCLI (http://ember-cli.com/) + Rails seems possible (http://smashingboxes.com/ideas/merging-rails-and-ember-cli).
Aurelia (http://aurelia.io/) gets lots of love but, alas, I haven’t looked into it yet.
And, finally, a nice round-up (the comments are as at least as useful as the article):
Enjoy learning, and please share thoughts the comments on other approaches to building lively, reactive websites.