Kullaプロジェクト - Java用REPL
Java REPLが近いうちに,あなたのJDKの元に届きそうだ。Oracle言語ツールチームのエンジニアであるRobert Field氏は先頃,Java REPL("Read-Evaluate-Print-Loop")プロジェクトの創設を提案した。投票を経て,Project Kullaと呼ばれるこのプロジェクトが承認されたのだ。
REPLは基本的には,スクリプティングシェルないしコンソールである。UNIXシェルやGroovyコンソールのように,アルゴリズムの確認のために使用するものだ。
REPLに対応するJEP(Java Enhancement Proposal)には,グラフィックインターフェースやデバッグのサポート,IDE的な機能など,いくつかの項目がスコープ外であると述べられている。プログラム言語の学習においては即時のフィードバックが重要であり,その機会を欠くために,多くの教育機関がJavaから離れていっている,というのが提案の理由である。対話的な実行は,従来の編集/コンパイル/実行よりもはるかに効率的なのだ。
"public static void main(String[] args){"というクラスの儀式を書かなくても,Javaで記述した短いスクリプトが実用的なものになる。
現時点で利用可能な選択肢としては,他にも次のものがある。
- Groovy Console
- EclipseのJava Scrapbook Page
- Beanshell 2
- Scala REPL
- Java REPL
- IntelliJ IDEAのREPLプラグイン (Java REPLベース)
JEPによると,Java REPLはJDK 9で提供される予定である。ただしOpen JDKのJDK 9には,機能としてリストアップされていない。
Scalaを開発したMartin Odersky氏は先日,JavaでREPLを使用することの意義についての質問に対して,次のように返答した。
"Javaの直面している問題は,それが根本的に命令文(statement)志向の言語であることです。命令文を書いて,それを実行すると,結果が得られます。対照的にREPLは式(expression)志向です。式を書けば,REPLが結果を示します。電卓のようなものです。JavaでREPLを実現することは可能ですが,式志向の言語の場合ほど有用ではないでしょう。"
REPLは言語学習において,不可欠なものかも知れない。ただしフィードバックが迅速であることが,初学者に対して,他の言語よりもJavaの学習を促すことになるかは,まだ分からない。
特集コンテンツ一覧
プロジェクトインセプション - 協力体制を作るミーティングの方法
James Bayer 2014年10月14日 午後7時57分
カンバンはどのように動作するか
Amr Noaman Abdel-Hamid 2014年9月7日 午後7時43分
自己組織化チームはなぜ必要か?
Sigi Kaltenecker and Peter Hundermark 2014年8月31日 午前2時2分
効果的なテストの文化を創る
Wes McClure 2014年8月31日 午前1時54分
ソフトウェア開発プロセスから無駄を省くための7つの方法
Cecil Dijoux 2014年8月17日 午後8時53分
自己組織化チームとは何か?
Sigi Kaltenecker and Peter Hundermark 2014年8月7日 午前1時39分
こんにちは
コメントするには InfoQアカウントの登録 または ログイン が必要です。InfoQ に登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。
あなたの意見をお聞かせください。