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 in なごやまつり
Search
Tomochika Hara
August 25, 2013
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dart in なごやまつり
2013/08/25 なごやまつり
https://connpass.com/event/2414/
Tomochika Hara
August 25, 2013
More Decks by Tomochika Hara
See All by Tomochika Hara
Swiftでつくるファミコンエミュレータのススメ
thara
3
2.5k
モバイルゲーム開発と Google App Engine
thara
0
400
GCPとAWSの比較
thara
0
140
Dart VM と Optional Typing
thara
0
420
Dartの基本
thara
0
81
Dart言語仕様 Pick-up
thara
0
640
Future & Stream in Dart
thara
0
500
Other Decks in Technology
See All in Technology
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
290
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
140
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
550
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
120
AIチャット検索改善の3週間
kworkdev
PRO
2
160
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
240
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
170
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
10
1.5k
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
260
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
420
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
180
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
630
Bash Introduction
62gerente
615
220k
Writing Fast Ruby
sferik
630
63k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Music & Morning Musume
bryan
47
7.2k
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
Transcript
Dartの型システム @zetta1985 原 知愛 Dart / Java / JS /
DDD / REST Google信者 #SugoiH_c0hama #nagoya.dart 2013/08/25 なごやまつり
Dart Runtime Dart Code Dart VM Snapshot dart2js JavaScript V8
etc...
Isolates Isolate Receive Port Isolate Receive Port Send Port Send
Port Snap shot Snap shot
Development Tools Dart Editor Dartium (Browser) Dart SDK Dart VM
dart2js dart analyzer dartdoc Pub (Package Manager) Eclipse Plugin IntellJ IDEA Plugin
Language Spec 基本はゆるふわなJava • 言語設計者はGilad Bracha氏 ◦ Java言語仕様 ◦ JavaVM仕様
◦ Pluggable (Optional) Type System提唱 • 他、Jochua J. Bloch氏(Effective Javaの人)も
Language Spec • Optional Parameter • Named Parameter • Method
Cascading • Const Variable • Generics • Named Constructor • Factory Constructor • Library Private • Implicit Interface • Mix-in
動的型付言語(実行環境) + 型検査器(ツール) || Optional Typing
Java-likeなLL(Dart VM) + dartanalyzer || Dart
良い所 Future & Stream API
Future: File IO new File("./foo.txt").fullPath() .then((fullpath) { print("foo.txt's fullpath is
$fullpath"); }) .catchError((e) { print("foo.txt is not exists."); });
Future: HTTP Request new HttpClient().getUrl(url).then((req){ req.headers.add("contentType", "text/html"); return req.close(); }).then((res)
{ res.transform( new StringDecoder()).forEach(print); });
Stream: Standard Input print("Please Input A."); var lines = stdin
.transform(new StringDecoder()) .transform(new LineSplitter()); lines.listen((str){ print("Your input's length : ${str.length}"); print(str == "A" ? "Just A." : "Not A."); });
Stream: DOM Event var stream = query("input#hello").onClick; stream.listen((e) { window.alert("hello,
world."); });
Stream: HTTP Server HttpServer.bind("127.0.0.1", 8080).then((server) { server.listen((req) { req.response.write("This message
from my server."); req.response.close(); }); });
Stream: File Read Stream<List<int> stream = new File('bar.txt').openRead(); StreamSubscription<List<int>> subscription;
subscription = stream.listen((bytes) { for (var b in bytes) { print(new String.fromCharCode(b)); if (b == '#'.codeUnitAt(0)) { subscription.cancel(); return; } } });
DartとGoogle • Dartの一番のUserは、Google自身 • SPDYのような普及方法を目指す? • GoogleはWebエンジニアと共に、 Web開発の未来を作りたい。 • JavaScriptを駆逐するわけではない
Dartのこれから • dartanalyzerをもっと進化させたい (個人的に) • Chromeにさえ乗っかれば・・・ • Google App Engine対応が気になる
• Android対応すればワンチャンあるで
Thanks