« タスクの時間管理によさそうなwebサービス「SlimTimer」 | メイン | class helperが使えない件 »

[C#, Delphi] C# 信者がうざい件

C# 信者の特徴

  • Hejlsberg は神であり神による実装である C# こそが唯一絶対の言語である
  • 他の言語(特に DelphiとJava)は存在自体が悪である
  • 他の言語を使っているのは C# を知らないからである
  • C# を布教することでそのような不幸な子羊たちを救済することこそが正義である

どこかの世界宗教のようですね。

「Delphiまとめwiki」 を読んでふと「C# 使えばいいのに」と思った - World Wide Walker

DMWより先に、Delphiを選択する時点で、C# よりも Delphi を使いたいという前提があることを考えて欲しい。

その上で Delphi をよりよく(という言い方もあまり好きじゃないけど、ほかにいい言い方が思い浮かばない)運用する方法がDMWなんだろ。

それに対して「それ C#(略」っていう発言は場違いであると思わない?

Delphi の The best way is only one. と言う考え方は好きだけど、実際には one of them だったり、後から小声で But, there are many ways to do it. だなんて言われそうな気がするのがなぁ、と思ってしまう。

当然 only one だろ。

その only one だから more better なものを選ぶ必要がない言語を選択するのがエンジニアとしては当然なんじゃねーの?

あと many ways なんて言語は存在価値はないよ。

IsValid や HasFound など真偽値にちなんだ名前にする。

foo.IsValid や bar.HasFound と書ければ一目瞭然。

そうでもない。関数名にCamelCaseが来るという時点でまず C# 使わない人間から見ると異常。

あとこの例だと bar.HasFound は HasFound という意味より IsFound という意味に俺は取ってしまったんだが。

省略するのはいいけど、省略しすぎて情報が落ちてないか?

必要なときはforwardによるプロトタイプ宣言を使う。

なぜプロトタイプ宣言やinterface節での宣言がいるんですかね(もちろん過去互換性のためだろうけど)。

プロトタイプ宣言なしだと関数やメソッド名などをtypoしたときに 爆速コンパイルの 1 pass 時点でエラーにならないからだろJK。

ループで配列やハッシュのインデックスを使わない。配列を直接ループさせる。

そもそも、Delphiはまともな Hash ライブラリすらないからな。TStringListのValuesプロパティは遅いから THashedStringList を使うなんてのは Bad Know-how 以外の何者でもないな。C# なら System.Collections.Generic.Dictionary で明瞭にかける。

インデックス回して書いた方が人間が見てわかりやすいならそう書くべき。

その上で必要ならチューニングする。

DMWもこれ書いてる人が考えるBestなだけで、実際にこれがBestだと決まってるわけじゃない。

[Ruby] C# >>>(越えられない壁)>>> Delphi (第一種臨界不測日記)

このような開けた場所で不等号を並べて越えられない壁とか臆面もなく書けるあたり尊敬します。

しかし、Webの記事とか、googleで上の方に出てくるのとか、

その辺、全然考慮してなかったりするんだよヽ(`Д´)ノ ウワァァン!!

Delphi のコードは Google などで検索するとレガシーなコードの方が多くHITしてしまいます。

これは Delphi は C# に比べると歴史が長いため、レガシーなコードほど多く蓄積されてしまっているからじゃないかと考えています。

良質なコードを摂取したいというのならば最近更新されていて、よく使われている評価の高いCode Central のコンポーネントのソースを読むことをオススメします。

使っている人もgeekな人が多いせいか、

C#を使っている人=geek=自分は geek ということですね。

自分で自分のことをgeekと言う人ほど信用できないものはないと思います。

最後に
自分の考えをまとめると、Delphiが全てのエンジニアにとって使いやすい言語ではないのと同じように、C#も全てのエンジニアにとって使いやすい言語ではないということです。

別にC#という言語やそのコミュニティが嫌いだというわけではなく、このことを忘れて(あるいは考えず)、他の言語をDISってC#をプッシュしてくる信者が大変鬱陶しいということ。

GUIといえばDelphi/VCLだった時を考えてください。

この時代にあなたが生まれていたとしたら、Win32の世界に入りましたか?

答えはYESですよね?それは嬉しいことじゃないですか?

色々な言語がクラアントサイドの言語として使われることで、幅広い層のエンジニアがリッチクラアントの世界に足を踏み入れるわけです。

それによってそれぞれの言語のコミュニティが活発化して、お互いに影響しあって成長していくんじゃないですか?

言語がどうこうなんて小さいことじゃなくて、もっと大きな視点を持つべきなんじゃないですか?

元ネタ:いい加減Ruby信者がうざい件 - id:k-z-h

カテゴリ: [ C# , Delphi ]

コメント (2)

匿名:

Delphiも彼らの神が創った言語なのでネタとしてはJavaのほうがよかったでしょう。

TOBY:

あああ、そうか、一般受けするにはJavaの方がよかったですね。

ただ、おいらはJavaはそんなには詳しくないんですよね……。
(それこそ、Perl並でJava1か2の時でとまってる)

コメントを投稿

Twitter(今何してる?)

プロフィール

あわせて読みたい

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

人気エントリー

About

2008年09月20日 17:34に投稿されたエントリーのページです。

ひとつ前の投稿は「[webサービス] タスクの時間管理によさそうなwebサービス「SlimTimer」」です。

次の投稿は「[Delphi] class helperが使えない件」です。

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