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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
lvivski
June 02, 2013
Science
1
600
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
630
Real Life Dart
lvivski
0
700
Other Decks in Science
See All in Science
なぜ21は素因数分解されないのか? - Shorのアルゴリズムの現在と壁
daimurat
0
290
Distributional Regression
tackyas
0
340
Lean4による汎化誤差評価の形式化
milano0017
1
430
安心・効率的な医療現場の実現へ ~オンプレAI & ノーコードワークフローで進める業務改革~
siyoo
0
460
データマイニング - グラフ埋め込み入門
trycycle
PRO
1
160
Hakonwa-Quaternion
hiranabe
1
170
MCMCのR-hatは分散分析である
moricup
0
590
次代のデータサイエンティストへ~スキルチェックリスト、タスクリスト更新~
datascientistsociety
PRO
2
28k
コンピュータビジョンによるロボットの視覚と判断:宇宙空間での適応と課題
hf149
1
530
Amusing Abliteration
ianozsvald
0
100
データマイニング - ウェブとグラフ
trycycle
PRO
0
240
俺たちは本当に分かり合えるのか? ~ PdMとスクラムチームの “ずれ” を科学する
bonotake
2
1.7k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
57
GraphQLとの向き合い方2022年版
quramy
50
14k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
68
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
A better future with KSS
kneath
240
18k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
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