JavaScriptの置き換えからモバイルアプリ開発まで幅広く使える、Google製のWebプログラミング言語「Dart」。モバイルフレームワーク・Flutterを用いた開発が注目されたことにより、近年人気が高まっている言語の一つだ。
そこで今回は「Dartの基本が知りたい」「Flutter開発に挑戦しようと思っている」エンジニアに向けて、書籍「プログラミング言語大全」(著:クジラ飛行机/技術評論社)より、「Dart」の章を一部抜粋して紹介する。
Dartの基本情報
容易度 ★★★★☆
将来性 ★★★★☆
普及度 ★★☆☆☆
保守性 ★★★★☆
開発者:Google
分類:静的型付け、オブジェクト指向、トランスパイル
影響を受けた言語:JavaScript、Java 、Erlang、C#、Haxe、CoffeeScript
Webサイト:https://dart.dev/
【言語の特徴】JavaScript対抗としては普及せず
Flutterのモバイルアプリ開発で一躍人気
Dartはユーザーインターフェース構築が得意なプログラミング言語です。JavaScriptへのトランスパイルに加え、クロスプラットフォームでモバイルアプリ開発できるフレームワークFlutterで有名です。当初はJavaScriptの置き換えを狙っていましたが、現在はパフォーマンスと生産性を両立したクライアント(アプリやWebなど)向け言語に進化しています。
静的型付け、クラスベースのオブジェクト指向言語で、JavaやC#を彷彿とさせる文法です。サーバー向けのDartも提供されており、クライアントとサーバーを分けることなく、同一の言語で開発できることも特徴です。
Dart言語の歴史
Dartは2011年にGoogleから公開されたプログラミング言語です。JavaScriptの置き換えとして、問題点を解決し、大規模プロジェクトでも使えることを目標に設計されました。(※GoogleはDartで開発したプログラムを動かす仮想マシンを、Chromeブラウザに統合すると発表しましたが、普及が進まず2015年に統合を断念しました)
DartはJavaScriptの代替としては大きな成功を修めませんでしたが、スマートフォン向けフレームワーク、Flutterの登場と人気で情勢が変わります。Webフロントエンドも、スマートフォンアプリも作れる言語として人気を集め、GitHubの2019年の調査によると前年比500%もの利用数を獲得しています。
Dartが活躍するシーン
クロスプラットフォームのアプリケーションフレームワーク、FlutterによってAndroid/iOS双方で高速に動くアプリが開発できます。また、もともとJavaScriptの置き換えを狙っていたためJavaScriptにトランスパイルしてWebフロントエンド開発にも使えます。
Webアプリケーション開発も可能で、gRPC(APIサーバー)用のライブラリも公開されています。まだ普及の途上ですが、クライアント・サーバー双方に展開できます。
Dart実行環境(コンパイル・仮想マシン・トランスパイル)
Dartはコンパイル言語であり、仮想マシンで即時実行できるインタプリタ言語であり、JavaScriptにトランスパイルできる言語でもあります。どういうことかというと開発時は使いやすいdartインタプリタ(仮想マシン)、実際にデプロイ(利用)するときは高速なdart2nativeによるコンパイル、JavaScript用途ならトランスパイルという使い分けができる言語ということです。
さらにJavaScriptも開発用のdartdevcとデプロイ用のdart2jsの2つの手法があります。開発スタイルに合わせて複数の実行環境を利用できるのは便利です。
Dart2.0の方向性
DartはJavaScriptの置き換えを狙っていましたが、2018年にリリースされた2.0以降ではクライアント(モバイルアプリとWeb向け開発)重視の姿勢に変わり、JavaScriptの置き換えという目標から転換しています。
Flutter
Flutterはオープンソース、クロスプラットフォームのアプリ開発フレームワークです。Android/iOSのスマートフォン向けアプリを開発できます。
Googleが開発し、言語にDartを利用します。複数のプラットフォームで高速なアプリケーションを開発できるということでDartの人気を押し上げました。
コードDartのFizzBzz
DartでFizzBuzz問題を解くプログラムです。構文としてはJavaに似ているようにも見受けられます。型推論も備えています。
Column
Dartは当初JavaScriptの代替言語として注目を集めましたが、同じ目的で開発されたCoffeeScriptやTypeScriptといった言語との競合などもあり、それほど普及しませんでした。2015年にChromeとの統合断念、2017年にはGoogleは社内でTypeScriptを社内の標準プログラミング言語として採用したため、Dartの存在意義は薄れたように思われました。しかし、現在ではFlutterなどモバイルアプリ開発で存在感を増しており、Dartの開発は活発に進んでいます。
詳しくは書籍「プログラミング言語大全」をチェック!
プログラミング言語の大全集! 100以上のプログラミング言語や処理系,関連言語を幅広く解説。C,Java,Python,PHP,Ruby,JavaScript…主要言語はもちろんマイナー言語まで収録。初心者にも経験者にも楽しい一冊です。
>>書籍はこちら