The reason we are moving that way is:
* <1s refresh times in dev mode regardless of the size of the project. The promise is that the compile time is proportional to the size of the change, not the size of the app.
* Integration with modern javascript so can use modern browser facilities without backflips. i.e. Simple creation of ES6 class instances so can do things like WebComponents without ugly hacks and/or loss of optimize-ability.
* Potential for much better code optimization and writing custom compiler passes.
* Emitting modules as non-web apps without writing custom linkers. i.e. Currently if you are building a browser extension or a web worker or an app to run in node you need to write a custom linker
* potential for hot-reload in candidate modules without loosing any application state (i.e reload just a single ui component in our react/gwt app without loosing the rest of the state in our application)
* Integration/optimization with native javascript. i.e. Bringing in native js modules will be possible and they will all be compiled and optimized together
* Exporting java libraries to native Typescript/javascript without any ugliness and full optimization still available
To be honest the first two are the main reasons ... the rest is icing on the cake ;)
--