Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dart Side of the Moon

lvivski
June 02, 2013

Dart Side of the Moon

lvivski

June 02, 2013
Tweet

More Decks by lvivski

Other Decks in Science

Transcript

  1. Yehor Lvivski
    @lvivski

    View full-size slide

  2. The Dart side of the
    Moon

    View full-size slide

  3. class-based
    single inheritance
    object-oriented

    View full-size slide

  4. Oct 11, 2011 Apr 16, 2013 Summer 2013

    View full-size slide

  5. M1, July 2012
    • No explicit interfaces
    • No `+` on Strings
    • Cascades `o..method()`

    View full-size slide

  6. M2, December 2012
    • Better Dart2js
    • PUB
    • Better libraries API

    View full-size slide

  7. M3, February 2013
    • Streams API
    • Lazy Iterators

    View full-size slide

  8. M4, April 2013

    Stability!

    View full-size slide

  9. Who’s behind?

    View full-size slide

  10. main(){}!
    Tree shaking
    Classes and Interfaces
    Optional types
    Concurrency
    Operator overloading
    Optional and Named arguments
    Lightweight syntax

    View full-size slide

  11. It’s not a syntax
    sugar

    View full-size slide

  12. Standalone VM

    Browser integrated VM

    dart2js Compiler

    View full-size slide

  13. How it works

    View full-size slide

  14. Is it even possible?

    View full-size slide

  15. Generated code is faster, than
    handwritten.
    Prototype-less code is faster, than
    Prototype chains.
    Inlined functions, are faster too ;)

    View full-size slide

  16. Laziness
    • map()!
    • where() (filter analogue)
    • expand()!

    View full-size slide

  17. Streams
    Reactive Programming

    View full-size slide

  18. Streams
    •  emit a repeating series of events (such as messages,
    file data, user clicks)
    •  single- or multi-subscriber
    •  methods to take partial data  (first,  take,  
    skip...)  
    •  check data (contains,  any,  every)  
    •  transform

    View full-size slide

  19. Streams are Everywhere
    • Iterators (List, Queue, Set)
    • IO (File, HTTP)
    • Events

    View full-size slide

  20. Infrastructure

    View full-size slide

  21. Package manager

    View full-size slide

  22. Dart Web UI Package

    View full-size slide

  23. Links
    •  h'p://www.dartlang.org  
    •  h'p://github.com/dart-­‐lang/web-­‐ui  
    •  h'p://github.com/lvivski  
    – speaker,  start,  hart,  gloss,  quart,  archer  
    Thanks

    View full-size slide