Dart Side of the Moon

Aea16802c5bfeaaa555c632da53c51e7?s=47 lvivski
June 02, 2013

Dart Side of the Moon

Aea16802c5bfeaaa555c632da53c51e7?s=128

lvivski

June 02, 2013
Tweet

Transcript

  1. Yehor Lvivski @lvivski

  2. The Dart side of the Moon

  3. None
  4. class-based single inheritance object-oriented

  5. History

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

  7. M1, July 2012 • No explicit interfaces • No `+` on Strings

    • Cascades `o..method()`
  8. M2, December 2012 • Better Dart2js • PUB • Better libraries API

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

  10. M4, April 2013 Stability!

  11. Who’s behind?

  12. None
  13. None
  14. Why?

  15. Performance

  16. main(){}! Tree shaking Classes and Interfaces Optional types Concurrency Operator

    overloading Optional and Named arguments Lightweight syntax
  17. It’s not a syntax sugar

  18. Standalone VM Browser integrated VM dart2js Compiler

  19. None
  20. How it works

  21. None
  22. None
  23. None
  24. Is it even possible?

  25. Generated code is faster, than handwritten. Prototype-less code is faster,

    than Prototype chains. Inlined functions, are faster too ;)
  26. None
  27. Laziness

  28. None
  29. Laziness • map()! • where() (filter analogue) • expand()!

  30. Streams Reactive Programming

  31. 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
  32. Streams are Everywhere • Iterators (List, Queue, Set) • IO (File, HTTP)

    • Events
  33. Infrastructure

  34. Editors

  35. None
  36. None
  37. Package manager

  38. None
  39. Components

  40. Dart Web UI Package

  41. None
  42. Demo time!

  43. 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