サービス開発パートナー事業部*1 Android エンジニアの松下です。今年に入ってから利き手の逆でご飯を食べるようにしています。
自分は右利きなので左手で食べています。これで右脳が鍛えられるとか…?まだあまり実感はないですが。
皆さんは雑なスクリプトを書くときは何を使いますか? Ruby や Python などでも良いですが、外部ライブラリを使う際はちょっと面倒だったりします。
そこで Deno !試してみませんか!一回だけ!一回だけだからさ…。
Deno は TypeScript のランタイム環境です。なんかすごい早いらしいです。
自分は TypeScript 結構スキなのですが、 Node でやる場合はトランスパイルのために色々追加でインストールしないといけないので結構面倒です。
Deno は TypeScript のままで動いてくれるのでとても楽!
以下からインストールして
以下のコマンドを入れてみましょう!なんと Deno はホスティングされているスクリプトをそのまま実行する機能もありました。
$ deno run https://deno.land/std@0.181.0/examples/welcome.ts Welcome to Deno!
次に以下を実行してみましょう
import { walk } from "https://deno.land/std@0.181.0/fs/walk.ts"; for await (const entry of walk(".")) { console.log(entry.path); }
$ deno run main.ts ┌ ⚠️ Deno requests read access to ".". ├ Requested by `Deno.stat()` API ├ Run again with --allow-read to bypass this prompt. └ Allow? [y/n/A] (y = yes, allow; n = no, deny; A = allow all read permissions) > y . main.ts test.text
なんと何もしなくてもライブラリがいい感じにインストールされてコードが実行されます。事前に gem とか pip とかしなくても良いのは楽ですね。
そうそう、 Deno は 権限が必要な処理が実行されそうな場合は実行前にこうやって確認が出ます。これで不穏なライブラリが勝手に色々することを察知することができます。
CLI で予め許可することも可能です。
$ deno run --allow-read main.ts . main.ts test.text
そして実行ファイルにまとめて他者に配布することも可能です。
$ deno compile --allow-read --output main main.ts Compile file:///Users/kota.matsushita/Documents/blog_20230329/main.ts Emit main $ ./main . main.ts test.text main
便利!
所感
TypeScript は雑に書くこともかっちり書くことも可能で、なんとなく書いてもなんとなく型がついてくれてとても書きやすい言語だと思います。
雑なスクリプトも typo や外部ライブラリのドキュメントの読み込みなどで時間が取られてしまうところを、型である程度は解決できるので、雑なスクリプトは Deno で書いてみるのも良いのではないでしょうか?