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

Tomáš Kulich - Dart (WebElement #27)

Tomáš Kulich - Dart (WebElement #27)

WebElement

March 06, 2014
Tweet

More Decks by WebElement

Other Decks in Programming

Transcript

  1. Single Page Applications Server Client • everything else • get

    data to/from DB • serialize to/from JSON • validate • sending email, logging, etc
  2. 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
  3. Single Page Applications • looks nice • better UX •

    fast • faster to craft • more features, less buggs • keeps you (your hackers) sane
  4. Single Page Applications • looks nice • better UX •

    fast • faster to craft • more features, less buggs • keeps you (your hackers) sane In the ideal world:
  5. JavaScript Row 1 Row 2 Row 3 Row 4 0

    2 4 6 8 10 12 Column 1 Column 2 Column 3
  6. 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
  7. Let's make things right! • CoffeeScript (? on JavaScript) •

    Closure Tools (JavaScript on JavaScript, LOL) • GWT (Java on JavaScript) • Clojure (Lisp on JavaScript)
  8. What is this Dart, anyway • Java, C ­ like

    syntax • package manager • SDK • IDE • comes with own VM • blazingly fast
  9. 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
  10. What about DOM • fine DOM manipulation built in •

    Angular for Dart • Polymer • React?