AngularJS (commonly referred to as “Angular” or “Angular.js”) is a complete JavaScript-based open-source front-end web application framework. Though it is an open source, it is mainly maintained by Google and by a community of freelance web developers and corporations to address many of the challenges encountered in developing single-page applications.
These components complement Apache Cordova, the framework used for developing cross-platform mobile apps. It aims to simplify both the development and the testing of such applications by providing a framework for the client-side model.
Why is Angular Popular?
The AngularJS framework works by first reading the HTML page, with embedded attributes. It considers the attributes to bind input or output parts of the page to a model. The values of those JavaScript variables can be manually set within the code, or retrieved from static or dynamic JSON resources. The AngularJS has already spread itself on the websites of NBC, Walgreens, Intel, Sprint, ABC News, and approximately 12,000 more websites.
Some advantages of using Angular:
- When you use AngularJS or Angular, you need to split the app into components, and MVC takes care of the rest.
- HTML is used by Angular to form the interface of the app. It is also less difficult to rearrange the interface if required.
- Directives have been added to bring the additional functionality to Angular. With multiple elements in a function, it is not required to manipulate the Document Object Model (DOM), and you only need the MVC data.
- With Angular, writing long and complicated codes is reduced considerably. The Data models enable a developer to put data manually in the programming.
What is Google saying about the new version?
AngularJS is the frontend part of the MEAN stack, consisting of MongoDB database, Angular.js itself, and Node.js environment. At NG-BE 2016 conference, which took place in Belgium last week, Google Angular Team Lead Minar presented the release schedule adopted for future versions of Angular and introduced the major version which will be Angular 4.
The new Semantic Versioning is about a 3-numbers version to a new release, major.minor.patch. According to Minar, for the near future, the Angular team may switch to using the latest version of TypeScript. That involves some breaking changes which mean introducing a new major version!
Because of the latest Angular router’s version, the current version is not in alignment with the rest of the modules and the team plans to bring them in sync, releasing the next major version as 4. Another important thing is that the product will no longer be called AngularJS, but simply Angular. The first beta version of Angular 4 is supposed to be released this week, followed by six other beta iterations and then 3 RC ones with the target of making the stable 4.0.0 available on March 1st, 2017. In the meantime, only patches will continue for older versions.
The new version, Angular 4 will be as compatible with version 2 because the team does not want to repeat the breaking experience is moving from the first version to the second version. If some new feature turns out to break things up with the ecosystem, and if not fixed, Google Team would rather take that feature out than risking breaking everything.
Naming guidelines
Basically, from now on, you should name versions 2.0.0 or later of Angular simply “Angular.” Try to avoid using the version number, unless it is necessary to disambiguate.
Three simple guidelines are:
- Going forward, use “Angular” for versions 2.0.0 and later
- The name “AngularJS” to be used to describe versions 1.x or earlier
- You should use the specific version when needed to talk about a specific concern or discussion
- You need to use full server version when reporting a bug
All the docs – even for AngularJS – will be aligned to this in the coming weeks. Also in blog articles, courses, books, if you are targeting a very specific version of Angular for a reason, consider adding a header line.
Why not version 3 then?
The core Angular libraries live in one single GitHub repository. All of them are versioned the same way but distributed as different NPM packages. Due to the misalignment of the router package’s version, the team decided to go directly to Angular v4. All core packages are now aligned which will be easier to maintain and help avoid any confusion. The freelance gigs are eagerly waiting for this version as they are ready with their polished skills to make the web experience better for their customers.
Also, it is important to understand how Angular is being used and integrated into Google. All Google applications currently use Angular version equal to the master branch of the Angular repository. Whenever a new code gets added to master, it will be integrated into Google’s single, giant mono-repo, where also other products such as Maps, Adsense, etc. are hosted. As a result, all of the projects using Angular internally at Google will run their widespread test suites against this new version.
It makes the team very confident to cut a new release since it will contain the exact combination of versions of Angular packages that Google is testing currently. Such aligned versions make sense and will make it easier to maintain them over time, which in turn helps the team be more productive and focus on adding new features.
Tentative release schedule
If breaking changes are going to arrive in future, it doesn’t mean they will arrive every other week. Google has committed to the time-based releases in three cycles as mentioned here:
- Patch releases each week
- A minor release after every three months post a major release
- Within next three months, Angular 4 final release will be there. The plan is to release a major version every six months, so Angular 5 will show up in September 2017, followed by Angular 6 in March 2018 and Angular 7 in September 2018.
The idea of this entire exercise is to introduce minimal breaking changes in all future versions of Angular 4. Get ready to use the excellent features!