mizukyfさんのC#ぼやきにC#ユーザが反応

Javaやってる人がC#の仕様に違和感を感じることは、めずらしくない。
0
@mizukyf

元気とやる気が戻ったら、C#を基本から勉強しなおそう…

2011-02-02 22:08:23
@mizukyf

仕様をよく理解していないままに言語を使っていると、文と文、式と式、それぞれがどう評価され、何を返し、どう連関するのかあやふやで、コード全体がネジの緩みっぱなしの機械みたいな、“壊れやすい構造”として感じられてくる。

2011-02-06 06:12:41
@mizukyf

つまり言語に対する理解という、自分自身の属性が言語の属性として感じられてしまう。JavaやPythonであればそれでもAPIリファレンスを引きながらやって行けばだいぶ良いと思う。だけど、C#はそうはいかない。MSDNはひどい。

2011-02-06 06:19:11
@mizukyf

一つ山を越えたからといってもすぐ先にもう一山、ということ。それからある言語と別のある言語のコードが、他との比較として極めて似通っているからといっても、その動作が似通っていることが保証されるわけではまったくない、ということ。

2011-02-06 17:56:12
@mizukyf

オライリーの冠ツル本は、やったらCとC++のプログラマを意識していて、Javaばかりやって来た人間としては結構居所ない…

2011-02-06 17:59:40
@mizukyf

これは前にも何度も愚痴ってきたことだけど、C#の仮想メソッド/オーバーライドメソッドの仕組みは、ポリモーフィズムに対する深刻な危機である、としか思えない。

2011-02-06 20:19:59
@mizukyf

シャドウ化されていたメソッドがふとしたことから蘇って、知らないうちに悪さする…何てのはダイヤモンド継承級にたちが悪い。

2011-02-06 20:28:42
@mizukyf

引き続きC#。演算子オーバーロードの実装がstaticメソッドとは… クラスメンバの使い方まちがえてない?って気分。

2011-02-06 23:43:40
@mizukyf

仮想メソッドとかstaticメソッドによる演算子オーバーロードとか、そういうのに構っていても仕方ないわけで、もう、デリゲートに関する章とか読んで、とっとと切り上げてしまおう、という気分。

2011-02-07 00:25:16
@mizukyf

ポリモーフィズムに複雑性と制限を加えることにしたC#。その決定の目的が図りかねる…

2011-02-08 00:11:38
@mizukyf

あとJavaで言われる値渡し/参照渡しの分類法と、C#における値渡し/参照渡しの分類法とで、区別の基準が異なっていることがわかった。すっごい、ややこしい!

2011-02-08 00:15:44
@mizukyf

というか、厳密にいえばJavaは値渡ししかできない言語であり、C#は参照渡しもできる言語だということ。

2011-02-08 00:18:53
@mizukyf

あー。同じシグネチャのメンバを持つ2つのインターフェースを実装→メンバのインターフェース名による修飾→メンバの隠蔽、という話まで来て、もはやダイヤモンド継承問題と大差なくなってきているように思うのは、僕だけ??

2011-02-08 00:37:03
@mizukyf

C#の、オブジェクトとメンバの仕様に関するあまりの錯綜ぶりに、久々のMono環境への接近を考え始めた。もはや試しながらでないと、と…

2011-02-08 00:50:39
@mizukyf

Javaの資格試験の問題作成チームが、C#を題材に同じように試験問題を作成したら、想像を絶するほど難解で、解答者の精神を蝕むものができあがると思う。

2011-02-09 01:16:10
@mizukyf

JavaScripなどの関数使用歴があると、JavaのリスナークラスやC#のデリゲート概念にダルさを感じる。Scalaの関数使用歴があると、JavaScriptの関数リテラルにダルさを(若干)感じる。

2011-02-11 13:44:45
@mizukyf

Javaに対してC#では例外処理を好まず、いわばメソッドローカルでの問題解決を好む、というような話をきたことがある。 #java #ccharp

2011-02-13 00:14:35
@mizukyf

だけど、メソッド定義にそのメソッドがスローする可能性のある例外を列挙する必要がない、という時点で、そもそもすでにJava的な例外処理コーディングが不可能になっている、というほうが正しいと思う。 #java #csharp

2011-02-13 00:15:29
@mizukyf

仮想メソッドとして印付けられていないとポリモーフィズム可能なメソッドオーバーライドができない問題とか、メソッドの宣言にそのメソッドが投げうる事前に予知可能な例外を記述しない点。これだけでだいぶ後退しているように思う。 #java #csharp

2011-02-13 00:26:26
@mizukyf

どちらの問題にしても、クラスのユーザーに、そのクラスやそのクラスの親クラスたちの実装についての知識を求めているようにしか思えない。 #java #csharp

2011-02-13 00:28:40