そーす

I'm a programmer in Fukuoka. Please contact me saubre.app[at]gmail.com or Twitter DM.

「A Tour of the Dart Language」をやりました

www.dartlang.org

Flutterのβ版発表やDart2の発表で話題のDart

勉強したことがなかったのですが、公式のドキュメンが結構しっかりしており、その中の「A Tour of the Dart Language」という基礎を学ぶチュートリアルがあったのでやってみました。

www.dartlang.org

また、「DartPad」というオンラインでDartのコードが書けるサービスもあるのでチュートリアル見ながらDartPadで動かして確認という形で進めました。

ちなみにこの以下はDartの説明では無くただの感想です。

Dartのクラス定義なんかは

class MySample {
  String name;
  
  MySample(String name){
    this.name = name;
  }
}

void main() {
  MySample sample = new MySample('Ryohlan');
  print(sample.name);
}

このように書くことができます。

このコードはDartでもJavaでも動くコードですね。

ただ、Dartだと以下の方が推奨されています。

class MySample {
  String name;
  
  MySample(this.name);
}

この推奨される書き方はDartが公式で「Effective Dart」という形である程度のガイドラインを敷いています。これはチーム内での記述を揃えたりコードレビューするときなどに非常に有用です。

www.dartlang.org

さらに、ガイドラインに即したコードフォーマッターも用意してあります。

www.dartlang.org

このあたりがしっかりしていると決め事が少なくなるし「公式がとりあえず提供しているから」という文句である程度収まりがつきます。

構文はJavaに似ている所があり、Javaをやったことがあるプログラマならすんなりと書くことができそうな印象でした。

とはいえ、関数がファーストクラスオブジェクトであったり型推論があったりNull安全な機能があったりAsyncAwait、Generator…とだいぶ提供している機能が違います。

ただ言えるのはいわゆるモダンな機能を実装している言語である、ということでしょうか。

Dartを触ろうと思ったきっかけは、Flutterのβ版が出たこととDart2が出たからです。

Flutterは1年くらい前のα版のときから知ってはいたのですが、正直TypeScriptがGoogleの社内標準言語として発表されたり、

www.publickey1.jp

KotlinがAndroidの開発言語として発表されたりと

www.publickey1.jp

していたのであまり期待はしていませんでした。(ごめんなさい

そんな中Flutterのβ版とDart2の発表だったのでGoogleDart, Flutterに本気なのかなと思い直し、実際Dartを触ってみると個人的には非常に書きやすく読みやすそうだなと思いました(プロダクションで使ってみないとわかんないですが…)。

一応Dart自体はマルチプラットフォーム対応で「Dart for Web」や「Dart VM」などありますが、

まずはFlutterでアプリを作ってみてもう少しちゃんした手応えを感じたいと思います。