Gheorghe Curelet-Balan Blog

Sunday, November 16, 2014

Transcript notes of Miško Hevery - Keynote on AtScript at ng-europe 2014

Miško Hevery, the father of Angular, introduced the Angular 2.0 Javascript extension AtScript, its benefits and how it simplifies development of large Angular applications.

Below are my time stamped notes of the video in the "mmss" (MinutesSeconds) format (time stamps are approximate):

030 AtScript is not a new language and WHY
118 Angular's current directive declaration as example of a DARK API. Convoluted, not intuitive, because of many dependency injections involved
300 third party APIs call & ES6 lambdas make code unintelligible
412 need for code annotations for MAINTAINABILITY
440 example code of what is needed for better maintainability: annotated declarations and types use in a Typescript or ES4 style
648 why no new language? So, don't repeat mistakes of other languages: just extend JS, otherwise need libs & new knowledge
730 cartoon on standards for languages
750 Ideal Development Environment. IDE1: need for types in large systems development
915 types should be optional for backwards apps compatibility. The types benefit should outweigh their costs.
1010 IDE2: need for metadata to express INTENT & build ABSTRACTIONS
1040 IDE3: need for run time introspection. AtScript is at the intersection of IDE1, 2, 3
1101 types as CONTRACTS. Allow refactoring, renaming, code navigation. Code example of array of CSS Selectors. Runtime assertions taken from Dart
1450 the 3 types of run time assertions RTTS: java inheritance style, structural style & generics
1620 RTTS advantage: verify JSON datatypes  received from server
1720 declarative metadata exemplified for a directive
1805 encapsulate the directive as a class without breaking dependency injection system
1930 introspection at runtime exemplified
2222 how to add Expressive Code Needs (types, annotation, introspection) to Javascript?
   Use ABSTRACTIONS via TYPES & ASSERTIONS to declare the code INTENT
2500 Javascript history. EcmaScript ES3 try & catch enabled building large scale apps. ES4 classes & modules resulted in no adoption. Eg. ActionScript deadend. ES5 added strict mode to ES3. ES6 adds again classes & modules. Next ES could have annotations
2715 reference TRACEUR tool
2745 diagram of supersets containment: ES5-->ES6-->Typescript-->AtScript
2925 evolution of syntax
2950 how to add annotations today in ES5
3113 use ES6 class to add annotations. How to do it in Typescript, AtScript, Cofeescript.
      Same Angular 2.0 code base generated for 2 platforms: JS & DART
3320 AtScript IDE support promised by major Javascript IDE vendors already supporting Typescript
3400 add static types checking as in Typescript with the benefit of runtime check, proposal standard, then standardize.