Angular vs AngularJS

By Matthew Cooper, Barak Finnegan, Ken King, Daniel Olsen, Dan Weedon History

● AngularJS ○ Developed in 2009 by Brad Tech LLC ○ Business abandoned and released to open source ● ○ Typescript rewrite of AngularJS ○ Open source managed by JS TypeScript

● Scripting language ● Strongly typed superset of JS

● Compiled and run in the browser ● Compiled to JS in browser by

-esque syntax ● Browser support still lacks AngularJS

● Uses JavaScript ● Has concept of controllers ● Has concept of (including rootScope) ● Supports MVC architecture (Model-View-Controller) AngularJS Pros and Cons

Pros Cons

● Two-way ● No dynamic loading ● JavaScript is easy to learn ● No CLI (Command Line Interface) ● Fast development for easy/smaller applications Angular

● Controversial ● CLI to generate components ● Components consist of three elements: ○ CSS ○ HTML ○ TypeScript ● Framework Angular

Pros Cons

● Client tool for expedited ● Rewriting code base for AngularJS development. users. ● Component Decorators ● Relearning a new syntax. ● Event bindings ● Perception for future changes. Transitional Period (Angular 2-10)

Angular 3 Angular 4 Angular 5

● Skipped to avoid version ● HttpClient ● Support for Progressive web confusion ● New router life cycle events apps ● Conditionally disable ● A build optimizer animations ● Improvements related to (Google design language) Transitional Period (Angular 2-10)

Angular 6 Angular 7 Angular 8

● Focused on the toolchain ● Application Performance ● Differential loading for all ● First release of Angular updates application code Elements ● Angular Material & CDK ● Dynamic imports for lazy routes ● Angular Material + CDK updates ● Web Workers Components ● Virtual Scrolling ● TypeScript 3.4 support ● Library Support ● Content Projection support ● Angular Ivy opt-in preview ● Starter Components ● Dependency updates Transitional Period (Angular 2-10)

Angular 9 Angular 10

● Moves all applications to the Ivy ● New Date Range Picker compiler and runtime ● Warning about CommonJS imports ○ Smaller bundle sizes ○ Faster testing ● Optional Stricter Settings ○ Better debugging ● Updates to Angular’s dependencies ○ Improved CSS class and style binding ● New Default Browser Configuration ○ Improved type checking ● Deprecations and Removals ○ Improved build errors ○ Improved build times ○ Improved Internationalization ● Compatibility w/TypeScript 3.6 and 3.7 Current Focus

● Add TypeScript 4.0 support

● Community

○ Clear out the backlog by responding to issues and getting more input for where to go next

● Testing

○ Update e2e testing strategy to make it ‘future-proof’

● Ivy Compiler

○ Convert the Angular Language services to rely on Ivy instead of View Engine Compiler

○ Continue to improve design and performance Future Plans

● Optimization

○ Add 5 support for faster build times and smaller bundle sizes

○ Make Zone.JS optional for a simpler, smaller framework

● Improve learning curve

○ Rewrite beginner docs

● Improve Type-Checking

○ Add stricter type checking for @angular/forms Discussion

Do you think the switch from JavaScript to TypeScript was beneficial?