$30 off During Our Annual Pro Sale. View Details »

Dartの基本

 Dartの基本

Tomochika Hara

July 27, 2013
Tweet

More Decks by Tomochika Hara

Other Decks in Technology

Transcript

  1. Dartの基本
    tomochikahara
    @zetta1985

    View Slide

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

    View Slide

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

    View Slide

  4. Dartへの誤解

    View Slide

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

    View Slide

  6. DartのEcoSystem

    View Slide

  7. Dart Runtime
    Dart Code
    Dart VM
    Snapshot
    dart2js
    JavaScript

    View Slide

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

    View Slide

  9. 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

    View Slide

  10. Dartの可能性

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide