Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Dart Side of the Moon
lvivski
June 02, 2013
Science
1
230
Dart Side of the Moon
lvivski
June 02, 2013
Tweet
Share
More Decks by lvivski
See All by lvivski
lvivski
0
260
lvivski
0
280
Other Decks in Science
See All in Science
lcolladotor
0
310
shuntaros
0
440
shuntaros
0
310
kamakiri1225
0
160
koro485
3
4.2k
shuntaros
0
740
shuntaros
0
730
shuntaros
0
410
ryoozawa
PRO
0
470
ryoozawa
PRO
0
1.6k
shel
0
310
shuntaros
0
700
Featured
See All Featured
maggiecrowley
10
540
tanoku
86
8.6k
cromwellryan
104
6.3k
jacobian
257
20k
addyosmani
312
21k
denniskardys
220
120k
hatefulcrawdad
257
17k
garrettdimon
289
110k
chriscoyier
146
20k
trishagee
24
3k
tenderlove
53
3.5k
chriscoyier
498
130k
Transcript
Yehor Lvivski @lvivski
The Dart side of the Moon
None
class-based single inheritance object-oriented
History
Oct 11, 2011 Apr 16, 2013 Summer 2013
M1, July 2012 • No explicit interfaces • No `+` on Strings
• Cascades `o..method()`
M2, December 2012 • Better Dart2js • PUB • Better libraries API
M3, February 2013 • Streams API • Lazy Iterators
M4, April 2013 Stability!
Who’s behind?
None
None
Why?
Performance
main(){}! Tree shaking Classes and Interfaces Optional types Concurrency Operator
overloading Optional and Named arguments Lightweight syntax
It’s not a syntax sugar
Standalone VM Browser integrated VM dart2js Compiler
None
How it works
None
None
None
Is it even possible?
Generated code is faster, than handwritten. Prototype-less code is faster,
than Prototype chains. Inlined functions, are faster too ;)
None
Laziness
None
Laziness • map()! • where() (filter analogue) • expand()!
Streams Reactive Programming
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
Streams are Everywhere • Iterators (List, Queue, Set) • IO (File, HTTP)
• Events
Infrastructure
Editors
None
None
Package manager
None
Components
Dart Web UI Package
None
Demo time!
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