Angular - the pros and cons

The tech start-up community is growing rapidly. New ideas become real businesses and deliver value to society throughout the world. Engineers constantly seek better solutions and design different technologies to support the creation of high performance and scalable software solutions.

The Angular framework is one of a list of young but intensively developing software technologies that already has its admirers and adversaries.

Our team uses the Angular framework in building the front-end side of web applications on a daily basis. Here are the pros and cons for its usage.

What we like in Angular:

1) An end-user won’t see the page reloading process. This allows the building of a dynamic and usable interface which displays the application’s results fast.

2) Performance (Virtual DOM and other). Compared to some other popular libraries (like jQuery for example), Angular allows one to use less resources in the system.

3) Scalability. The creation of a new front-end part of your platform’s functionality becomes easier and unified thanks to a component structure.

4) Modularity. Your application could be developed using modules that are independent of each other. It is possible to implement or deactivate them faster.

5) Flexibility. When using Angular you are able to design different architectural solutions, for example, together with Redux. Therefore the final result of the solution is optimised.

6) There are plenty of useful functional libraries compatible with Angular (eg. chart.js) which give the opportunity to display data dynamically and in a real-time manner. You do not need to develop the functionality from scratch, but implement an existing solution and speed up delivery of the final result.

7) The code is thoroughly structured and divided into ‘easy-to-read’ blocks. That allows for development of your application in a team and adding new engineers will not need much of an onboarding period.

8) TypeScript usage. This language allows the use of typed data and increases the overall quality of the code. In its turn it makes the process of developing and scaling your software product more streamlined.

What we do not like in Angular:

1) The speed of the first initialization. This issue is especially negative for the web platforms of which the main purpose is an immediate launch during the first load, for example, landing pages, corporate websites and other marketing sites. The most proper approach to decrease this issue is to use LazyLoad and load modules gradually as a user requests them from the interface. For speed optimization when deploying your application, you should run build - - prod, i.e. all files should be minimised and grouped in bundles.

2) Durability of the basic development. The creation of the foundation of the application requires more time which will be rewarded in the future with higher flexibility and unity of the code.

3) When libraries get updated it is often necessary to do additional work fixing the existing code (this problem is not the problem of just Angular and could be avoided by using of one stable version for a longer period with a possibility of future updates by another stable version)

Summary.

We recommend using the Angular framework for creating business software applications with unique sophisticated logic which require permanent evolution and growth.

It is better to use another solution (like jQuery) when you need to build a simple website for which the main goal is to deliver content as fast as possible and when its structure won’t require any complex logic (landing pages, blogs, corporate websites, etc.).

You should not forget that it is necessary to optimise the code to reach the maximum possible performance of an Angular application. As a compulsory set of additional tools you should use GIT, npm, and angular-cli. If you are at the very start of the new project it is better to use the most recent stable version of the Angular framework.

Written by
Andrei B.
Sr. Front-end engineer, YSBM Group

Please share if liked and let me know if you need any help with building a custom web|mobile application. Thank you!


Request free consultation