I’d like to offer a few thoughts counter to this outcry of fatigue in the industry.
I tend to see these negative sentiments as more group think and viral memes catching on than necessarily objective criticism. If we get down to it we can nitpick and criticize any language or framework. We can find fault with C++, Java, Ruby, Python, you name it, or we can praise each respectively. Each language, and everything contained therein, has strengths and weaknesses, but even more so, at the end of the day the apps we create are black box. The end user sees the function not the code. Therefore if we are programming in a language/framework to create functionality, then it is the effectiveness and vibrancy of the functionality that is the goal, the nuances of the languages or framework are more or less meaningless to the degree that they do not significantly slow us down or prevent us from implementing functionality. Yes I know future maintainability is important, testing is important, solid code is important, but such things can be accomplished in nearly any language or framework. Such concepts are universal, not specific. One can create beautiful code in any language just as one can create poorly designed code likewise.
Let’s look at Angular and React. Prior to Angular there were definitely plenty of popular front-end frameworks (Knockout, Backbone, Ext, etc…) however Angular made a huge splash because it was a brand new approach backed by a very large company that provided a full framework out of the box to do front-end development, especially with single-page apps. It filled in a lot of gaps that front-end developers previously had problems with and gave a complete solution while being extensible, this was huge. Angular caught on fast, and I believe, due in part of the popularity of Angular, the front-end framework/library development re-ignited. This is not a bad thing, this is progress. This is learning from past mistakes. Angular and React wouldn’t exist if there wasn’t still a need or room for improvement.
What’s next in the industry? I have no crystal ball, but the past is the best indicator of the future.
- I’d expect to continue to see the evolution of existing frameworks and libraries and the creation of new ones that advance some new idea or concept that make creating webapps easier and more fluid. The larger frameworks will likely cherry pick from the best ideas in the aggregate. We’ve already seen this with Angular 2 adopting superior forms of internal rendering over v1 and having the ‘Component’ as a first class construct.
- Angular 2 will be successful to some degree but probably be overshadowed by React mainly due to momentum. This likely won’t change for a while, especially given the still ‘not ready for production’ state of Angular 2. Think Xbox 360 and how it hit the market long before the PS3, the PS3 was always playing catch up. Not a perfect analogy in light of Angular 1.x, but it has some parallels I think.
- Innovations surrounding and within React may become a standard (think Flux and the Virtual DOM) but it would be many years before that really caught on and with the Angular/Angular 2 user base it won’t become the industry standard necessarily. I don’t hold a strong position here, consensus is very difficult in this domain, but having Google or Facebook back a standard may give it a higher chance of success. Remember competition is good. Standards are good, but there is the age old fragmentations of standards problem as well: https://xkcd.com/927/
- There will be some new library or framework X that will be introduced and gain momentum eventually though it will be a while. React and Angular have enough hold and mindshare that any new major framework will have a very hard uphill battle to establish any sort of major dominance barring a new revolutionary approach like React popularized.
- There will be many new micro-frameworks and ‘nextbestthings’ that come out, but none will experience the large success of React and Angular for some time.
- When React version 1.0 is released it will be a very significant milestone as a successful implementation of the original concept and goals. I see the momentum only increasing for React not decreasing. There will undoubtedly be an arc at some point, but not soon.