Scala で簡単スクリプト Ammonite を試す
はじめに
普段はScalaで開発することが多いのですが、ちょっとコードを試したいときにIDEを起動するのは億劫でした。簡単に試せる場所がないかなーと探していたところ 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が起動します。
軽快に起動します。軽いです。
出力もPretty printされてて見やすい。シンタックスハイライトもいい感じです。
ブロック記述もできる。 Alt
+ 左右でインデントも動かせます。
インポート
$ivy
で使いたいライブラリをインポートできます。 org:library:version
のフォーマットで記述します。
$ivy
は直感的でわかりやすいですね。
他のスクリプト言語のようにマジックインポートもできるようです。
まとめ
Ammonite-REPLを簡単ですが試してみました。普段はsbt を使って開発しているため $ sbt console
を使うことが多いのですが、Ammonite-REPLの方が軽量で使いやすい印象です。
REPL以外の機能も提供されていますので、いろいろ触って いろいろ作っていこうと思います。