, Angular 2. .
(Tobias Bosch) The Angular 2 Compiler. .
Google Angular, . , Angular . - .
, . , , , . , .
?
, ( , ..) .

, . , . .
?
: ? , .
, , , Angular 2 . , Angular 2 . , , , . . , .
, (Just In Time) (Ahead Of Time) .
: ?
: , . ? , , , . , AMP- Google? . .
, . . , , . .
, , . . . , , .
(switching a route).
, , . : .
?
- , . . , deep-tree. , . , . , .
512 , . , . . view . .
?
, , .
(template). , .
, , (template). , , ( ).
. HTML, - , , HTML.
: , ? Angular . , . . .
CSS. , Angular , , - , .
, , , , .
ngModel. ngModel, .
. .
, , ngModel ngForm.
Angular?
ngForm, . , .
, .
, Angular, .
, . , .
, , -, - ?
, - , , HTML.
, ?
. , . , . . , - , . , JSON . . , . , . , . (, english AST). . HTML.
?
. , JSON . , . . . , . JavaScript, . for, , , . user.name propPath ( ), .
, , , , , .
? , ?
, . , .
, ? , undefined. , , . , .
Angular
, . , , , , 14 . , .
, , ?
. , .
HTML, ? . Angular 1, Angular 2.
:
- . HTML .
- , Angular .
, . : , . . , , SVG, , , . , JavaScript, . , .
, HTML .
, ?
JSON , , : . .
ngModel, JSON . input, , ngModel . , , , ngModel, ngForm, .
HTML, , ? ?
HTML. DOM? -, innerHTML. -, . -, document.createElement.
. , innerHTML ? , element.cloneNode ? , element.createElement?
, . :
- innerHTML . , , , DOM. , .

- element.cloneNode , , . . , .
- document.createElement . element.cloneNode. - , .

: , element.createElement DOM.
Angular 1, Angular 2. , , , , Angular. Angular, - , , , . , , user.name, .
, , , . innerHTML cloneNode, DOM. createElement createTextNode . . .
, createElement createTextNode, ( ).
-, . , . , , .
, DOM.
. , ngElement, DOM . . DOM.
DOM ?
, , . ?
ngElement document.createElement, , . , .
. ?
, - ( ) new , Map. Map (ngModel) .
: , , ( ). , .
, . . .
: . ?
binding, target Node. .
target , , , . .
: , , target.
: , target .
, try catch . , .
, . . .
. , . . . , ng- dirty-check, .
. . ? , Angular 1. . , . Angular 1 .
? ? ? .
-, . , , . , try-catch, , , , . , , . , .
. : Map ngElements.
, DOM map? , , . -, map, . , , - - .
: : , 10 . inlinengElement, 10 , , 10 IF. ? .
, ?
, : , map. - 10 . , JavaScript VM. JavaScript VM ( ). JavaScript VM . , . . , .
, , , , ? . view cache, .
, , . . . , , . hydrate dehydrate. DOM , , . . .
, , Baseline JavaScript . , deeptree. dirtyChecking. . . Angular 1 5,7.
view cache. 2,7. , . . , .
. :
- ViewCache . , . , , ? , ? , . , , - . , , .
- : DOM . , . , , , . . . : , , . ViewCache, DOM. 2,7. ?
view
: view. ?
ngelement, ? . view - . InlineView, ? . ? , .
? .
, , , , . , view. document.createElement, Node0 , document.createElement, Node1. , , , ? . . DOM.
. . -, : , , . ngForm, ngModel.
, . , dirty-check. , JavaScript. this.component user.name. , user.name , , . . . . , Map, .
. , .
: ?
, - , . ? , 101 .
: DOM , DOM . , . , DOM, , DOM. .
, ngelement, compileElement. . compileElement, compileView .
: DOM, , DOM. document.createElement, , , , this.document + document.createElement .
, appendChild, . -. , .
, , . 2,7, 1,5. . ViewCache, -, . , . , . .
(Just in Time)
, (Just in Time) . , .
, : - , . , , view. , . , . :
- , . - , , . . , . , . .
- , , Angular . , , .
- . . , , . - - . , , .
- , (, ). , , . , Angular . .
- , , . ( , , ), - , :
- -, , , , .
- -, . , , . Clojure ( ), Google .
, , .
, , , view. . user.name, user.name, user.name . , , , 1, U, N. , . - user.name.
, , - user.name, . . , . , . , , .
(Ahead of Time)
, (Ahead of Time) . .

, , view .
, ( JavaScript), .
, : ( ), ( ). , . .
, view , , view. , , .
, . , .
, . , ? , . , .
ES5. , , , . require.js - .
, TypeScript :
- -, ( ).
- -, TypeScript. , , . , require.js, system.js, Google Clojure, .
- , ES6 2016.
ES6 2016?
, , . , , , , .
, , , . ES5 , TypeScript .
: , ( declare var name EL). var el TypeScript . ES5 .
. document ( ). createElement .
literal div, , , . , , . , . , , . .
, , . .
? , - , cookies, cookies, - . . . .
. , ? ES5, .
, , ? . SomeDir .
, , . document. ?
, document, window . , . ( , ?) . - .
, SomeDir decorators, , ( , ). . JSON , . , . JavaScript , , .
, , . , .
, .
. . , , , Angular 2 . . gzip 144 49. , React 46.
, Angular, ngForm ngModel. ngModel ngForm.
NGC _node, TypeScript, TypeScript. , , . user.name. , . .
. , user.name wrongName. user.name, user. wrongName. , , TypeScript .
, . , TypeScript. .
, .
10 gzip. 25 , . , , Baseline. , , , Baseline.
. , . .
, .
.
, , (AST). , .
, document.createElement Angular.
, .
, ( , , , ) . .
(Ahead Of Time) (Just In Time) , , .
, . .
.
https://habrahabr.ru/post/329782/