AngularJS was developed in 2009 by Mishko Hevery and Adam Abrons of Brat Tech LLC as software for the Megabyte JSON storage service to facilitate enterprise application development. The service was hosted on the domain GetAngular.com and had several registered users before they decided to abandon the business idea and release Angular as an open source library. Abrons left the project, but Hevery, who works at Google, continues to develop and maintain the library with Google colleagues Igor Minar and Vojta Gene.
In March 2014, development of AngularJS 2.0 was announced. The new version was written from scratch in TypeScript and was very different from the previous one. Therefore, it was later decided to develop it as a separate framework called Angular. Angular 2 was published on September 15, 2016, while the first version evolved separately as AngularJS.
In July 2012, the Angular team released a plug-in for the Google Chrome browser called Batarang, which simplifies debugging Angular-based web applications. The extension makes it easier to identify bottlenecks and provides a graphical interface for debugging applications.
Philosophy at Angular
AngularJS was developed with the belief that declarative programming is best for creating user interfaces and describing software components, while imperative programming is great for describing business logic. The framework adapts and extends traditional HTML to provide bidirectional data binding for dynamic content that automatically synchronizes the model and view. As a result, AngularJS reduces the role of DOM manipulation and improves testability.
- Separate DOM manipulation from application logic, improving code testability.
- Treat testing as an important part of development. The complexity of testing is directly related to the structure of the code.
- Separation of client and server side, allowing parallel development.
- Guides the developer through the entire path of building an application: from designing the user interface to writing business logic to testing.
Angular adheres to the MVC design pattern and promotes loose coupling between presentation, data, and component logic. With dependency injection, Angular brings classic server-side services like view-dependent controllers to the client side. Consequently, the load on the server decreases and the web application becomes lighter.