Chapter 1. Get Going with Angular
On September 18, 2014, Google pushed the first public commit to the repository that now contains the new versions of Angular. A few weeks later, at ng-europe, Igor and Tobias, from the core team, gave a short overview of what the new version of the framework was expected to be. The vision at that time was far from final; however, one thing was certain: the new version of the framework would be entirely different from AngularJS.
This announcement brought a lot of questions and controversies. The reasons behind the drastic changes were quite clear: AngularJS was no longer able to take full advantage of the evolved Web and the requirements of large-scale JavaScript applications needed to be completely satisfied. A new framework would let Angular developers capitalize on developments in web technology in simpler, more performant, and productive ways. Yet, people were concerned. One of the biggest nightmares with backward incompatibility for developers is the migration of their current codebases to the new version of the third-party software they use. In Angular's case, after that first announcement, migration looked daunting, even impossible. Later, at ng-conf 2015 and ng-vegas 2015, different migration strategies were introduced. The Angular community came together and shared additional ideas, anticipating the benefits of the new version of the framework, while preserving the things learned from AngularJS.
This book is a part of that project. Making the upgrade to the new versions of Angular is now smooth and is worth it. The main drivers behind the drastic changes in Angular 2 and its lack of backward compatibility are the evolution of the Web and the lessons learned from the usage of AngularJS in the wild. Getting Started with Angular will help you learn the new framework by making you understand how we got here and why Angular's new features make intuitive sense for the modern Web in building high-performance, scalable, single-page applications. Some of the topics that we will discuss in this chapter are as follows:
- How to use TypeScript and how it extends JavaScript.
- Building the user interface of Angular applications with a component-based architecture.
- Using Angular's dependency injection mechanism and delegating the business logic to services.
- We are going to explore in-depth Angular's router and forms module.
- We'll take a look at the Ahead-of-Time compilation for building lightning fast applications.
Angular adopted semantic versioning, so before going any further let's have an overview of what this actually means.