Dartをはじめよう

1,356 views

Published on

Googleが主体となって開発しているオープンソースのWeb向けプログラミング言語であるDartについて、これから始める人向けに解説しました。NSEG第26回勉強会(2012年4月28日)の発表資料。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,356
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dartをはじめよう

  1. 1. Dartをはじめようながぬまたつみ
  2. 2. DartA new platform for structured webappsオープンソースで開発中の新言語Googleが主体
  3. 3. DartA new platform forstructured web apps構造化ウェブ アプリケーション?
  4. 4. 現在のWebJavaScriptは素晴らしい● プロトタイプベース オブジェクト指向に よる拡張性● 関数言語としての特性● 豊富なライブラリ
  5. 5. 現在のWeb....だけどJavaScriptのこんなところが微妙● 型がない ○ 関数の引数、戻り値が分かりづらい● プロトタイプベースは特殊 ○ 動的すぎて把握しきれない● スコープがわかりづらい&弱い ○ 他の言語と違う部分が多い ○ ライブラリの仕組みがない
  6. 6. Web開発に構造化をJavaScriptは大きめの開発に向かない● 並行開発が難しい ○ インターフェイスを定義しづらい● ライブラリ選びが難しい ○ 混ぜて使っても大丈夫か→ 解決したい!
  7. 7. 型● 組み込み型 ○ int、double、String、List、Map... ○ var● ジェネリクス ○ List < int > ○ Map < int , String >
  8. 8. チェック モード● 型はオプショナル ○ チェック モード : 型チェックあり ○ プロダクション モード : 型チェックなしint foo = "Hello";Failed type check: type String is not assignableto type int http://try.dartlang.org/s/kRU9
  9. 9. クラスベース● クラスベース オブジェクト指向言語 ○ JavaScript より Java に近いinterface Animal {}class Dog implements Animal {} http://try.dartlang.org/s/eF08
  10. 10. ライブラリ機構● #library (ライブラリ名)● #import (ライブラリ名 prefix: 接頭子)● ライブラリ プライベート ○ _で始まる変数や関数、クラスなど#import (dart:io, prefix:io)new io.File(memo.txt);
  11. 11. 標準ライブラリ● dart:core● dart:isolate● dom● html● io● json● uri● utf
  12. 12. もっと便利に 〜関数int compare(a,b){return a - b;}col.sort(compare);col.sort((a,b) { return a - b; });col.sort((a,b) => a - b); http://try.dartlang.org/s/wtQ9
  13. 13. もっと便利に 〜クロージャcounter(c) { return () => c++; }var c1 = counter(1);var c2 = counter(3);for (int i = 0; i < 3; i++) { print(c1()); print(c2());} http://try.dartlang.org/s/E208
  14. 14. もっと便利に 〜文字列補完● ${式} で文字列を補完String title = Test;String s = <h1>$title</h1><p>123 + 456 = ${123+456}</p><p>random = ${Math.random()}</p>; http://try.dartlang.org/s/0cQ9
  15. 15. もっと便利に 〜リスト&マップvar list = [ 1, 2, 3 ];var map = { hello: world, twice: (e) => e * 2};print("${list[0]}");print("${map[hello]}");print("${map[twice](3)}"); http://try.dartlang.org/s/fq88
  16. 16. もっと便利に 〜演算子オーバーロードclass Point { Point(this.x, this.y); final x, y; operator + (Point p) => new Point(x + p.x, y + p.y);}var p = new Point(1, 2) + new Point(3, 4); http://try.dartlang.org/s/w9Q9
  17. 17. +1こんなにすばらしい Dart ですが
  18. 18. まだ開発中...文法は確定していません。開発環境は完成していません。実行環境は完成していません。(2012/4/28 現在)
  19. 19. まだ開発中...文法は確定していません。v0.8開発環境は完成していません。実行環境は完成していません。(2012/4/28 現在)でも、今すぐ試せます。
  20. 20. Dartboardhttp://try.dartlang.org/
  21. 21. DartiumChromium with the Dart VM
  22. 22. frogc● Dart to JavaScript コンパイラ● Dartium以外のブラウザで実行● Dartで実装されている$ frogc test.dart$ lstest.dart test.dart.js
  23. 23. Dart Editor
  24. 24. Dart Editor - 新規アプリ
  25. 25. Dart Editor - 補完
  26. 26. Dart Editor - デバッグ
  27. 27. Dart Editor● Eclipseベース● 新規アプリ ウィザード ○ Webアプリ、サーバ● JavaScriptへの変換&実行● デバッガ ○ Webアプリ+Dartiumのみ
  28. 28. Dart & JavaScript● DartはJavaScriptを置き換えない ○ 共存可能 ○ 適材適所● JavaScriptは偉大 ○ でも選択肢があってもいい● 人気上昇中! ○ Dart is the #72 most popular language on GitHub ○ (JavaScript is the most popular language on GitHub)
  29. 29. Dartのこれから● Dart本体 ○ 言語仕様、高速化● ライブラリ ○ 単体テスト、パッケージ システム● サーバー サイド ○ dart:io、フレームワーク● モバイル ○ Android
  30. 30. やってみようまだ話していないこともたくさんあります。とにかくやってみよう。
  31. 31. ありがとうございました
  32. 32. 資料● http://www.dartlang.org/● 日経Linux 2012年2月号、3月号 Dart記事 ... SSS(G) 小山さん執筆● What is Dart? OReilly $0

×