Tomáš Kulich - Dart (WebElement #27)

Tomáš Kulich - Dart (WebElement #27)

40789c9059d8bb182043f8c2d40b6a98?s=128

WebElement

March 06, 2014
Tweet

Transcript

  1. 2.
  2. 3.

    Single Page Applications Server Client • everything else • get

    data to/from DB • serialize to/from JSON • validate • sending email, logging, etc
  3. 4.

    Single Page Applications Server Client • full MVC architecture (models,

    templates) • routing • validate? • get data to/from DB • serialize to/from JSON • validate • sending email, logging, etc
  4. 6.

    Single Page Applications • looks nice • better UX •

    fast • faster to craft • more features, less buggs • keeps you (your hackers) sane
  5. 7.

    Single Page Applications • looks nice • better UX •

    fast • faster to craft • more features, less buggs • keeps you (your hackers) sane In the ideal world:
  6. 8.

    JavaScript Row 1 Row 2 Row 3 Row 4 0

    2 4 6 8 10 12 Column 1 Column 2 Column 3
  7. 10.

    let's hate • inability to create modules (Bower?) and load

    them (RequireJS?) • no sound typesystem (is it a problem?) • no proper IDE • weak 'SDK' • callbacks and raceconds flying all around • idiotic error messages (TypeError: Cannot read property 'length' of undefined) • LOT of stupid decisions (broken ==, undefined, broken this, global variables as a default, evil semicolon) • Gary Bernhardt's WAT • slow
  8. 12.
  9. 13.

    Let's make things right! • CoffeeScript (? on JavaScript) •

    Closure Tools (JavaScript on JavaScript, LOL) • GWT (Java on JavaScript) • Clojure (Lisp on JavaScript)
  10. 14.

    What is this Dart, anyway • Java, C ­ like

    syntax • package manager • SDK • IDE • comes with own VM • blazingly fast
  11. 15.

    What is this Dart, anyway • single threaded, event based

    • functions are first class objects (sadly, classes are not) • lambdas, closures done right • sooo lazy • optional typed • simple inheritance, mixins • optional arguments, operator overloading, comfort with big nums, Ruby­like constructor args, double­dot operator
  12. 17.

    What about DOM • fine DOM manipulation built in •

    Angular for Dart • Polymer • React?