Slide 1

Slide 1 text

Dartの基本 tomochikahara @zetta1985

Slide 2

Slide 2 text

About me       ● Java / JavaScript ● Google App Engine / Java, Python ● Restful API : JAX-RS ● Single Page Application ● 関数型言語とかDDDとか勉強中 ● Community ○ DDD名古屋, 名古屋Scala, Functional忍者, etc... 原知愛@zetta1985

Slide 3

Slide 3 text

Agenda ● Dartへの誤解 ● DartのEcosystem ● Dartの可能性

Slide 4

Slide 4 text

Dartへの誤解

Slide 5

Slide 5 text

Google最強言語 Dart ● Dartの言語仕様が古臭い → 親しみやすさを重視。使ってもらえる事が再重要 → 言語を進化させやすいSource Code VM ● altJSなら他の言語の方が優れている → ただのaltJSではありません。コアライブラリも豊富 → Web用LL + 型システム with JavaScript生成器付き → Client / Server 双方で使ってこそ ● 他のブラウザがDartを組み込むことはない → dart2jsによるaltJS的な用途でも何も問題はない   → そもそもWebアプリには、Webサイトほど    他ブラウザ対応をする必要性はないのでは

Slide 6

Slide 6 text

DartのEcoSystem

Slide 7

Slide 7 text

Dart Runtime Dart Code Dart VM Snapshot dart2js JavaScript

Slide 8

Slide 8 text

Tools Dart Editor Dartium DartSDK Dart VM dart2js dartanalyzer dartdoc Pub (Package Manager)

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Dartの可能性

Slide 11

Slide 11 text

言語の進化 ● DartEditor ○ issue送信機能 ○ 変化を受け入れる仕組み ■ バージョン間の差分自動修正機能 ■ automatic-dartanalyzorの無効化

Slide 12

Slide 12 text

言語の進化 ● Optional Typing ○ 言語仕様と型システムの分離 ○ 後方互換性は言語仕様のみでOK ■ 実行時に型は振る舞いに影響を与えない ○ Pluggable Type Systemへ? ■ お前が欲しい型システムはお前で書け

Slide 13

Slide 13 text

対象Platformの拡大 ● Chrome ○ いずれはDart VMを載せる、はず・・・ ○ GoogleサービスをDartでリプレイスして優れたUXを提 供出来れば強力なメッセージに ○ Chrome Packaged Apps開発に有利に ■ Webブラウザとしてではなく、 プラットフォームとして

Slide 14

Slide 14 text

対象Platformの拡大 ● 他ブラウザ ○ 標準化を"本当は"どこまで目指しているのか? ○ altJS的な扱いでも十分なのでは ■ 開発時やServer-sideにDart VMを使用 ■ 専用VMがある時点でaltJSの枠を超えている ■ ぶっちゃけ、どうでもいい?

Slide 15

Slide 15 text

対象Platformの拡大 ● Android ○ Dalvik VMからDart VMへ? ○ GoogleのJava離れ ■ GUIプログラミングとJavaとの親和性は高くない ■ Oracleさんとの仲が・・・ ○ java2dartの存在

Slide 16

Slide 16 text

まとめ ● みんなが考えるほど、用途は限定されない ● JavaScriptは過去にブラウザベンダーが Developerに押し付けたもの ● 今、Web Developmentをみんなで一から作る 意味。 ● GoogleがDeveloperに与えたチャンス