ブロックチェーン・AI・システム開発の株式会社INDETAIL

プログラミング言語Dartの紹介

2014.05.08
zukkun

2005年のGoogleによるGoogleマップのサービス開始以来、Webブラウザにおける動的な操作や非同期通信が注目され、JavaScriptへの期待が高まりました。それ以降、多くの分野でソフトウェアのWebアプリケーション化が加速し、JavaScriptに対する需要も高まりました。

現在では、Webアプリケーションの大規模化が進み、標準でクラスやモジュールに関する機能を持たないJavaScriptでは限界が見え始めました。そういった経緯から、クラスやモジュールに関する機能などを加えた、JavaScriptの代替となるプログラミング言語が多く登場しました。

そのような「JavaScriptの代替となるプログラミング言語」は、まとめて「AltJS」と呼ばれています。その中でもよく知られているものとしては

  • CoffeeScript
  • TypeScript
  • Dart

があります。今回はこの中でDartについて紹介します。

Dartについて

Dartに関する情報や開発ツールは https://www.dartlang.org/ で公開されています。内容は英語になりますが、言語仕様やチュートリアル、APIリファレンスなどを確認することが出来ます。

AltJSの目的

AltJSなプログラミング言語は主にJavaScriptのソースコードへ変換することを目的としています。

CoffeeScriptやTypeScriptは、言語仕様自体がJavaScriptをベースとしています。これらは、JavaScriptを糖衣構文(Syntax Sugar)化したものを組み合わせたようなプログラミング言語になっており、ある構文がJavaScriptの構文と1対1対応するような変換が行われます。

今回紹介するDartについてもJavaScriptへの変換が可能ですが、言語仕様が他のAltJSのプログラミング言語とは異なる独特なものとなっているため、変換されたJavaScriptのソースコードは、元のソースコードが想像しにくい内容になります。

Dartの目的

DartのソースコードがJavaScriptへ変換可能ではありますが、現在、Dartの開発ツールの中に、Dartiumという、Dartのソースコードを直接動かすことが出来るDartVMが搭載されたChromiumが公開されており、近い将来、ChromeにDartVMが搭載される可能性があります。

また、JavaScriptの言語仕様をECMAScriptとして標準化しているECMAが、昨年末の2013年12月にDartの標準化を始めました。Chrome以外の主流なWebブラウザにもDartVMが搭載される可能性も見えてきました。

Dartの言語仕様の特徴

Dartの言語仕様の特徴として様々なものがありますが、今回は以下のものを紹介します。

  • クラス
  • オプショナルな型
  • モジュール管理

クラス

Dartではクラスを書くことができます。言語仕様としてClassとメソッドの関数が紐付いているので、CoffeeScriptやTypeScriptのように、メソッドの関数をコールバック等で使用するときにインスタンスのbindをする必要がありません。

また、継承や暗黙的インターフェースとその実装、Mixinなどもできます。

オプショナルな型

変数の型について、JavaScriptのような動的型付けと、C++やJavaのような静的型付けを、変数ごとに任意に選択することができます。動的型付けはJavaScriptと同じvarの宣言を用い、静的型付けは型名を用います。

こちらは「Check Mode」と呼ばれるモードで実行したときに型チェックが行われ、静的片付けした変数において型安全性を保つことができます。

プロトタイプ開発のようにスピードが必要なときには動的型付けを用い、品質が必要となるプロダクト開発では静的片付けで型安全性を保つ、という使い分けが、同じ言語で実現可能になります。

モジュール管理

Dartではモジュールをライブラリという単位で管理することができます。また、ソースコードのファイルとライブラリの関係を記述ための構文も用意されています。

  • hoge.dart

  • foo.dart

  • baa.dart

ライブラリを使用する側は、以下の一文で使用可能になります。

最後に

今回ご紹介しましたように、DartはClassやモジュールに関する機能によって、プログラムをより構造的に記述可能になります。そのことから、Dartが登場した時には「構造化Webプログラミング言語(Structured Web Programming Language)」と銘打たれていました。

言語仕様だけ取り上げても便利な機能がありますが、標準ライブラリも含めますと、さらに便利な機能があります。

今回は、そういった他の便利な機能や、実際のコーディングの方法などについて紹介できていない部分がありますが、今回はDartの概要と特徴について紹介させていただきました。

この記事を読んで興味を持たれましたら、実際にDartに触ってみてはいかがでしょうか。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。