昨日の社内勉強会で、「Dartやってみたい」というLTをしました。 DartはGoogleが作ったプログラミング言語で、JavaScriptを置き換えるようなポジションでデビューしたのですが、今は方向転換してフロントエンドの扱い的には、JavaScriptにクロスコンパイルするのをメインとするようになりました。また、Dart VMがあるので、サーバサイドやCLIツールを作るのにも適していると思います。
なんで「Dartやってみたい」という発表かというと、まだちゃんとDart使ったことがないから…。
Dartはオワコンになったのか?
社内勉強会のときにも「オワコンになったんじゃないの?」という反応がありましたが、むしろGoogleでは積極的に使われていることや(Adwords, AdsenseとかはDartらしい)、FlutterというAndroid, iOSの両方の開発ができるフレームワークが登場したこと、SassがRubyとDartで開発されていることなど、まだまだオワコンではないという紹介をしました。
Dartのどこが良さそうか
サンプルコードを少しだけ書いてみたのですが、たしかに馴染みのある機能が多く、かつ、書きやすいです。
- クラスベースで馴染み深い
- 全てがオブジェクトでプリミティブ型とかない
- 型の柔軟性がすごい(var宣言のみで動く。型も使える)
- 単一継承、インターフェース、mixinが使える
- ジェネリクスが使える
- 非同期処理が得意(Future,Completer, async, await)
- スレッドセーフ
- 変数やメソッドにスコープがある(public, private)
- Dart VMが速い(らしい)
型の柔軟性
var宣言でdynamic型を使う
あまり型を考えずに実装しても、動きます。このコードはvar宣言を使ってdynamic型で実装しています。Userクラスには名前を入れるようにしてあるので、文字列がわかることを想定していますが、user2のように数字を渡しても動いてしまいます。とはいえ、とりあえず作るのには楽ですね。
class User { var _forename; get forename => _forename; set forename(value) => _forename = value; var surname; getFullName() { return "$forename $surname"; } } void main() { var user1 = new User(); user1.forename = "Taro"; user1.surname = "Yamada"; print(user1.getFullName()); var user2 = new User(); user2.forename = 1; user2.surname = 2; print(user2.getFullName()); }
dynamic型をString型, User型に変更する
var宣言していた変数を、ちゃんと型宣言するようにしてみました。こうすると、user2で数字を入れている箇所は、Strongモードにするとエラーになります(普通でもwarningは出る)。最初から型でガチガチにしなくても、後々変更していくことができるので、トライアンドエラーしやすい言語だなという印象です。
class User { String _forename; String get forename => _forename; set forename(value) => _forename = value; String surname; String getFullName() { return "$forename $surname"; } } void main() { User user1 = new User(); user1.forename = "Taro"; user1.surname = "Yamada"; print(user1.getFullName()); User user2 = new User(); user2.forename = 1; user2.surname = 2; print(user2.getFullName()); }
まとめ
柔軟なのに型も使えて速い言語という印象に変わったので、個人プロジェクトでDartを使ってみたいなぁ〜と強く感じています。 ちょうど昨日は東京でDart MeetUp Tokyo #2というイベントがあったみたいでした。聞いてみたかった!
- 作者: Chris Buckett,あんどうやすし,粟納裕貴,勝又雅史,川俣千恵子,植田大貴,井関正也,水野あゆみ
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2014/03/28
- メディア: 大型本
- この商品を含むブログ (2件) を見る
Dartの本といえば、日本ではこれくらいしかないのですが、海外では結構出ています。でもこの本もまだまだいいと思います。中古市場がどえらい値崩れしてますので、興味のある人には買ってみるといいかもですね。