BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Dart 2.6がLinux、Windows、MacOSをネイティブサポート

Dart 2.6がLinux、Windows、MacOSをネイティブサポート

原文(投稿日:2019/11/15)へのリンク

Googleのプログラミング言語Dartの最新バージョンの2.6では、dart2nativeの追加によってネイティブサポートとアヘッド・オブ・タイム(AOT)コンパイルが拡張されて、LinuxやWindows、MacOS用のコマンドラインプログラムの開発が可能になった。

重要なのは、dart2nativeが自己完結型のバイナリを生成することである。つまり、実行時にはDart SDKランタイムを必要としない。dart2nativeのもうひとつの重要な特徴は、Dartが対象とする他のプラットフォーム上で利用可能な、Dartコアライブラリ全体のサポートだ。さらにdart2nativeは、ネイティブプラットで使用可能なC言語互換システム関数へのインターフェースとしてDart 2.5で導入された、C言語相互運用層のdart:ffiとも互換性を持っている。

AOTコンパイルはこれまでもFlutter経由でサポートされていたが、その対象はiOSとAndroidに限られていた。dart2nativeによって、モバイルからWebまで、デスクトップから組み込みデバイスまで、幅広いプラットフォームをターゲットにできるようになる。

DartとFlutterのプログラムマネージャであるMichael Thomsen氏によると、dart2nativeの理想的なシナリオはサーバレスコンピューティングである。サーバレスコンピューティングでは、リモート関数の実行開始時のレイテンシの最小化が大きな鍵になるからだ。

サービスのコードを事前(アヘッド・オブ・タイム)にネイティブコードにコンパイルすることによって、このレイテンシを回避し、即座に起動することが可能になります。

ネイティブへの移行によって起動時間はミリ秒の単位になり、ジャスト・イン・タイム(JIT)コンパイルに対して大きく改善される。dart2nativeを使用するもうひとつのメリットは、プログラムフットプリントの削減である。

Dart開発者のPaul Mundt氏は先頃、dart2nativeを使用した自身の経験をドキュメントにしました。それによると、氏のDockerイメージのサイズは、JITコンパイルコードを使用した場合の220MBから、ネイティブコードを使うことで20MBまでダウンしたということです!

dart2native以外にも、Dart 2.6には新たな言語機能が含まれている。そのひとつであるExtension Methodは、クラスが最初に生成されたコンテキストとは異なるスコープで、新たにメソッドを追加してクラスを拡張可能にするものだ。

dart2nativeを含むDart 2.6は、https://dart.dev/get-dartから入手可能である。ただし、Flutterによるアップデートでは、dart2nativeのフルサポートはインストールされない。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT