仕様をよく理解していないままに言語を使っていると、文と文、式と式、それぞれがどう評価され、何を返し、どう連関するのかあやふやで、コード全体がネジの緩みっぱなしの機械みたいな、“壊れやすい構造”として感じられてくる。
2011-02-06 06:12:41つまり言語に対する理解という、自分自身の属性が言語の属性として感じられてしまう。JavaやPythonであればそれでもAPIリファレンスを引きながらやって行けばだいぶ良いと思う。だけど、C#はそうはいかない。MSDNはひどい。
2011-02-06 06:19:11一つ山を越えたからといってもすぐ先にもう一山、ということ。それからある言語と別のある言語のコードが、他との比較として極めて似通っているからといっても、その動作が似通っていることが保証されるわけではまったくない、ということ。
2011-02-06 17:56:12これは前にも何度も愚痴ってきたことだけど、C#の仮想メソッド/オーバーライドメソッドの仕組みは、ポリモーフィズムに対する深刻な危機である、としか思えない。
2011-02-06 20:19:59仮想メソッドとかstaticメソッドによる演算子オーバーロードとか、そういうのに構っていても仕方ないわけで、もう、デリゲートに関する章とか読んで、とっとと切り上げてしまおう、という気分。
2011-02-07 00:25:16あとJavaで言われる値渡し/参照渡しの分類法と、C#における値渡し/参照渡しの分類法とで、区別の基準が異なっていることがわかった。すっごい、ややこしい!
2011-02-08 00:15:44あー。同じシグネチャのメンバを持つ2つのインターフェースを実装→メンバのインターフェース名による修飾→メンバの隠蔽、という話まで来て、もはやダイヤモンド継承問題と大差なくなってきているように思うのは、僕だけ??
2011-02-08 00:37:03Javaの資格試験の問題作成チームが、C#を題材に同じように試験問題を作成したら、想像を絶するほど難解で、解答者の精神を蝕むものができあがると思う。
2011-02-09 01:16:10JavaScripなどの関数使用歴があると、JavaのリスナークラスやC#のデリゲート概念にダルさを感じる。Scalaの関数使用歴があると、JavaScriptの関数リテラルにダルさを(若干)感じる。
2011-02-11 13:44:45Javaに対してC#では例外処理を好まず、いわばメソッドローカルでの問題解決を好む、というような話をきたことがある。 #java #ccharp
2011-02-13 00:14:35だけど、メソッド定義にそのメソッドがスローする可能性のある例外を列挙する必要がない、という時点で、そもそもすでにJava的な例外処理コーディングが不可能になっている、というほうが正しいと思う。 #java #csharp
2011-02-13 00:15:29仮想メソッドとして印付けられていないとポリモーフィズム可能なメソッドオーバーライドができない問題とか、メソッドの宣言にそのメソッドが投げうる事前に予知可能な例外を記述しない点。これだけでだいぶ後退しているように思う。 #java #csharp
2011-02-13 00:26:26どちらの問題にしても、クラスのユーザーに、そのクラスやそのクラスの親クラスたちの実装についての知識を求めているようにしか思えない。 #java #csharp
2011-02-13 00:28:40