今回はFlutterの影に埋もれて単体では注目される事は少ないDartにフォーカスを当ててみようと思います。これを期に今まで知らなかったDartという言語の特徴を理解してもらえたら嬉しいです。
そもそもDartという言語自体触れたこと無い人が大半だと思います。というかFlutterくらいでしか触る機会がほぼないです。自分もFlutterを触るまで全く知らなかったですし、聞いたことすらありませんでした。
詳しい文法などは別の記事で解説しているので参考にしてみてください。
目次
Dartとは?
開発元はGoogle
もともとは2011年にGoogleが発表した「Dash」という言語がもとになっています。当時は「JavaScriptには根本的な欠陥がある」という認識があったらしく、そのためJavaScriptの代替言語として開発されていたのが始まりです。
しかし思ったよりも世の中に普及せず、自社ブラウザであるChromeにもDartが採用されることはありませんでした。そのため2015年に途中で方向転換して本来打倒しようとしていたJavaScriptへのトランスパイル(変換)用言語としての道を歩みだします。
そして後の2017年にTypeScriptが登場してそれがGoogleの社内標準言語として採用されてしまったのもあり、Dartの影はますます薄くなり、ついには2018年に公開されているデータで、最も学ぶ価値のないプログラミング言語のランキングで1位に選ばれるなど長い暗黒期を経験しています。
そんな状況の中で同年2018年にDart2とそのフレームワークとしてFlutterが発表されました。近年は特にそのFlutterの人気上昇によりDartの評価も上がり、今や将来性のある言語として人気を獲得しています。
言語としての特徴
Dartの言語としての特徴は以下の通りです。
馴染みやすい言語仕様
Dartの言語仕様としてはclassベースのオブジェクト指向言語とJavaScriptを足しましたみたいな記述なので、JavaとかC言語とかその辺りの言語に触ったことがある人なら特に苦労なく馴染めると思います。
その反面非同期などのモダンで今風な記述も存在するので触ってて新鮮味があって楽しい言語だと思います。触った事がない人でも初めてのプログラミング言語としてぴったりでおすすめできるので是非勉強してみて欲しいです。
オブジェクト指向言語
DartはJavaScriptyaSwiftの様なオブジェクト指向言語なので、大規模でのチーム開発でも高いメンテナンス性を発揮しやすくコードの品質を保つのに優れています。細々したプログラムを1つの塊(オブジェクト)として管理するので、複雑な処理が少なくなり結果的に改修やメンテナンスがしやすくなる、コードの可読性が向上してエラー箇所特定のしやすくなるなどの多くのメリットがあります。
動的型付け、静的型付けの両方に対応
Dartの型は動的、静的どちらにも対応しています。全て任意で選択可能なので柔軟に扱えますね。
静的
int | 整数型 |
double | 浮動小数点型 |
String | 文字列型 |
bool | ブーリアン型 |
Lists | リスト型 |
Maps | マップ型 |
Runes | ルーン文字 |
Symbols | シンボル型 |
動的
var | 型推論で動的に型を決定します。 |
dynamic | あらゆる組み込み型を格納できます。型が1つに決まっていない時に便利。 |
Flutterの標準言語
FlutterとはiOS、Android両方のOSのアプリを同じコードで開発できるクロスプラットフォームという開発手法で使われるモバイルアプリのフレームワークです。
強みを軽く説明すると、ホットリロードによる高速開発、表現力豊かで柔軟なUI、クロスプラットフォームにも関わらずネイティブアプリと遜色ない高パフォーマンスなどが挙げられます。コードを共通化することでコードの保守管理がしやすいだけでなく、本来別々の実装が必要だったOS独自の処理を省く事ができるので開発スピードにも優れていて近年どんどん注目を集めています。
GitHubのスター数でも同じクロスプラットフォームのReact Nativeを抜いて今最も熱いフレームワークと言えると思います。
最近はFlutter Webも開発が進められてきているのでwebアプリも1つのコードで開発出来てしまうのも強みです。
Flutterでの開発にはDartを使うことになるので、インストールすることでDartも自動的にインストールされます。よくDartはFlutter専用言語と勘違いしている人が多い様な気がしますが、あくまでFlutterはプログラミング言語Dartをつかってアプリ開発をするというだけでそれ専用にしか使えないとか、そういう訳ではないです。
インストール方法(Mac)
MacであればHomebrewで簡単にインストールできます。
$ brew tap dart-lang/dart
$ brew install dart
インストールが終わったら念の為しっかりインストールされているか確認しましょう。
$ dart --version
Dart SDK version: 2.13.3 (stable) (Wed Jun 9 12:44:44 2021 +0200) on "macos_x64"
まとめ
ここまでDartがどんな言語なのかをざっと解説してみました。こうして改めて調べてみると言語の歴史にも色々あって面白かったです。これからも将来性が期待されている言語なので是非習得しておきたいですね。
このDartを使ったフレームワークであるFlutterに関する初心者向け記事も書いているのでよければ見てみてください!
おわり