2014年5月22日

最近C#の次世代コンパイラであるRoslynがOSS化しました.

このRoslynは, Compiler as a Serviceと銘打たれ, なんだか新しいすごいものになりそうな匂いがします.

Compiler as a Service

このCompiler as a Serviceというものは, 名前だけ見るとなんだかWebサービスっぽくてクラウドでC#コンパイルできるの?
みたいな感じに聞こえてきます.

しかし, as a Serviceがなんとなく, MBaaSだったりPaaS, IaaSのようにクラウドと紐づいたサービスが多いだけで
別にクラウドと絡んだりといったものでは, ないようです.

そもそもas a Serviceとは, 大規模な分割不可能なシステムとして使われるmonolithicの対義語として使われる
言葉であり, 中身をブラックボックス化しない, 処理単位での中身の参照が可能となるなど, 開かれたシステムとして
定義される意味であるので, なんか今までよくわからなかったコンパイラの中身がスケルトンだぞ程度にとらえればいいのかもしれません.

例えば, 従来のコンパイラでは, コンパイラにソースを通したらバイナリ出てきてその中間の処理には手を加えられないといったブラックボックス化の解消や, 内部クラスの公開, VSのリファクタリングやコード補完とコンパイラによる二重開発の解消, etc…

など挙げればきりがありませんが, とにかくなんか便利でいろいろできるコンパイラが出てくるという認識でOKです.(VSの現在のデイリービルドは, Roslynで行われている模様)

何が便利になるのか

  • REPL
  • C#/VBをスクリプト言語化

といった恩恵が受けられるようになります.

コンパイル型言語の枠を.NETが超える時代がくるようです.

また, 当然OSSになって内部構造が見えるということは, 拡張性も向上するので, IDEやその他諸々周辺の拡張が非常に楽にあるといったメリットがあります.

まとめ

Roslynの登場で, 今後のC#が大きく変貌しようとしていることは自明です.

今まで, 破壊的な変更も恐れずに突き進んできたC#が今後どうなるかが非常に見ものです.

また, RoslynとMonoを組み合わせることによるソースの互換性向上など, Monoが動く環境ならば誰でも試せるので,
興味のある人は試してみるのもいいかもしれません.

CATEGORIES