掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

2006年08月24日
Java にもクロージャが入るらしい。
スラド経由で知ったのだが、 Java にクロージャが入るらしい。
個人的にはかなり大きいニュースだと思っている。

MYCOMジャーナル - ついにJavaにもクロージャ? - James Gosling氏らJDK7へ導入提案
http://journal.mycom.co.jp/articles/2006/08/23/java7closuer/

ホワイトペーパ
http://blogs.sun.com/roller/resources/ahe/closures.pdf

Ruby や Scheme などの (おそらくたいていの) 動的型付言語にはクロージャ (Closure: 閉包) というものがある。
簡単に言っちゃえば、関数の中にインラインで関数を書くことができるもので、インラインで書かれた関数の中からブロックの外の変数を参照できるのが、クロージャと呼ばれるものだ。
で、今回は Java でもクロージャが JDK7 でサポートされそう、ってなお話。

正直、 C# 使いとしては、最近の Java は C# の後追いばかりで、またかYOってな感じだったり。
C# の初期バージョンが出たときこそ、 C# は Java のいいところをパクってきたが、ここ最近は、列挙体 (Enum)、ジェネリクス (Generics)、 オートボクシング/アンボクシング (Auto-Boxing/Unboxing) といった感じで Java は C# のいいところをパクりまくってきて、で、ここにきてのクロージャだ。
まぁ、私自身は Java を否定するわけでもないので、お互いに C# と Java で切磋琢磨していって両方ともいい言語に成長していってくれれば文句はない。

さてさて、 C# には、 2.0 で匿名メソッドと呼ばれる機能が追加されたのだが、匿名メソッドはインラインで書かれたメソッドをデリゲート型に暗黙に変換する機能だったりするのだが、それがクロージャの機能を有している。
ただし、 C# の匿名メソッドは完全なクロージャではなく、どちらかというと、レキシカル・クロージャ (Lexical Closure) と呼ばれるもので、時たま変な挙動を起こす問題児だったりするのだが、非常に便利なものなので私は匿名メソッドなしではもう生きていくことができない体になってしまってたりする。

話しがころころ変わってるような気がするが、偶然 Ruby と C# でクロージャの書き方の比較をしたサイトを見つけたので紹介するが、一言感想を言うなら「 Ruby すっげええええ!」ってなところか・・・。
興味ある方は是非見てみることを強くオススメする。

Joe Walnes - The power of closures in C# 2.0
http://joe.truemesh.com/blog//000390.html

ま、 C# の進化はいまやとどまるところを知らずってな感じで、 3.0 ではラムダ式 (Lambda Expression) やら LINQ といった機能が入ってくるわけで、どんどん動的型付言語のいいところが入ってきてる。
そんなわけで言語としてはどんどん便利になっていくわけで、私自身はまだまだ当分は C# をメイン言語として生きていくことになりそうな感じ。
本当に Anders Hejlsberg 氏はいい仕事をしてくれてますよね。

ただ・・・、個人的な悩みというか考えなければいけないことがあって、従来の C 言語スタイルな言語に慣れ親しんできた人に、勉強会とかで教えるときにどうやればうまく説明できるのかなぁとかちょっと悩んでみたり・・・。

とりあえず Java に関しては、どんどんスクリプト言語との距離が近づいていってる感じで今後どうなっていくか楽しみではあったり。

書いてる途中から思ってたけど、この記事ってかなり C# マンセー記事だね・・・(´д`)
[ 投稿者:名無し at 22:24 | コンピュータ | コメント(2) | トラックバック(0) ]

この記事へのコメント
無題
言語が多機能になって便利になると、そのために言語仕様が難しくなってしまい、、、
初心者にとってはますます敷居が高くなってしまいそうだな、とか感じてしまいました。
投稿者: ORE at 2006-08-27 22:26:21
無題
> ORE
んだね。
今まさにそんな状況なのがC++なわけで、C#やJavaもいずれはそういう状況になるのかもねぇ。
んでも、Anders Hejlsberg氏がいる限りは、C#はC++みたいなカオス(?)なことにはならないだろうと期待してたりする。
投稿者: 名無し@日記書いたような気がする人 at 2006-08-29 00:19:03

この記事へのトラックバック

この記事へのトラックバックURL
http://shinshu.fm/MHz/95.83/a01531/0000145268.trackback

この記事の固定URL
http://shinshu.fm/MHz/95.83/archives/0000145268.html

記事へのコメント
 
簡単演算認証: 5 x 2 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら