After twelve months, the predominance of Backbone.js - with Grunt as its task runner, Require.js as its module loader and Handlebars as its templating library - seemed to be official. Six months later, at least according to the prevailing mood of the blogosphere, all of these technologies had already been replaced: the new kids on the block were Angular, Gulp and Browserify.
Has the situation now stabilized? Not it in the least… during the past weeks, Angular has been subjected to a storm of criticism about its performance and the alleged lack of retro-compatibility of its next major release… in short, the next wave of the revolution is already at the door.
Incidentally, I just come back from a trip to Morocco […]. Some of the Souks are extremely tourist-oriented: everyone tries to sell you their stuff (which is colorful and shiny) – and every few stalls or so you find about the same things.
It isn’t difficult to see the similarity :)
Our survival manual
Based on our good (and varied) experience of working on client-side-applications, and on an additional month of “in-house laboratory” work dedicated to exploring the main alternatives available on the market, we have decided to launch a new series of posts with the objective of:
- haring a sufficiently detailed overview of the principal competitors for each * of the different task (task runners, frameworks, etc.);
- describing our first-hand experience with each of the alternatives;
- explaining the choices we have made as a company, in order to strike the best * balance between development speed, popularity, solidity and maintainability * over time.
Sound interesting? For us, it has certainly been a voyage full of surprises! The series is entitled BazaarJS, and this is a little taster of the topics that we’re going to be touching on in the coming weeks:
- Task runners (Grunt, Gulp, Broccoli)
- Module loaders and Package managers (RequireJS, AMD, CommonJS, Browserify, Bower, Npm)
- CSS Preprocessors (Stylus, less.js, Sass)
- Frameworks (AngularJS, Ember.js, React)
- Support libraries (Superagent, RSVP, Immutable, Lodash)
- Testing, linting and code coverage