書いてある内容を理解してもらえるかどうか、理解してもらえたとしたら何か変化なり違いがあったりするかどうかのテスト。


これね

Twitter / masaka: へー知らんかったRT @wats: [Mirah][ ...
へー知らんかったRT @wats: [Mirah][ruby][java] Mirah - JRubyではないJVMで動くるrubyくさい言語のインストール http://bit.ly/9nqfHe


Twitterに書こうかとも思ったけど、長くなったのでこっちに書いとく。



ざっくり言うと、Mirahっていう言語があるっていうのを@wats 氏が自分でBlogに書いて、さらにそれを自分でTwitterに書いてて、自分はそれを読んで、そんなのあるんだへえ知らんかった、という内容


ではまず「JRubyでない JVMで動く rubyくさい言語」という部分について説明する



ていうかそもそもRubyっていう言語があるのはご存知なんだろうか

まあそれは調べてもらうとして



で、rubyのオリジナル版の開発・実行環境はC言語とrubyで実装されたものだが、それ以外にも幾つかありますよ、と

MSが作った版とか(みたことないけど。iron rubyだっけ)、JavaVM上で動く用にSunの人たちがつくりはじめた奴とか(これがJRuby)


つまり「JRuby」っていうのは 「JavaVM上でruby言語を動かせるようにするもの」 ってこと

というわけで、最初の「JRubyでない JVMで動く rubyくさい言語」ですが

「JRubyでない」JRubyではないんだけど
「JVMで動く」JavaVM上で動かせる
「rubyくさい言語」rubyのような使い勝手を持った言語

ってのをどっかの誰かが作って公開しはじめましたよ  って意味





そもそも、Java言語はJavaVM(仮想マシンという名のソフトウエア)上で動作している、っていうのは理解しているのか?わからん

まあとにかくJavaの言語仕様に基づいてテキストファイルに文字を格納して、コンパイラって奴に掛けてできたファイルをJavaVMってのに渡すと、CPUやらメモリやらファイルやらを自由に制御できますよ




WEBアプリってのはネットワーク経由で送られてきた何らかの文字列を解釈して、DBを読んだりメモリを読んだりして、結果をHTMLという形の文字列に整形して送り返す、っていうことしていますよ

ネットワークから文字列が送られてくる部分はJavaVMに添付されているライブラリを使うことで手抜きが出来ますよ

ネットワークから送られてきてそれを取り出す、っていうところまではサーブレットのAPIで、さらにそれを使った別のライブラリがWEBアプリのフレームワークとかそういう感じ










それと、何かの言語を使って別の言語を作る、っていうのがわかってもらえるんだろか

こっちは割と説明は簡単で、例えば「1 add 1」って書いてあるテキストファイルを読み込んで、数字の1と1とを足すんだな、と解釈して、実際に計算して、2を表示する、みたいなプログラムを作れば、それが独自の言語を実装したような



ただこの例だとコンパイルと同時に実行するイメージ。メモリ上にJavaでいう.classファイルを一時的に作ったようなイメージ。いわゆるインタープリタ





で、Javaは高速で安定した実行環境ということになっているので、その上で別の言語を動かすっていうのがだんだん増えてきているよと

scalaとかclojureとか

このあたりは勉強したらいいと思うけどね。1年くらいだらだらやればなんとかなるかも(ならないかも



関数型言語っていうのがあるのは知ってるんだろか。まあそこは調べてもらうとして(弱い 

まあLispとかちょっといじってみるといいんじゃないかと



ていうかruby少しかじってみるのをオススメする

言語によって使い勝手が違う、っていうのをまず体感して理解してもらえるかも。







とりあえずこれ読めば↓

初めてのRuby初めてのRuby
著者:Yugui
販売元:オライリージャパン
発売日:2008-06-26
おすすめ度:4.5
クチコミを見る