There are several benefits that I get from using Angular in web application projects. First, the framework brings consistency to a project. Having a very opinionated development system means that developers and architects stay within the guidelines imposed by that system for developing features. Angular provides phenomenal tooling with its command-line interface (CLI) for automating build processes, the use of TypeScript for static typing, and a powerful compiler engine. Second, Java and C# developers can learn to perform development on it since it uses TypeScript for code implementation. TypeScript brings object-oriented programming (OOP) paradigms to a scripting language that Java / C# developers are accustomed to coding. Lastly, Angular is continually being updated with new features, schematics, and performance enhancements. As of this writing, the framework is at version 8, with Google (the principal backers of the framework) promising to make updates and support to the toolset every six months. Awesome!
Although I will acknowledge that I am biased towards the framework, I will admit some risks associated with using Angular. First, if you are using the framework with Java and C# developers for the first time in your organization, many of them will be incredibly frustrated with the asynchronous nature of the JS language. Keep in mind that JS is meant to manipulate the style and elements of a web page dynamically. This is painful for database and backend developers to grasp and understand when transitioning to client-side development. Second, Angular leverages the RxJS a library significantly. This library makes it easier for developers of the framework to handle event-based programming and asynchronous transformations. Again, continuing on the hardship for the poor backend developer, it will be difficult to adjust to the asynchronous nature of programming in the framework. Third, creating unit tests using the Jasmine test suite is a pain. Fortunately, there are alternative test suites the architect can configure on the framework at the outset of the project. Lastly, if you’re a Director or Project Manager, it may be challenging to find competent Angular developers. Due to a good number of JS frameworks released by different companies and teams to address the pain of developing for the client-side, there is a large amount of division and cult-like followers of specific frameworks (like React.js). That makes it hard for new client-side developers to focus entirely on a single framework like Angular.
From my point of view, being productive and efficient with my UI development is vital. I don’t like having to write a bunch of boilerplate, perform a whole bunch of build configuration, and then have to maintain a bunch of libraries to aid my workflow. I just like to have an idea or a project in mind and start executing. Just like driving a car, I wish to get in and turn on the ignition and move. And since the Angular framework keeps getting better every year, I will continue using it until the well-paying web projects dry up. And I don’t see that happening anytime soon.
And there you have it, my take on Angular for use in your web projects. The future of the framework looks bright; with better tooling, faster performance, and great support from the community and Google, there is a growth on the horizon for this phenomenal JS framework in the enterprise. If you have a need help starting or improving a web UI project for your enterprise product, reach out to me and see what great things we can achieve together.