Angular
From APIDesign
Is there anyone who remembers Angular? Angular.js used to be a popular JavaScript framework with great focus on testability (being driven by Mr. Hevery) and MVVM separation of model from the actual HTML (just like Knockout.js was doing years before Angular).
While Knockout.js is focused and lightweight framework, Angular.js tries to solve everything (kind of like Spring in Java - e.g. bloated beyond repair) - you either need to use it all, or none. As a result the Bck2Brwsr project decided to prefer Knockout.js.
Angular 2.0 Syndrom
Angular was quite successful with all symptoms of a Good Technology:
- backed by a huge company
- providing modern MVVM paradigm
- increased productivity thanks to testing being the primary focus
Well setup for future growth as I like to say! Who could have envisioned Angular to loose its position completely? These days there is no buzz about Angular. Just React, Vue.js and few like to be followers (Svelte is one I noticed). What has happened to Angular?
- lack of BackwardCompatibility!
- system 2.0 syndrom!
The maintainers, blinded by the success of Angular 1.x decided to make even better but incompatible Angular. That has happened, but migration from 1.x to 2.0 wasn't easy. In fact it was as problematic as switching to completely different framework. As a result:
- who tried to upgrade suffered
- so far loyal users of Angular started to complain
- the word about lack of BackwardCompatibility of Angular got out
- reputation of Angular was damaged
- new projects seeking for modern web framework rather started to prefer React
- because of all the upgrade pain loyalty of previous users disappeared
- when it is as complex to upgrade as completely rewrite why not try React?
When designing a framework, the last question is exactly the question you don't want your existing users to ask!
When we were designing the NetBeans Platform, we paid a lot of attention to BackwardCompatibility. Because the last question we wanted our existing users to ask was: Should we try to switch to Eclipse RCP?