Why Angular?

Lately I started working on a Frontend Migration project where the Application was earlier running on Durandal and Knockout. 

This interesting and lovely story started when one if out chief architect installed me to understand the product line from a UI perspective.

I found that there are multiple products running on outdated technology stack like Durandal and knockout

There is no harmonization across these products. They need a single unified platform (SSO) for all the assets

Selecting a future technology stack is a very complex work which required understanding current and future requirements, trade-offs, learning curve etc. A wrong selection would impact productivity in product development.


So I did a comparison analysis around some of the frontline frameworks available like React, Angular, Polymer.

Couple of you thought about why I have chosen only these three items in the analysis: Well there are good number of UI frameworks available in the market which are serving the same purpose with little differences yet some of these are reliable and popular enough to include in the candidate list of our analysis. We chosen to go with Angular & React because both are reliable framework for building complex UI functionalities, have good community support, the frequency of rolling out new versions is fast, enriched with developer accelerators like CLI, etc. so they were the obvious choice.

On the Polymer front, i see it has a huge potential of building reusable, framework agnostic components, ie. you can build components in Polymer and can be deployed in any of other UI frameworks like Angular, React, Backbone, Vue, etc. Its inbuilt support for building web component stands him out of the line.
Selection Criteria

This section presents some criteria and drivers that will serve as the basis for the decision of the developer on certain aspects of a project.

Evaluation Attributes
Open source
Comments
Core Attributes
Sub Attributes
Polymer
React
Angular
each lib has component lifecycle
Re-usability
does framework support inbuilt component standards
Yes 
Yes
Yes
Only Polymer is following WC standards
does framework support Web component standards
Yes
No
No
versioning, easy to install, and upgradeable
 Custom
Custom
Custom
with the help of NPM can be done
Meta data driven development/configurability
Custom
Custom
Custom
Productivity
Can be written in more modular way
Yes
Yes
Yes
Follow modular and SRP principal
Code generators - Template
Limited
Limited
Yes
Angular comes with other library like routing, etc
Linting, code Hinting
Yes
Yes
Yes
Single Platform for all needs- ES 6 support - Module, OOP, Promises, RxJS, TypeScript
Limited
Limited
Full
TypeScript support for managebility
Limited
Limited
Full
Angular team promotes writing code in TS
Performance
Dom Size (only active module/page dom should be present in the browser)
Yes 
Yes
Yes
Default Library size ( first time load on browser)
 Thin
Thin
Thick
Angular bundles all the required libraries used in the project
Rendering ( are there approaches like virtual dom available for fast rendering)
 Fast
Best
Good
UI caching API's
Limited
Limited
Full
In built API
Testability
Can test presentation separately from API
Limited
Limited
Yes
Availability of Mocking API
Yes
Yes
Yes
Integration-3rd party
Hooks to connect external lib
Yes
Yes
Yes
Charting, data mutation libs integration
Yes
Yes
Yes

Outcome : Angular

·         Modularity & Manageability comes from Typescript
·         Single platform for all needs, less integration issues
·         Driven by industry leaders
·         Brings reusability with support to component oriented architecture
·         Skill standardization & retention
·         Scalable
·         Development efficiencies

Every framework has a profit/loss balance sheet its more of a technical requirements which guides the decision, other than its always better to "choose products with a reputation for reliability"


Comments

Popular posts from this blog

MicroFrontends

Frontend State Management

Front-end State Containers: Effective Selection