Chromebook(arm)でDartを使うために手動インストールしました。

Flutterを再度始めました。
ここ1週間ぐらいですが、WebってStableになったよな? と思って起動してみたら安定してたりとかで感動して、一気にFlutter熱が上がってきました。
新LogbookをFlutterで作り直してるのですが、なかなかいい感じです。データ同期までできれば、まずは自分が使う分だけでも作って、ドッグフーディングしながら高めていきたいですね。

で。

そんなこんなで、Dartを書いていると、これも普段使いしたいな、と。
というのも、ちょっとしたツールを書く言語、めちゃくちゃ悩んでいたのです。
書き慣れているのはGoとかC#、NodeJSなのですが、Go以外、展開がそこそこ面倒。
人に「それもらえる?」と言われて渡すことがあるのですが、Node製ツールは問題外、C#もSCDでSingleバイナリ化するとでかくて悩んでいました。
Dartも未だクロスコンパイルはできないものの、AOTコンパイルが出来るようになってて、なかなか便利そうな状況に。
そう思って、普段使い言語にしてみよう、と。

ベストはFlutterの開発環境自体をChromebookに入れて、Chromebookで開発なのですが、armでは未だ出来ないとのことだったので、Dartのみインストールしました。

例のごとくリポジトリを追加してどうこう、はx64向けなので、arm向けには自分でバイナリをインストールする必要があります。
SDKはhttps://dart.dev/tools/sdk/archiveからダウンロードできます。今回は僕はhttps://storage.googleapis.com/dart-archive/channels/stable/release/2.12.4/sdk/dartsdk-linux-arm64-release.zipをダウンロードしました。

公式の説明では、グローバルに入れるような感じのことを書いてますが、バージョンアップ時とか沼りそうだったので、自分のホームにunzip dartsdk-liux-arm64-release.zipで展開。
展開後、下記のようにパスを通して、無事dartコマンドが実行できるようになりました。

export PATH="$PATH:$HOME/dart-sdk/bin"
echo 'export PATH="$PATH:$HOME/dart-sdk/bin"' >> ~/.profile

で、使ってみた感想としては、なかなか良いかな、という感じです。
シングルスレッド言語ですが、async awaitネイティブな言語なので、かなり書き味は良いですね。

dart compile exe bin/main.dartで出来上がるバイナリも、そんなに大きくないですし、動作が遅いな、と思うこともない1です。

これで、クライアント・サーバ言語統一というのもちょっと面白そうですし、普段使い言語に加えて、色々やってみようかな? と思ってます。
まだまだ書き始めからやりたいことをいちいちドキュメント引いてる状況なので、これも早くあんちょこ2を作らないとだめです(笑)


  1. むしろC#で作ったバイナリより起動が早い。 ↩︎

  2. ひたすらよく使う関数とかイディオムをまとめたドキュメントを結構作ります。 ↩︎