Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Dart in なごやまつり
Tomochika Hara
August 25, 2013
Technology
0
45
Dart in なごやまつり
2013/08/25 なごやまつり
https://connpass.com/event/2414/
Tomochika Hara
August 25, 2013
Tweet
Share
More Decks by Tomochika Hara
See All by Tomochika Hara
Swiftでつくるファミコンエミュレータのススメ
thara
3
1.5k
モバイルゲーム開発と Google App Engine
thara
0
170
GCPとAWSの比較
thara
0
100
Dart VM と Optional Typing
thara
0
210
Dartの基本
thara
0
36
Dart言語仕様 Pick-up
thara
0
270
Future & Stream in Dart
thara
0
220
Other Decks in Technology
See All in Technology
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
570
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
130
SPA・SSGでSSRのようなOGP対応!
simo123
2
160
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
150
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
1.1k
NGINXENG JP#2 - 2-NGINXの動作の詳細
hiropo20
1
140
組織に対してSREを適用するとどうなるか
kuniim
9
2.9k
NGINXENG JP#2 - 4-NGINX-エンジニアリング勉強会
hiropo20
0
120
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
230125 モニターマウントLT ITガジェット翁(Ryu.Cyber)さん
comucal
PRO
0
4.7k
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7.4k
ユーザーテストガイドライン VERSION 2.0
kouzoukaikaku
0
1.4k
Featured
See All Featured
Scaling GitHub
holman
453
140k
Raft: Consensus for Rubyists
vanstee
130
5.7k
Web development in the modern age
philhawksworth
197
9.6k
Atom: Resistance is Futile
akmur
256
24k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
GitHub's CSS Performance
jonrohan
1020
430k
Ruby is Unlike a Banana
tanoku
93
9.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
31
20k
Rails Girls Zürich Keynote
gr2m
87
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
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