The Next Version of Angular is Angular v4

Jacky Kimani
👁️ 49,224 views
💬 comments

Angular will be making another big number upgrade to Angular v4. Don't be afraid of the change though, Angular is still the Angular you're learning to love. This is mainly a version numbering change and not a platform rewrite like Angular 1 to Angular v2.

The launch wasn't just the final stage of Angular v2, rather it was the stage where they had something stable.

Table of Contents

    TLDR: Jump from v2 to v4 for Semver matching across packages. Angular is still Angular.

    There were a number of minor releases after the launch of v2.0.0 which included:

    • v2.1 - router enhancements and route reloading
    • v2.2 - AoT(Ahead-of-Time) compatibility and ngUpgrade
    • v2.3 - improved language service used especially by IDE vendors. The service made it easy for IDEs to integrate with Typescript since they do not just ship the compiler. It also enables autocompletion on the IDEs and has better error handling by providing better error messages.

    Semver

    The Angular team announced that they will be using SEMVER when releasing updates.

    SEMVER (Semantic Versioning) is basically about adding meaning to version numbers.

    Sermver is pretty simple if you look at the chart below.

    Basically what this means is that:

    1. Patch versions are released every week with the exception of holidays
    2. Minor versions are released every month
    3. Major versions are released every 6 months, meaning 2 major versions every year.

    Angular is built on a monorepo, this simply means there is one huge repository on Github for all of Angular's packages and all its work. Google also has all their work including Google Maps and all other Google products on one repository. This has its advantages and disadvantages

    The Angular team feels confident about their monorepo design for the following reasons:

    • They release exact combinations of versions battle-tested at Google.
    • They are more productive this way and can get more stuff done

    Switching from Angular v2 to Angular v4

    Packages on the Angular repository have been following semver except the @angular/router package which has a one-off version, this, according to Angular, is a screw-up on their end, which is noble of them to admit that.

    While the @angular/core and others were on version 2, the @angular/router was on version 3. This caused some confusion so the bump to Angular v4 matches all packages up nicely.

    Upcoming features

    Some of the features that Angular is looking to roll out in upcoming releases include:

    Typescript compatibility

    The Typescript team has been working on a number of improvements including:

    • Creating smarter compilers which handle errors better and give better error messages.
    • Implementing strictNullChecks to provide extra type safety

    This means the Angular compiler (ngc) will be faster since they will be taking advantage of the optimizations of Typescript

    It will be a breaking change for Angular since the current Typescript version (1.8) is not compatible with v2.1. This is because they edited some features and the type system is richer so it's no longer compatible with Angular v2

    Backwards compatibility with Angular v2

    It will be able to successfully use interfaces and data from applications made with Angular v2

    Better Angular compiler errors

    The compiler will be much smarter in terms of error handling

    Faster

    The ngc will be faster in terms of runtime speed and parse time. It will also be smaller

    Release schedule

    Angular v4 is due in March 2017 but before then they released a schedule for their betas and rc (release candidate) versions which simply put, are beta versions with the potential to be a final product and which are ready to be released unless significant bugs emerge.

    Angular is clearly evolving! To avoid a rough transition from one version to another like what happened with the transition from Angular 1 to Angular v2, Angular is trying to be:

    • Predictable
    • Transparent
    • Stable
    • Incremental

    How? According to Igor Minar, Angular plans to have major releases every 6 months with minimal breaking changes. This seems like a pretty feasible plan, unless another mistake is done with the naming of the packages like it happened for the router package.

    Naming convention

    Angular has moved the attention from the version numbers when naming the different versions. They are adopting the following naming convention:

    • Angular 1 will be called AngularJS
    • Angular v2+ will just be called Angular

    It's just "Angular"

    Conclusion

    Angular is planning to bring in more updates but rather than having major changes at once, the plan is to make incremental, predictable and stable changes regularly. It will have support for libraries using Javascript and Typescipt just as it always has.

    Finally, keep calm and embrace angular, don't worry yourself about version numbers too much.

    For more info on the release schedule, see:

    Ok... let me explain: it's going to be Angular v4.0, or just Angular

    For more about this you can watch Igor Minar's opening keynote:

    Jacky Kimani

    2 posts

    Software Developer at Andela

    I am a Javascript developer who never stops learning! I believe in helping others get to where I am and beyond