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 Syndrome
Angular used to be a quite successful framework with all symptoms of a Good Technology:
- backed by a huge company
- providing modern MVVM paradigm
- increasing developer productivity thanks to testing being built in since beginning
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 started to seek for alternatives
- React was a natural Good Technology (also backed by a huge company, with a sense of coolness) choice
- 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?
- existing project kept using Angular 1.x
- or they were thrown away and rewritten to React or co.
Summary
When designing a framework, questioning loyalty is exactly the feeling you don't want your existing users to get! 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?