re: Jythonはじめました

CodeZineJava meets Python - 第0回 Jythonはじめました(前編)(java, Python
http://codezine.jp/a/article/aid/1714.aspx
CodeZineJava meets Python - 第0回 Jythonはじめました(後編)(java, Python
http://codezine.jp/a/article/aid/1727.aspx

僕が書いたんじゃないのか、と聞かれたけど、僕じゃありません。

    • -

えっと、とりあえずDISりにならない程度に気をつけてすこし補足すると、

コマンドjythoncを使うと、Jythonソースコードから.classファイルを生成できます。(中略)こうして、Java/Pythonの融合した世界が実現できます。

これってものすごくもったいないことをしている。わざわざ.classファイルを作成しなくても、実行時にPythonで書かれたコードを実行することができる。執筆中のJython本から引用して後で編集者さんに怒られないかちょっと不安だけど:

 1: package org.nhiro.jybook;
 2: 
 3: import org.python.util.PythonInterpreter;
 4: 
 5: /**
 6:  * Pythonコードをファイルから読み込んで実行する。
 7:  */
 8: 
 9: public class HelloJythonScript_1 {
10:     public static void main(String[] args) {
11:         PythonInterpreter pyi = new PythonInterpreter();
12:         pyi.execfile("scripts/HelloJythonScript/init_1.py");
13:     }
14: }

ちなみに「Pythonでコードを記述して、jythoncで*.classにして、Java側でimportしてそれを取り込み…」いうアプローチではせっかくのJythonのメリット(コンパイルなしで挙動を変更できる)を殺してしまう。「Javaで書かれた部品をPython側でインポートして使う」というアプローチの方がいいと思うな。変更頻度の高いパラメータやロジックは全部スクリプトの側に吐き出してしまえばコンパイル環境がなくても変更できる。