平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

Async CTP

Asynchronous Programming with Async and Await (C# and Visual Basic)
LINQ CTPを思い出す。

それにしても、継続のない(コルーチンも末尾呼出の最適化もない)言語なのに、コンパイラがごりごり頑張ることによって力技でジェネレータ(yield return)やシーケンシャル非同期(async/await)を実現してるというあたりが、どうにもイケてない。キーワードを増やすんではなく、いろんなことをライブラリメソッドで実現するほうが、言語としてはきれいなんだろうからね。

とはいえ、C#はむやみやたらとキーワードを増やしているわけではなく、範囲を絞って、かつユーザビリティ調査を十分行った上で導入しているので、「わざとですが何か?」みたいな感覚はあるかも。Javaが行き詰ってきて、Scalaなどのyet another JVM languageが注目されている中、C#が平気な顔をしていられるのはこのポリシーのおかげとも言える。

C#のこのポリシーに、もっとましな名前を付けられないかなあ。Perlの「TMTOWTDI」、Rubyの「驚き最小の原則*1」「多様性は善」みたいな。Andersに聞いてみたいところ。

*1:はいはい、読んでいますよ