[ScalaMatsuri2018]AmmoniteによるScalaScript入門
だれ?
- 門脇 拓巳 (Takumi Kadowaki)
- 株式会社セプテーニ・オリジナル
- Scala歴1年半
- ScalaMatsuri初参加・スタッフ
- Twitter
- Github
Scala、どうやって書いてる?
- sbtなどのビルドツール
- pluginなど、大きなプロジェクトには便利
- 書捨てのような小さなプロジェクトにはオーバー
- ScalaビルトインのScalaScript
- 標準ライブラリのみ使うならいいが…
- 3rdPartyのライブラリを使う場合
- 手でjarをダウンロードして
- 手でクラスパスにjarを含める必要がある…
コード量
少 標準のScalaREPL
| 標準のScalaScript
|
|
| (ここを埋めるものがない!!!)
|
|
多 sbtなどのビルドツール
そこで→→→ Ammonite REPL/Script
Ammonite-REPL
- 高機能なScalaのREPL
- シンタックスハイライト
- 複数行編集
- 履歴検索
- ブロック入力
- Undo/Redo
MagicImport
- import $ivy
- MavenCentralからライブラリを取得、その場で使う事ができる!
Ammonite-Script
- Hello Ammonite!
- main アノテーションで引数を受け取る
- import $file で他のスクリプトファイルをimportする
- amm -w オプション
Ammonite-Ops
- ファイル操作に長けたライブラリ
- BashのようなDSL
- | … map
- || … flatMap
- |? … filter
- |! … foreach
- |> … Pipe
- 外部プロセスの実行
Ammoniteの活用例
- 静的ブログエンジン
- GUIアプリケーション
- ひとつのファイルでPlayFramework
参考文献
まとめ
便利なREPLとしてのAmmonite
- サードパーティのライブラリをちょっと試したい時にMagicImportが便利
ScalaScriptとしてのAmmonite
- 「スクリプトもScalaで書きたい!」というScala大好きな方に!
- 実際型があると安心!
- IntelliJもAmmoniteScriptをサポートしてるよ
全てをScalaで実装する未来がくるかも…?
おまけ (時間があれば)