On Javascript

    - Javascript programming model is based on global variables (bad news :-)).
    - JavaScript is the first lambda language to go mainstream.
    Deep down, JavaScript has more in common with Lisp and Scheme than with Java. It is Lisp in C’s clothing.
    - Prototypal inheritance VS Class inheretnce:


    - Notice that class inheritance has a "global-nature" (you obviously know side effects such nature may produce, like global variables).
    - However, prototypal is more scoped inheritance (as you can see above, o2 could be extended without impacting o1).


    JavaScript is not reactive out of the box. To be reactive is considered a crucial feature especially when dealing with user interfaces - UIs -.
    It's necessary then to build an abstraction on top of JavaScript to guarantee the ease of UIs management (e.g data binding).
    There are and will be many tentative to do so: Ember, Angular, React.

    I liked the talk of an engineer from Instagram where he states that both Ember (because of the explicit fetch of key-values) and Angular (because of  dealing with controller/directive scopes) still leaky abstractions (i.e.: they explicitly try to manage data binding details anyway).
    However, Facebook ReactJS seems, at least, less leaky because the Virtual DOM will hide and optimize DOM updates.


    - How modularity is advocated Angular 1:
      a- Component: view component
      b- Directive : instructions component  acting on html -dom- (doesn't produce a view)
      c- Service: centralized procedure / function module
    Technically, each angular module/ component (a, b or c) is a javascript class.
     


    Generalities
    • ECMAScript: the specification language set to standardize JavaScript, known internationally as ISO/IEC 16262 or ECMA262, for short. 
    • JavaScript’s evolution has a cadence of yearly releases. This is currently driven by a standards committee known as TC39 ( https://github.com/tc39 ) that will also continue evolving ECMAScript.

    No comments: