Silverlight, VBxに関するまとめ。

After MIX, how many Visual Basic languages are there?
Paul VickがVBxとSilverlightに関してまとめていますので、要約します。
まず「VBxはVisual Basicの次のバージョンであって、新しいバージョンではない」こと。つまりこれはVBxがVBSやVBAのようにVBから枝分かれした似たような何かではないことを示しています。
「SilverlightはクロスプラットフォームなCLRであり、いくつかの制限があるので、デスクトップ用のCLRでコンパイルしたILのビットがそのまますべて動作するわけではない」こと。また「OrcasのVisual BasicコンパイラはSilverlight用のコンパイルはできない」ので、ライブラリ込みでSilverlightにコンパイルさせる必要があります。たとえば、誰かがMacでそのページにアクセスしに来たときには、Silverlghtのアプリケーションやそれで使用するライブラリをWebサーバー側でビルドしてやる必要があります。
Orcasを使わない別の方法としては、DLR上で動作させることを前提にコードを書き、ソースコードを直接Silverlightに送り込んでそれ自身に実行させる方法があります。できるだけ軽量のコードをクライアントサイドで実行させる方法で、従来のWEBクライアントアプリケーションのモデルに近い方法をとります。
VBxの一部はDLR上に気づき上げられたコンポーネントで、SilverlightはDLR言語をホスティングできるので、VBのコードをSilverlightのインスタンスに送って、それをダイナミックにコンパイルし、実行させることができます。したがってMacがそのWebページ来た場合、すべてのバイナリコードをMacに送る必要はなく、まさしくソースコードを送ることができます。もし、プログラムに対して何かしらの改修が必要な場合でも、ソースコードを修正して、WEBページをリフレッシュさせれば良いのです。
覚えておきたい重要なことは一つのVisual Basic言語であること、しかし、VBxがいったん登場するとそれを実行する一つ以上の方法を得ることができます。従来どおり、.DLLや.EXEにコードをコンパイルすることもできますが、それ以外のもっと軽量にCLRのインスタンスとしてコードをコンパイルして実行させる方法を持つことができます。これは面白いことになってきました・・・。


ということで、VBは動的言語への道を確実に歩むことになるようです。これはC#との根本的な差別化だし、RubyやPythonなどと競合になるということも示しています。また従来どおり静的なコンパイル言語としての側面も残されており、POVBのときのように、いやそれ以上にVBを知っていればなんでもできる状態が近づいてきたことは間違いありません。特に似ているけどちょっと違うというPOVBの状況に比べれば「still only ONE Visual Basic language 」は力強い言葉ですね。
というわけで、これで「C#にしたほうがいいんですかね?」などという疑問を1グラムも持つ必要はありませんね!

コメントを残す