Dartをはじめよう
Upcoming SlideShare
Loading in...5
×
 

Dartをはじめよう

on

  • 1,315 views

Googleが主体となって開発しているオープンソースのWeb向けプログラミング言語であるDartについて、これから始める人向けに解説しました。NSEG第26回...

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

Statistics

Views

Total Views
1,315
Views on SlideShare
1,313
Embed Views
2

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 2

http://dev.localhost 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Dartをはじめよう Dartをはじめよう Presentation Transcript

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