Rubyで書かれたJavaVM 48
ストーリー by Oliver
脱帽 部門より
脱帽 部門より
ruby-listメーリングリストにRubyで書かれたJavaVMのアナウンスがあった。Rubyには既にJRubyというJavaで書かれたRubyインタプリタがあるが、こっちはpure Rubyで書かれた、JDKが吐き出した .classファイルを実行するJavaVMだ。すごっ。まだまだ実装されていないバイトコードが残っていたりスレッド未対応だったりするが、簡単なJavaプログラムなら動いた。実用性は別にして、こういうハックを見るとわくわくする。
びっくり (スコア:4, 興味深い)
まさか何時も見ている/.に載るような話題になるとは思いませんでした ^^;
一週間で出来たのは、やっぱruby が素敵なの(これが一番)と、前に(C++で)作ったものがあるからと、GC とかはruby のがあるからいいやー、ってんで色々楽できたのと。規模的にも3000行くらい書いておわりですし(大半は自動生成したものだし)。
記事にしてくださって、感謝。
おなまえは... (スコア:2, すばらしい洞察)
そんで、Webページでも発言しておられましたけど、名前をどうするか(笑
ここはRuby(スクリプト系だからか宝石)+Java(コーヒー系)のあいだで
Amber(琥珀)なんてどうでしょ?
M-FalconSky (暑いか寒い)
Re:おなまえは... (スコア:1)
うわ、素敵だ、貰いだ! と思ったんですが、Java のソフト(sdk?) [clearfield.com]に既にあるんですねぇ。残念。
# Kohaku とかにすると格好悪いかな ^^;
# だからって翡翠にするというのも・・・
# 秋葉のほうが本当はいいんですが(どんどん違う話に
Re:おなまえは... (スコア:0)
淡い緑色をしたヒスイ[本翡翠、翡翠輝石、硬玉]ジェードとか呼ばれるらしい
Nephriteネフライト
上の奴より硬度が低いらしい[軟玉]
らしいです。どうでしょ。
[脊髄]Re:おなまえは... (スコア:0)
> Nephrite ネフライト
kunzite クンツァイト
Zoisite ゾイサイト
Re:[脊髄]Re:おなまえは... (スコア:0)
Re:[脊髄]Re:おなまえは... (スコア:0)
Re:おなまえは... (スコア:0)
Re:おなまえは... (スコア:1)
で。
-京都土産にID-
あら? (スコア:2, 参考になる)
ここ [srad.jp]で見たのか・・・
合わせ鏡 (スコア:2, おもしろおかしい)
JIT (スコア:2, 興味深い)
# Javaで書かれたJavaVMのJITはJavaバイトコードからJavaバイトコードへコンパイル(?)するのだろうか。。
それはそれとして、ほんちゃんのVMで走らせる前にRava使ってVMの内側からアプリのデバッグとかできると割りと楽しいかも。
テストのカバレッジを計測するツールとか、すごく簡単に出来てしまいそうな気がするのは私だけでしょうか。
wild wild computing
Re:JIT (スコア:2, 興味深い)
デバッガ用途に、VM自体の拡張は容易かと思います(他のVMに比べたら)。
ただ、私はJavaは殆ど書かない人間なので(笑)、どういうニーズがあるのかよくわかっておりません ^^;
> # Javaで書かれたJavaVMのJITはJavaバイトコードからJavaバイトコードへコンパイル(?)するのだろうか。。
うーん、どうやるんだろう ^^;
Re:JIT (スコア:1)
Rite(Ruby2.0)がでるまで触れないで下さい...
matzさん頑張ってください。
#業務に使えないのが悲しい。
#といいつつ、社内アプリはRubyで動いてたりして(^^;
Re:JIT (スコア:1)
JITってターゲットCPUのマシンコードへコンパイルするんじゃないでしょうか?
#考えてたら、なんか頭がこんがらがってきた。
Re:JIT (スコア:3, 参考になる)
コンパイルするなら何から何への変換でもいいです。
ただ、Java で書かれた JavaVM の代表 IBM の Jalapeno VM [ibm.com]は、
バイトコードからネイティブコード(PowerPC コード)への変換になります。
ちなみに
広義の JIT コンパイラは、静的なコンパイルを行う AOT(=Ahead Of Time)コンパイラに対応した概念ですが、狭義の JIT コンパイラは、フェッチしてきた命令を片っ端からコンパイルするようなちょっとお馬鹿なコンパイラを意味します。
最近は、動的コンパイル(dynamic compilation) とか適応型コンパイル(adaptive compilcation)と呼ぶことの方が多くなってきています。
# Ruby にも adaptive compilation を入れよう。
コンタミは発見の母
これだけのものが (スコア:1)
あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
Re:これだけのものが (スコア:1, おもしろおかしい)
alias puby ruby
まだまだ実装されていないバイトコードが残っていたり
スレッド未対応だったりするが、
簡単な1linerなら動いた。
#-M1お願いします...(恥
役に立つ? (スコア:1, 興味深い)
私がつかっていたのは、Jython [sourceforge.net]でした。
Javaって非常に良い設計なのですが、堅いというか、めんどくさいというか、
とにかくタイプ量がおおいですよね。
まあ、それが良い場合も多いのだけれど。
ですから、簡単なテストやプロトタイプはスクリプトでさくっと書くと便利です。
しかし、RubyからJavaのコードを呼んでそんなにうれしいことあるの?
標準ライブラリを読み込むんじゃなくて
既存のclassの流用が主目的なのかな?
Re:役に立つ? (スコア:2, すばらしい洞察)
であることが目的かと。。
Re:役に立つ? (スコア:2, 興味深い)
まぁ、実用のために書いたもんじゃないってことで一つ ^^;
(主な開発目的は面白そうだったから、(および現実逃避)です)
ネイティブメソッドをrubyで書ける(rubyじゃなきゃ書けないとも言う)ってのは、メリットになるのかなぁ、ならないのかなぁと少し思うんですが、どうでしょうねぇ
JNI なり JRuby (使ったことない)なりで出来そうな気はしますが、気楽には出来そうにないですよね、とか。ただ、気楽に書けてどうするって気もする
Re:役に立つ? (スコア:0)
JavaVMは何で書かれていますか?
#Cで書いてあるOSに何の意味がありますか?
Re:役に立つ? (スコア:1)
ただ単純に、どういう使い方が有用なのかなと思っただけです。
別にPythonが好きというわけでもなく
ただ、単にRubyよりもPythonを先にさわっただけ。
むしろRubyのほうが書きやすいとさえ思う。
あのインデントがなんとも。。。
Re:役に立つ? (スコア:1, 興味深い)
Re:役に立つ? (スコア:0)
この一文が一般に与える印象が険悪でないと心底から感じているのであれば文章の書き方というものを根本から見直すことをおすすめします。
Re:役に立つ? (スコア:1)
険悪な印象が皆無だったのは私だけですか?
# 「メリットがある」「有用である」の意味で「うれしい」という表現を
# するのをしばしば見かけますし、自分でもしばしば使います。
# 大学んとき、中国系の助手のせんせがよくそういう表現を使って
# いたのでそれに慣れた、というのもあるのですが……。
Re:役に立つ? (スコア:0)
Re:役に立つ? (スコア:0)
#184484は最初から険悪になるように書かれていることに気がつかず、流れを読まずに脊髄反射しちゃダメだよ。
ま、ねらい通りだわな。
Re:末尾再帰 (スコア:0)
はrecursiveではないし。ここにいたる流れを追う前にこの文の論理にバグがあるよね。
Pythonの由来 (スコア:2)
Why is it called Python? [python.org]を読むと、 「モンティーパイソン 空飛ぶサーカス」のファンだったから、みたいなことが書いてありますね。だから、「パイソン」でいいと思います。
vyama 「バグ取れワンワン」
Re:Pythonの由来 (スコア:0)
コルトのパイソン :-) なら子供のころから知ってたので、一応読めました。
Pythonの読み (スコア:1)
Re:役に立つ? (スコア:1, 余計なもの)
use Test::More 'no_plan';
Re:役に立つ? (スコア:0, 余計なもの)
Re:役に立つ? (スコア:1)
タモリさんのテレビでの初仕事が、たしかこれの日本語版でしたっけ。
今とは違って、きわどい芸で良識派のおばはんどもにヒンシュクを買っていた
のに、今やすっかりお茶の間の人気ものなんて、この当時は想像もつかなんだ。
Re:役に立つ? (スコア:1)
ニシキヘビ
[oreilly.com]
になったような。
Re:役に立つ? (スコア:0)
#役立たずでも、とりあえずやってみるって言うのも好きですが
Ravaの利用方法 (スコア:1)
Rava Swing
Rava 3D
Rava Servlet
Rava Server Page
あぁ、自己満足でしかない。。。
面白いのは確かですね。
PCにECC Registeredメモリの利用を推奨します。
Re:Ravaの利用方法 (スコア:1)
visualu ruby でちょいちょいやれば作れるんじゃないかと甘い幻想を抱いていますが、どうですかね
(いや、ruby で GUIってそれしか知らなもんで)
Re:Ravaの利用方法 (スコア:0, 余計なもの)
Re:Ravaの利用方法 (スコア:0)
あと必要なのは (スコア:1)
Re:あと必要なのは (スコア:1)
.class 持ってきてRavaで動かせばよいのでは。
wild wild computing
Re:あと必要なのは (スコア:2, 参考になる)
# 確かそうだったはずだ…。
多分 (スコア:1)
あさって全国大会というヤツでこれをネタに15分しゃべります。さて、何をしゃべればいいかと悩んでおります。
やはり、学術的なことに昇華する必要があるらしいんで、何を主題に喋るか。いや、主題は大体決まってるんだけど。
やっぱり「面白そうだからやりました」だけで済む世界で閉じればよかった、マヂでそう思う(笑)