« オーディンスフィアか、Command & Conquer3 か悩む | メイン | Squirrel for Delphi 苦戦中 »

[C#, Delphi] Sort と C# と Delphi と

sort

仕事のことで、C#でツールを作ってもらっているんですけど、
C#の言語仕様になかなかなれない様子で、
リストの sort の評価関数に delegate つっこむのがキモイとか、評判でした。

これのこと?

なんでも、イベントハンドラに delegate はまだ許せるが、
ジェネリックなコレクションクラスを利用するときに、
sort の評価関数に delegate 使うのはどうなんよ?
継承でいいじゃん?って言うことらしい。

自分的には、カスタムな sort するくらいのことに、
継承なんて問題外なんですが、これって、
そもそも Delphi といっしょだよなあ、
慣れだよ、慣れとか……。

そのプルグラマは、C++ 出身なので、特にキモく感じるらしい。
C++ 流だと、継承なのか?と思ったけど、単に、メソッドポインタがないので慣れないせいかも。

それはそれとして、
sort すんのに、呼び出し側で、メソッド定義するのは
面倒という話も聞いたけど、
(C#なら、Delphiと違って、宣言いらない分楽だと思うけど)
それならば、C# 2.0 の匿名メソッドでいけるじゃんよ?
って話しに。

つまり、こう

さらに、Rubyとかやってると、匿名メソッド(というか、ブロック構文ね)とか、普通ですよ?とかいう話にも。

以下は、Ruby で、配列をランダム に sort するワンライナー(一行コード)。

楽ちん?

第一、Javaなんてば、java.util.Comparator 継承して、
delgateの代わりに、new HogeComparator 渡すんだぜ?
なんて話まではいかなかったけど。

何が言いたいかって言うと、
別に、C#に慣れないって話しではなく……。

C#って、
イベントハンドラ周りが delegate だったり、
delegateってようは、メソッドポインタ相当とすると、
Delphiと大してかわらんねー?、
これならいつでも移れるね?という安心感があるなという話。

さすが、Hejlsberg(C#設計者) だぜ?

とはいえ、C# 2.0 の匿名メソッドや、ジェネリック、イテーレタの yield が
うらやましすぎるけど……。

クソー、C#が、ネィティブ対応してれば、今頃は、連邦のモビルスーツな(ry

そういや、
去年くらいから、Ruby流行ってるって言っても、
ピンと来てないらしく、
そのプログラマさんは、
Ruby on Rails もご存じではなかった。

たぶん、Rubyの知名度ってまだまだその程度のなんだろうと思う……。

カテゴリ: [ C# , Delphi ]

コメント (2)

Ko-Ta:

Delphiはポインタを隠蔽・安全にしたためか、C++よりもポインタを駆使するケースが多いですよね。
逆にC++はポインタは出来るだけ避けて、クラス継承テクニックで行うケースが多いように感じます。
C++においてのテンプレートの有り難味なんてのは、まさにこの土壌の違いからくるところなんでしょうね。

TOBY:

Delphiのメソッドポインタを駆使する手法は、Delphi設計者ならでわだと思いまする。

C++テンプレートてば、ModernC++Designeとか見ると、変態すぎてこまります。
genericとか言ってるばやいじゃないぜーって言うほど、土壌がちがいますよね。

コメントを投稿

Twitter(今何してる?)

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

人気エントリー

About

2007年06月21日 04:36に投稿されたエントリーのページです。

ひとつ前の投稿は「[ゲーム] オーディンスフィアか、Command & Conquer3 か悩む」です。

次の投稿は「[Delphi] Squirrel for Delphi 苦戦中」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。