PythonでPure Java-Bytecode:Jython 2.1 13
ストーリー by Oliver
言語とランタイムは別物 部門より
言語とランタイムは別物 部門より
yasusii 曰く、 "Pythonとひとくちに言いましても、実は複数の実装があるのですが、そのひとつJython バージョン2.1が大晦日にリリースされております。Jythonは100% Pure Javaで実装されたPythonで、かつてはJPythonと呼ばれていたものです。PythonソースはJavaのバイトコードにコンパイル、実行されるため、既存のJavaコードをそのままPythonから利用できるようになっています。
ここの読者にも「仕事はJavaで」という人が多いと思いますけど、ひとつ今年は開発効率アップのためJythonを利用してみるというのはいかが? IBM developerWorks Japanに開発者のインタビュー「JPythonとPython for .NETの内幕」が翻訳、掲載されているのでご参考に。"
おおっ。逆方向にJavaからPythonコードも使える。JRubyなんてのもあって、じつはJava実行環境が.NETが約束している複数言語の融合をすでに実現している。オーブンソースなバイトコード実行環境Parrotも要注目だ。
隣の芝は青い? (スコア:1)
ところで、記事最後の「逆方向にJavaからPythonコードも使える」は「逆方向にJavaからRubyのコードもつかえる」が正しいですね。
ちなみに私は両刀使い。(Ruby+Python)
Re:隣の芝は青い? (スコア:1)
単にマイノリティの方が積極的に動いてるってだけのような気も。もちろんそれは自然で正しいことだと思いますけど。
ところで、.NETで言うところの CLI 相当のものとしてJava VMを使うのって現実的なのでしょうか。JythonとかJRuby見てると「なーんだできるじゃん」と思ったりするんですが、それでもJavaを前提にした設計が足枷になりそうな危惧も消えない。
# .NETなんてどーでもいいんだけど、CLIって考え方だけはちょっと魅かれるのよね
Java VM as CLI (スコア:2, 参考になる)
call/ccとかfull tail recursionの実装は VMの設計が足枷になっているようですが、 もともとこれらの機能ってCやJavaのモデルとあまり 親和性がなくて、Schemeのネイティブ実装だってCとの インタフェースで悩むところですし、仕方ないかなと。
スタックエリアまでGCしてくれる(スタックがあふれたら 使ってないフレームを削除したり使ってるフレームを ヒープに動かしてコンパクトしてくれる)機能がVMにあれば、 クロージャ作るのも継続作るのも軽くて嬉しいなあ。
Re:Java VM as CLI (スコア:1)
末尾再帰のない Scheme なんて Scheme じゃないような・・・(笑)初めて tail recursion を聞いたときには感動しました.
Koichi
Re:隣の芝は青い? (スコア:1)
Mr. XemacsことMr. Steven BaurとMr. Martin Buchholz
が、Java VM上にXemacsを実装したら
実はいけるんちゃうか?とideaをあつく語っていたのを。
これからは、Java VMはみんながつかうので、血眼で
高速化が図られるだろう。だから、Java VMのうえに
実装するというのは、将来的には、高速化の近道かも
しれない。
Emacs LispのVM(?)が高速化される速度を考えれば、
正しいと思う。
といったような内容でした。
それって、どうなったのかなぁ?
Guile as CLI? (スコア:0)
そういえば、 Guile [gnu.org]も CやらTclやらとのtranslatorを作ってpivot languageとする話があった気がしますが、 最近はどうなっているのでしょう。 PythonやRubyとのtranslatorは誰か作っていないのかな?
GuileからMuleテキストが削
Re:隣の芝は青い? (スコア:0)
Re:隣の芝は青い? (スコア:0)
> 「逆方向にJavaからRubyのコードもつかえる」が正しいですね。
この部分とJRubyとで文が切れているので、
単に別々の話題ということでミスではないですね。
Re:隣の芝は青い? (スコア:1)
> > 「逆方向にJavaからRubyのコードもつかえる」が正しいですね。
>この部分とJRubyとで文が切れているので、
>単に別々の話題ということでミスではないですね。
いやJRuby [sourceforge.net]では、「JavaからRubyのコードが使える」ように書いてありますが、Jython [jython.org]のほうでは、特に明記してない?Jython-2.0では確かそんなことはできなかったと思いますが、2.1で変わったのかな?
識者の意見を求む。
> じつはJava実行環境が.NETが約束している複数言語の融合をすでに実現している
What's Jython [jython.org]からリンクしている、Programming Languages for the Java Virtual Machine [tu-berlin.de]に、ほんとたくさんの言語がJavaによって融合されているんですね。こんなにあるとは知らなかった、、、
Re:隣の芝は青い? (スコア:1)
Re: 隣の芝は青い? (スコア:0)
単に編集者さんの趣味だったり?
しかしOliverさんも、Pythonの話題でRubyの宣伝するの好きですよね。
ちゃちゃ (スコア:1)
Re:ちゃちゃ (スコア:0)