BlackSheep-LSL@Wiki

mono

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン

はじめに


LSLユーザーには最近最も気になる話題ですが、LSLのmono対応が進められています。
現在(2008年1月末より)ベータグリッドでのmonoテストが実施されており、やがて(遠くない将来には)本導入されると思われます。
今まで混乱を避けるためにmonoの話題については巧妙に避けてきましたが、そろそろ現実のものとしてmonoと向き合う時期だと思いますので、まずは簡単にmonoって何なのかについて書いておきたいと思います。

monoとは


monoとはコンピュータプログラムを実行するための仕組みの一つです。
プログラム、と一口に言っても、いろいろな言語、いろいろなコンピュータ上で動くものがあるわけですが、monoが目指しているのは、様々な言語で書かれたコードを、様々なコンピュータ上で動かせるようにすることです。

……という説明だけではイメージがしにくいので人間世界の話に喩えてみましょう。
たとえば、裁判に関わることになったとします。
私のような一般人は、法律に精通していませんので、通常裁判になった際には弁護士を雇います。
弁護士は私の言い分を聞いて、適切な法的処置を選び、私の望むようにことを運んでくれます(腕の悪い弁護士というのは除外して考えて下さいw)。
私のやりたいことを適切に肩代わりしてくれる、という部分に注目です。

しかしこの弁護士も万能ではありません。
たとえばアメリカで訴えられたことを考えてみて下さい。
弁護士がいくら頭が良いと言っても、英語が得意でないという人もいるでしょう。
さらに言うなら、日本の法律には精通していても、アメリカの法律にも精通しているとは限りません。
となると、まず通訳が必要になりますね。
そして、現地の法律に精通している別の弁護士を雇う必要もあります。

アメリカなら、アメリカの法律に詳しい弁護士。そして英語の通訳。
同じ英語の通訳でも、イギリスに行くとまた法律が違ったり・・・。
土地と言葉によって、雇うべき弁護士と通訳を変えなければいけません。

それと同じように、昔のプログラミングというのは、WindowsならWindows用、MacならMac用、UNIXならUNIX用の弁護士が必要でした。
Windowsに精通している弁護士は、Macでは活躍できなかったわけです。
同じソフトウェアでも、Windows用とMac用、のように複数の種類があったりしたわけです。
プログラム言語についても、C言語ならC言語用、BasicならBasic用、それぞれに応じた通訳がいます。

私たちにお馴染みのLSLについても同じことが言えます。
普段は意識することがありませんが、LSLというプログラムのソースコードを理解し、機械コードに通訳してくれる存在がまず居ます。
これをコンパイラと言います。
彼は専門職ですのでLSL言語しか訳せません。

そして機械コードを元に、実際に私たちの望むような処理(プリムを回したり、メッセージを表示したり)をしてくれる、弁護士のような存在がまた別に居ます。
これを仮想マシンと言います。
彼は一応きちんと仕事をしてくれていますが、飛びぬけて優秀というわけではありません。
SLユーザーが増えてきて、多くのLSLが動くようになった今では、彼の能力では仕事を片付けきれなくなってきています。
SIMがラグいような時、その原因の一つとして、彼の仕事が遅いせいだったりすることもあります。

そこで、リンデンは新しい通訳と新しい弁護士を雇うことにしたのです。
それがmonoです。
新しい通訳はLSL言語を訳せるのはもちろん、他の言語を訳せる可能性もあります(現時点では他の言語の対応は未定のようですが)。
新しい弁護士は、今までの弁護士よりも最大で220倍くらいの効率で仕事がこなせるらしいです。
通常の3倍なシャアザクとは違うのだよ、とかわけわかんないこと言ってるそうです。
(古い弁護士のほうが優秀な分野があるのかどうかは、発表がないのでわかりませんw)

monoで何が変わるのか


まず第一に、弁護士の能力が上がるので、今までのスクリプトよりも速度の向上が期待できます。
どこまで体感的に変わるかはまだわかりませんが、SIMに与える影響は減るだろうとリンデンは予測しています。
また、今までの弁護士(LSL2)は一度に扱える仕事の量(=スクリプトサイズ)が16kでしたが、monoでは64kになるそうです。
それに加えてLSL2はスクリプトごとに16kのメモリ領域を固定で消費していたのに対し、monoは必要な分だけを動的に消費するとのこと、より効率的で、SIMに優しい弁護士だと言えるでしょう。

「通訳が変わちゃっても、今までのコードはちゃんと通じるのかなぁ?」
という不安はLSL技術者なら真っ先に感じるところですが、これについては問題ありません。
新しい通訳は完璧に今までのソースコードを訳してくれます(訳せるよう努力中だそうですw)。
つまり、今まで覚えたLSLの構文や関数、イベントはそのまま使えるってことですね。
ってことは、このwikiの記事なんかもそのままでいいってことで、これは大助かり!(ぉ

結局、monoが導入された後、何をしなければいけないか?というと、別に難しいことはなさそうです。
今までのスクリプトは全て古い弁護士(LSL2)に依頼されていますので、新しい弁護士(mono)に依頼し直す必要があるだけです。
操作は簡単、スクリプトコードをエディタで開き、「monoに依頼」のチェックを入れて保存し直すだけだとか。
もちろん、今まで通りにLSL2に依頼しておきたいものは、そのまま使うことができます。
義理と人情の関係からか、いきなり古い弁護士を解雇、というわけにはいかないんですねw
いずれ誰もLSL2には仕事を頼まなくなった頃には、解雇されてしまうのかもしれませんけども(;;

従って、私たちの作業で変わるのは、スクリプトを保存するときに、monoを使うか、それとも今まで通りにするかの選択肢が増える、ということくらいです。
これだけでスクリプトの処理速度・処理効率をUPできるのですから、ありがたい話ではあります。

将来的には、LSL以外の言語(たとえばC#のような)を使ってセカンドライフのスクリプトを書くことができる可能性もあります。
それについてはまだ先のことなので今は考えなくてもよさそうです。

mono体験


βグリッドでmonoのテストが実施されています。
こちらでmonoテスト用のSLクライアントをDLできるようですので、これを使えばmonoを体験できます。
ただしβグリッドの全ての土地でmonoが使えるわけではなく、一部に導入されているのみですので、monoを使うにはmonoに対応した土地へ行く必要があります。
土地の名前の末尾に「MONO」と書いてある場所であればmonoが使えます(Sandbox Cordova MONO等)。

リンデンではmonoのテスト結果を求めているそうですので、興味のある方はぜひ協力してあげて下さい。
詳しくはSecond Life Wikiのmonoのページで。
君もβグリッドで僕と握手!


名前:
コメント:
記事メニュー
目安箱バナー