Cマガ

ここ1,2年くらい読んでませんでしたが、http://www.cmagazine.jp/を見たら、

特別記事 英語文献の読み方/CodeRuler実戦記/ハイブリッド言語「Nemerle」/ヴァーチャルリアリティ作品の面白さ

なんと来月、Nemerleの記事が載るみたいですね。ハイブリッド言語と紹介しているので、オブジェクト指向関数型言語の両方から見た紹介になるのかな?
ところで、Nemerleはハイブリッドな部分を捨てて拡張版C#として使っても結構使えたりします。C#+αな部分を列挙すると、

  • Generics(Java方式)
  • 匿名メソッド
  • メソッド、デリゲートの自動変換(XXXEventHandlerが不要)
  • パーシャルタイプ
  • module(C#2.0のstatic class)
  • 型推論
  • マクロ

このようにC#2.0の主要な新機能はIterator以外はサポートしており、もちろん.NET1.1で動作します。あと、型推論が地味に便利です。

Dictionary d = new Dictionary();
d.Add ("Ala", 7);

C#2.0だとこれだけ書くことになりますが、Nemerleだと、

def d = Dictionary ();
d.Add ("Ala", 7);

これだけで済みます。


余談。Nemerleを採用するデメリットは言語がマイナー過ぎるに尽きます。もし、これがC#2.0とソース互換となるオプションとか用意して、.NET1.1でGenericsが使えるベターC#1.0みたいな感じだったら、飛びつく人が多かった気が・・・(^^;