AngularJS helped revolutionize the world of single-page JavaScript applications, and we have delivered many projects successfully with it over the years. However, we are no longer recommending it (v1) for teams starting fresh projects. We prefer the ramp-up speed and more maintainable codebases we are seeing with Ember and React, particularly in conjunction with Redux.
AngularJS helped revolutionize the world of single-page JavaScript applications, and we have delivered many projects successfully with it over the years. However, we are no longer recommending it (v1) for teams starting fresh projects. We prefer the ramp-up speed and more maintainable codebases we are seeing with Ember and React, particularly in conjunction with Redux.
While we have delivered many successful projects using AngularJS and are seeing an acceleration of adoption in corporate settings, we have decided to move Angular back to Assess on this edition of the Radar. This move is intended as a note of caution: React.js and Ember offer strong alternatives; the migration path from Angular version 1 to version 2 is causing uncertainty; and we see some organizations adopting the framework without really thinking through whether a single-page application fits their needs. We have passionate internal debates about this topic but have certainly seen codebases become overly complex from a combination of two-way binding and inconsistent state-management patterns. We believe that rather than requiring that a solid framework be jettisoned, these issues can be solved through careful design and use of Redux or Flux from the outset.
We continue to see JavaScript frameworks as a useful way to structure code and bring better coding techniques to JavaScript. AngularJS is used widely by Thoughtworks projects. However, we are a bit concerned about the future of the framework. The 2.0 version currently under development represents a ground-up redesign that some might not be happy with. Without an evolutionary migration path, maintainers of existing AngularJS applications will be forced to either live with an unsupported version or undertake a large rewrite. We advise teams to first assess their requirements to understand if a single-page JavaScript application is really necessary. In many cases, a traditional page-model app is simpler to write and easier to maintain. Remember that there are other good alternatives to AngularJS, such as Ember.js, Knockout.js, and React.js.