Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Dart Side of the Moon
Search
lvivski
June 02, 2013
Science
1
460
Dart Side of the Moon
lvivski
June 02, 2013
Tweet
Share
More Decks by lvivski
See All by lvivski
Behind the Scenes: Dart
lvivski
0
500
Real Life Dart
lvivski
0
560
Other Decks in Science
See All in Science
(neuro)science with AI: Machine learning as scientific modeling
gaelvaroquaux
0
680
【論文紹介】DocTr_ Document Transformer for Structured Information Extraction in Documents / iccv2023-doctr
yuya4
3
530
DEIM2024 チュートリアル ~AWSで生成AIのRAGを使ったチャットボットを作ってみよう~
yamahiro
1
430
Machine Learning for Materials (Lecture 3)
aronwalsh
0
810
How we developed a data exchange format: Lessons learned from Camtrap DP
peterdesmet
1
130
HIBINO Aiko
genomethica
0
320
Hardness Self-Amplification: Simplified, Optimized, and Unified
nobushimi
0
160
救急外来でのめまい診療_中枢性めまいを見逃さない!
psasa
0
110
Pokemon Roughs
shoryuuken
0
350
Unlocking Healthcare data: the power of Open Formats in Python Data Science
whitone
0
140
iRIC v4 solver poster
nkmr_rl
0
1.4k
AI Alignment: A Comprehensive Survey
s_ota
0
170
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
19
1.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Faster Mobile Websites
deanohume
296
30k
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Why Our Code Smells
bkeepers
PRO
330
56k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
950
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
58
14k
Teambox: Starting and Learning
jrom
126
8.4k
YesSQL, Process and Tooling at Scale
rocio
160
13k
Designing for humans not robots
tammielis
247
25k
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