2013 Dartの基本 https://connpass.com/event/2689/
Dartの基本tomochikahara@zetta1985
View Slide
About me ● Java / JavaScript● Google App Engine / Java, Python● Restful API : JAX-RS● Single Page Application● 関数型言語とかDDDとか勉強中● Community○ DDD名古屋, 名古屋Scala, Functional忍者, etc...原知愛@zetta1985
Agenda● Dartへの誤解● DartのEcosystem● Dartの可能性
Dartへの誤解
Google最強言語 Dart● Dartの言語仕様が古臭い→ 親しみやすさを重視。使ってもらえる事が再重要→ 言語を進化させやすいSource Code VM● altJSなら他の言語の方が優れている→ ただのaltJSではありません。コアライブラリも豊富→ Web用LL + 型システム with JavaScript生成器付き→ Client / Server 双方で使ってこそ● 他のブラウザがDartを組み込むことはない→ dart2jsによるaltJS的な用途でも何も問題はない → そもそもWebアプリには、Webサイトほど 他ブラウザ対応をする必要性はないのでは
DartのEcoSystem
Dart RuntimeDart CodeDart VMSnapshotdart2jsJavaScript
ToolsDart EditorDartiumDartSDKDart VM dart2jsdartanalyzerdartdocPub(Package Manager)
All for Web development● dart2js + Dart VM in server-side→ Anywhere on the Web● Source Code VM + LL + Dartium→ Rapid Development Cycle● LL + dartanalyzer→ Dynamic + Static Type System
Dartの可能性
言語の進化● DartEditor○ issue送信機能○ 変化を受け入れる仕組み■ バージョン間の差分自動修正機能■ automatic-dartanalyzorの無効化
言語の進化● Optional Typing○ 言語仕様と型システムの分離○ 後方互換性は言語仕様のみでOK■ 実行時に型は振る舞いに影響を与えない○ Pluggable Type Systemへ?■ お前が欲しい型システムはお前で書け
対象Platformの拡大● Chrome○ いずれはDart VMを載せる、はず・・・○ GoogleサービスをDartでリプレイスして優れたUXを提供出来れば強力なメッセージに○ Chrome Packaged Apps開発に有利に■ Webブラウザとしてではなく、プラットフォームとして
対象Platformの拡大● 他ブラウザ○ 標準化を"本当は"どこまで目指しているのか?○ altJS的な扱いでも十分なのでは■ 開発時やServer-sideにDart VMを使用■ 専用VMがある時点でaltJSの枠を超えている■ ぶっちゃけ、どうでもいい?
対象Platformの拡大● Android○ Dalvik VMからDart VMへ?○ GoogleのJava離れ■ GUIプログラミングとJavaとの親和性は高くない■ Oracleさんとの仲が・・・○ java2dartの存在
まとめ● みんなが考えるほど、用途は限定されない● JavaScriptは過去にブラウザベンダーがDeveloperに押し付けたもの● 今、Web Developmentをみんなで一から作る意味。● GoogleがDeveloperに与えたチャンス