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
0
50
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
2k
モバイルゲーム開発と Google App Engine
thara
0
310
GCPとAWSの比較
thara
0
110
Dart VM と Optional Typing
thara
0
330
Dartの基本
thara
0
57
Dart言語仕様 Pick-up
thara
0
470
Future & Stream in Dart
thara
0
390
Other Decks in Technology
See All in Technology
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
860
Can We Measure Developer Productivity?
ewolff
1
150
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
B2B SaaS × AI機能開発 〜テナント分離のパターン解説〜 / B2B SaaS x AI function development - Explanation of tenant separation pattern
oztick139
2
220
Platform Engineering for Software Developers and Architects
syntasso
1
510
複雑なState管理からの脱却
sansantech
PRO
1
140
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
180
Terraform Stacks入門 #HashiTalks
msato
0
350
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
Featured
See All Featured
Code Review Best Practice
trishagee
64
17k
Scaling GitHub
holman
458
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
RailsConf 2023
tenderlove
29
900
A better future with KSS
kneath
238
17k
Automating Front-end Workflow
addyosmani
1366
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
What's in a price? How to price your products and services
michaelherold
243
12k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Navigating Team Friction
lara
183
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
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