SlideShare wird heruntergeladen. ×
0
versus                                Christian Grobmeier                              http://www.grobmeier.de            ...
•       Programmiersprache   •   Heavy Metal Band aus                   von Google               England           •      ...
Band                       Lemmy                Mikkey Dee            Bass + Gesang                    Gitarre            ...
Band                    Dart Editor             Dart SDK                                  DartiumDonnerstag, 26. April 2012
Releases                    Lang Spec v0.08 :-(                      kaum Libraries :-(                                   ...
Highlights                                     + 17 mehr!Donnerstag, 26. April 2012
Highlights                             Dart ist „Mainstream“, hat eine                             main-Methode und kennt ...
Highlights                        Dart kennt Interfaces und KlassenDonnerstag, 26. April 2012
Highlights          class MyReceiver extends Isolate {          }                             Einfachvererbung          in...
Highlights                             Dart kennt optionale Typen               dart --enable_type_checks App.dartDonnerst...
Highlights                              Dynamic             class Frodo {               var hungry;               bool sle...
Highlights                     Dart does not need to drink whisky.                             It has whisky in it‘s veins...
Highlights          class Frodo {            Frodo(num age) : super() {            }          }          var frodo = new F...
Highlights                         class Frodo {                           Frodo.eat(){                           }       ...
Highlights                class Frodo {                  var hungry;                  Frodo.cook(this.hungry);            ...
Highlights        class Frodo {          bool _hungry;          bool get hungry() => _hungry;          void set hungry(boo...
Highlights               Frodo f = new Frodo();               f.hungry = true;                                   Setter we...
class Hobbit {                    Highlights    factory Hobbit() {      return new Hobbit._internal();    }        Hobbit....
Highlights                             Dart ist Library-ScopedDonnerstag, 26. April 2012
Highlights                                            Privacy               class Frodo {           Public                ...
Highlights                                          Privacy             #library(„Frodo“);             class Frodo {...   ...
Highlights                             Dart IsolatesDonnerstag, 26. April 2012
Threads => Isolates                     • Isolates erlauben „multithreading“                     • Isolates kommunizieren ...
Isolates     <body>      <script type="application/dart">       main() {         // Do some DART       }                  ...
Isolates                                  Light                Heavy       •Leben im gleichen Thread                 •Erze...
Isolates    process() {      port.receive((var m, SendPort r) {          print ("Got message: ${m}");          r.send("clo...
Isolates  main() {    port.receive((var m, SendPort r) {      print("Got message: ${m}");  !   port.close();    });  ! Sen...
• Kein Multithreading - einmal Motörhead,                         immer Motörhead                 • Mit Motörhead ist man ...
Road Crew                      •      HTML                      •      Templates                      •      JSON         ...
HTML Library          document.query(#myid);          document.query(.foo);          document.queryAll(.foo);             ...
HTML Library          elem.attributes.contains(name);          elem.attributes[name];          elem.attributes[name] = val...
HTML Library          new Element.tag(div);          TableElement t = new Element.html(          <table><tr><td>Hi</td></t...
HTML Library          elem.on.click.add(              (event) => print(click!));          elem.on.click.remove(listener); ...
Templates                                                App.dart                      Hello.tmpl   Hello.dart            ...
Templates               template Hello(String to) {                 <div>${to}</div>               }               $ templ...
Templates      main() {        Hello h = new Hello("Motörhead");        var panel = document.query("#p");        panel.ele...
And the winner is...                           en                         ed                                  Offenheit   ...
Röck ön!                              Danke!                               Christian Grobmeier                            ...
Nächste SlideShare
Wird geladen in ...5
×

Dart @ JUG Saxony

2,634

Published on

An old talk on #Dartlang which I gave at the Java Usergroup in Dresden. Meanwhile my slide style is improved by the fantastic book "Presentation Zen" (see my other slides here)

Published in: Technologie
0 Kommentare
0 Gefällt mir
Statistiken
Notizen
  • Hinterlassen Sie den ersten Kommentar

  • Be the first to like this

Keine Downloads
Views
Gesamtviews
2,634
Bei Slideshare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
No embeds

No notes for slide

Transcript of "Dart @ JUG Saxony"

  1. 1. versus Christian Grobmeier http://www.grobmeier.de @grobmeierDonnerstag, 26. April 2012
  2. 2. • Programmiersprache • Heavy Metal Band aus von Google England • Kann JS ersetzen • Ersetzt Hawkwind • Läuft in einer VM • Läuft mit Whisky • Für „ernsthafte“ • Zur täglichen Anwendungen Anwendungen • Jung und rockt • Alt und rocktDonnerstag, 26. April 2012
  3. 3. Band Lemmy Mikkey Dee Bass + Gesang Gitarre Wizzo SchlagzeugDonnerstag, 26. April 2012
  4. 4. Band Dart Editor Dart SDK DartiumDonnerstag, 26. April 2012
  5. 5. Releases Lang Spec v0.08 :-( kaum Libraries :-( 21 Studioalben! + unzähliges mehrDonnerstag, 26. April 2012
  6. 6. Highlights + 17 mehr!Donnerstag, 26. April 2012
  7. 7. Highlights Dart ist „Mainstream“, hat eine main-Methode und kennt nur ein null.Donnerstag, 26. April 2012
  8. 8. Highlights Dart kennt Interfaces und KlassenDonnerstag, 26. April 2012
  9. 9. Highlights class MyReceiver extends Isolate { } Einfachvererbung interface Hobbit extends A, B{ } Mehrvererbung class Frodo implements Hobbit, Hungry { }Donnerstag, 26. April 2012
  10. 10. Highlights Dart kennt optionale Typen dart --enable_type_checks App.dartDonnerstag, 26. April 2012
  11. 11. Highlights Dynamic class Frodo { var hungry; bool sleepy; Ring ring; }Donnerstag, 26. April 2012
  12. 12. Highlights Dart does not need to drink whisky. It has whisky in it‘s veins.Donnerstag, 26. April 2012
  13. 13. Highlights class Frodo { Frodo(num age) : super() { } } var frodo = new Frodo(111); KonstruktorDonnerstag, 26. April 2012
  14. 14. Highlights class Frodo { Frodo.eat(){ } } var frodo = new Frodo.eat(); Ein „named Constructor“ verhält sich wie ein überladener Konstruktor in Java.Donnerstag, 26. April 2012
  15. 15. Highlights class Frodo { var hungry; Frodo.cook(this.hungry); } new Frodo.cook(true);Donnerstag, 26. April 2012
  16. 16. Highlights class Frodo { bool _hungry; bool get hungry() => _hungry; void set hungry(bool x) { _hungry = x; } } Get/Set kann nicht überschrieben werden und können nicht überschreiben.Donnerstag, 26. April 2012
  17. 17. Highlights Frodo f = new Frodo(); f.hungry = true; Setter werden wie Standardproperties aufgerufen. GET/SET Methoden vermeiden!Donnerstag, 26. April 2012
  18. 18. class Hobbit { Highlights factory Hobbit() { return new Hobbit._internal(); } Hobbit._internal() { print("Construct");! } } main() { Hobbit hobbit = new Hobbit(); } Das Factory Pattern mit DartDonnerstag, 26. April 2012
  19. 19. Highlights Dart ist Library-ScopedDonnerstag, 26. April 2012
  20. 20. Highlights Privacy class Frodo { Public eat(){ } _sleep() { } } PrivateDonnerstag, 26. April 2012
  21. 21. Highlights Privacy #library(„Frodo“); class Frodo {... Public #library(„Mordor“); #import(„Frodo.dart“); new Frodo()... Private Elemente sind nicht sichtbarDonnerstag, 26. April 2012
  22. 22. Highlights Dart IsolatesDonnerstag, 26. April 2012
  23. 23. Threads => Isolates • Isolates erlauben „multithreading“ • Isolates kommunizieren via Ports • Isolates werden durch „spawn“ing erzeugtDonnerstag, 26. April 2012
  24. 24. Isolates <body> <script type="application/dart"> main() { // Do some DART } Isolate </script> <script type="application/dart"> main() { } </script> </body>Donnerstag, 26. April 2012
  25. 25. Isolates Light Heavy •Leben im gleichen Thread •Erzeugen einen neuen Thread •Nur ein Isolate auf einmal •Mehrere Isolates auf einmal Dart entscheidet über den Geschmack. Isolates können keine States teilen! Isolates sind immer asynchron!Donnerstag, 26. April 2012
  26. 26. Isolates process() { port.receive((var m, SendPort r) { print ("Got message: ${m}"); r.send("close"); port.close(); }); }Donnerstag, 26. April 2012
  27. 27. Isolates main() { port.receive((var m, SendPort r) { print("Got message: ${m}"); ! port.close(); }); ! SendPort s = spawnFunction(process); s.send("start", port.toSendPort()); }Donnerstag, 26. April 2012
  28. 28. • Kein Multithreading - einmal Motörhead, immer Motörhead • Mit Motörhead ist man niemals einsam • Ist der eine Thread einmal beendet, gibt es keine neuen Alben mehrDonnerstag, 26. April 2012
  29. 29. Road Crew • HTML • Templates • JSON • Dartdoc • Frog • etc. • We are the Road Crew • Unbekannte PersonenDonnerstag, 26. April 2012
  30. 30. HTML Library document.query(#myid); document.query(.foo); document.queryAll(.foo); Inspiriert von jQueryDonnerstag, 26. April 2012
  31. 31. HTML Library elem.attributes.contains(name); elem.attributes[name]; elem.attributes[name] = value; elem.attributes.remove(name); Collections!Donnerstag, 26. April 2012
  32. 32. HTML Library new Element.tag(div); TableElement t = new Element.html( <table><tr><td>Hi</td></tr></table> ); Verbesserte Elementerstellung - mit KonstruktorenDonnerstag, 26. April 2012
  33. 33. HTML Library elem.on.click.add( (event) => print(click!)); elem.on.click.remove(listener); Alle Events sind in einem Property erreichbar.Donnerstag, 26. April 2012
  34. 34. Templates App.dart Hello.tmpl Hello.dart App.htmlDonnerstag, 26. April 2012
  35. 35. Templates template Hello(String to) { <div>${to}</div> } $ template HelloDonnerstag, 26. April 2012
  36. 36. Templates main() { Hello h = new Hello("Motörhead"); var panel = document.query("#p"); panel.elements.add(h.root); }Donnerstag, 26. April 2012
  37. 37. And the winner is... en ed Offenheit Stabile API hi sc Template System nt Releases ne Zukunft BrowserübergreifendU Android Support Geschwindigkeit LautstärkeDonnerstag, 26. April 2012
  38. 38. Röck ön! Danke! Christian Grobmeier http://www.grobmeier.de @grobmeierDonnerstag, 26. April 2012
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×