Anyone out there wondering where the future of the web application world is heading? AngularJS is my personal favorite and a clear winner amongst other client side MVC frameworks.
So why is AngularJS the next big thing for web applications? Basically, because it is a framework that brings with it the virtues of organization and structuring as well as the architectural pattern that helps make enterprise and data-centric business web application development a breeze.
AngularJS is an open source web application framework wrapped around native HTML/JS/CSS technologies. It augments the web development techniques with patterns and practices that help modernize web application development in order for them to handle more responsibility that can (and should) now be shifted from the back-end to the front-end.
AngularJS is "super-powered by Google". It has an active community around it so anyone starting out can access this super-charged ecosystem and quickly start building cool things and having their own "WOW!" moments.
AngularJS aligns itself organically to the thinking and mindset of the modern web application developer. It brings the power where it belongs. AngularJS is built around design principles that support scalability, maintainability and modularization at its core. It is best suited for thick client business web applications. It encourages the usage of best practices and patterns of development. This drives the development of a high quality decoupled modular maintainable application and provides a solid base for large business web applications.
- Architecture/organization patterns out of the box (MVC/SPA/DI)
- View templating using plain-old HTML (no new templating language to learn) for creating dynamic views
- Extension of HTML vocabulary to create new UI widgets/components
- Protection against scattered DOM manipulation spaghetti code
- Inherent support for testing the application
- Modularity, loose coupling and reusability
- Parallel development and comprehensible code due to virtue of MVC
Design goals (quoting from AngularJS guide):
- Decouple DOM manipulation from application logic. This improves the testability of the code.
- Regard application testing as equal in importance to application writing. Testing difficulty is dramatically affected by the way the code is structured.
- Decouple the client side of an application from the server side. This allows development work to progress in parallel, and allows for reuse of both sides.
- Guide developers through the entire journey of building an application: from designing the UI, through writing the business logic, to testing.
Key Features of AngularJS
AngularJS comes with a whole set of buzzwords. These buzzwords give us a good idea of what to expect from AngularJS. If you're acquainted with these terms, you will be able to further appreciate the virtues that these bring for web development and serious web development.
The first that come to mind are:
- 2 way data-binding
- Declarative UI
If you need a rock solid framework to handle your large scale web application, you need all the power provided by a full-featured web framework. It’s refreshing to see how all of this has been adapted by AngularJS in the JS realm. All of the features (like testability, intuitive view templating, declarative UI design, dependency injection, separation of concerns, model view synchronization, custom components etc.) are ones that web developers would expect of a framework that they will be using to build large-scale maintainable business web applications. Being a non-opinionated framework, AngularJS offers all this added power to help developers choose how best to build the system that they need.
To learn more, I invite you to read my full-length article “AngularJS - The Next Big Thing” by clicking on the following link:
About the author: Robin Rizvi
I am currently developing for the open-source community. Writing articles is my way of thanking the community.