Question presented to candidate: "Our legacy admin panel is on AngularJS 1.8 and the new product is on Angular 22. Explain what Angular is, and why moving between the two is a rewrite rather than an upgrade."
What a strong answer should cover:
- Angular is a TypeScript-first, batteries-included framework from Google: components, routing, forms, HTTP, DI, testing and a CLI ship together.
- AngularJS (1.x) is a different framework: JavaScript, controllers and
$scope, and a digest loop that dirty-checks every watcher. - Angular (2016 onwards) was a ground-up rewrite: components instead of controllers, templates compiled ahead of time into instructions, typed DI, and now signals for fine-grained reactivity.
- AngularJS support ended in January 2022; Angular is actively maintained and versioned semantically.
- Modern defaults matter: standalone components (v19), zoneless change detection (v21), OnPush by default (v22).
- Migration is incremental at best (ngUpgrade hybrid apps) and in practice a rewrite, because the mental models do not map one to one.
Clarifying questions expected:
- "Do you mean the history, or what changes for the team day to day?"
- "Is the plan a big-bang rewrite or a hybrid app that migrates screen by screen?"
Code / implementation expected: Optional β a small standalone component with signals to contrast with a $scope controller.