Scala で簡単スクリプト Ammonite を試す

Ammonite-REPLを試してみました。コンソール先頭の `@` の形がアンモナイトの殻ってことかな。
2021.08.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

普段はScalaで開発することが多いのですが、ちょっとコードを試したいときにIDEを起動するのは億劫でした。簡単に試せる場所がないかなーと探していたところ Ammonite を見つけましたので紹介します。

Ammoniteとは

Ammonite

Ammonite lets you use the Scala language for scripting purposes: in the REPL, as scripts, as a library to use in existing projects, or as a standalone systems shell.

Ammoniteを使用すると、スクリプトの目的でScala言語を使用できます。REPLでは、スクリプトとして、既存のプロジェクトで使用するライブラリとして、またはスタンドアロンのシステムシェルとして使用できます。

Ammoniteの主な機能は以下の4つです。

・Ammonite-REPL

モダンなScalaREPL シンタックスハイライト、複数行の編集、MavenアーティファクトをREPLに直接ロードする機能、およびデフォルトのScalaREPLにはない他の多くの改善を備えています。

・Scala Scripts

Scalaでのスクリプトプログラミング 「プロジェクト」を設定したり、SBTの遅い起動時間を待たずに、コマンドラインから簡単に実行できるスクリプトを作成します。

・Ammonite-Ops

Scala用の堅実なファイルシステムライブラリ BashまたはPythonスクリプトの場合と同じように、既存のScalaプロジェクトまたはアプリケーションからファイルシステムを簡単に処理できます。

・Ammonite-Shell

Bashシステムシェルの代替品 高レベルのScala言語でシステムシェルを提供し、Bashで複雑なコードを書き込もうとする煩わしさやフラストレーションなしに、システム操作を実際のコードとシームレスに組み合わせることができます。

上記のうち、今回はAmmonite-REPLを試します。

Ammonite-REPL

以下ターミナルで実行していきます。

インストール

$ sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/com-lihaoyi/Ammonite/releases/download/2.4.0/2.13-2.4.0) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm

起動〜実行

amm コマンドでREPLが起動します。

ammonite-1

軽快に起動します。軽いです。

ammonite-2

出力もPretty printされてて見やすい。シンタックスハイライトもいい感じです。

ammonite-3

ブロック記述もできる。 Alt + 左右でインデントも動かせます。

インポート

$ivy で使いたいライブラリをインポートできます。 org:library:version のフォーマットで記述します。

ammonite-4

$ivy は直感的でわかりやすいですね。

他のスクリプト言語のようにマジックインポートもできるようです。

まとめ

Ammonite-REPLを簡単ですが試してみました。普段はsbt を使って開発しているため $ sbt console を使うことが多いのですが、Ammonite-REPLの方が軽量で使いやすい印象です。

REPL以外の機能も提供されていますので、いろいろ触って いろいろ作っていこうと思います。