- - PR -
特集「私がJavaからC#に乗り換えた10の理由」について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-13 17:19
なんかエライコトになってますね。このスレッド。
横ヤリ入れますが、SODECのことは、このスレッドとは関係ないと思うんですけど。 「おじま氏のネタ」という点では一致してるんでしょうけど、この事聞いても、あんまり有意義とは思えないけど。 メールアドレスも公開してるようなんで、直接聞いたほうが、向こうも答えやすいんじゃないでしょうか?>summyさん | ||||||||||||
|
投稿日時: 2003-07-13 20:58
いまい様のスレッドに便乗してすみませんでした。
私はJavaもC#も良く知らないので、違いをもっと知りたかっただけです。 それに理由が10から5に減ったので興味が湧きました。 おじま様の仕事の邪魔になると悪いので、直接のメールは控えます。 | ||||||||||||
|
投稿日時: 2003-07-13 21:07
一通り読んでいて言おう言うまいかを悩んでいたのですが、やっぱり議論すべき前提がみんな微妙に違っていますよね。。 言語仕様が完璧かどうかの議論に対して実行速度やメモリーリークなどの実環境の話って同居できるようで出来ないですよね。あと、度々出ていますが、実ビジネスで利用しなければならない状況って、言語仕様なんか二の次って事もありますよね。プログラムに限らず、良い技術(仕様)が一番ではなく、一番利用されている物が一番なわけですよね。あとはプログラマ自身が感じる使いやすさってのは個人差が大きいと思います。 まあ、もとの記事自体は現実の世界での話を元にしてると思いますが、ビジネスを全く考えない言語仕様の議論なのか、実ビジネスでの議論なのかを明確にしてもらった方がより有益な議論になるかと思います。 | ||||||||||||
|
投稿日時: 2003-07-14 13:22
私は、絶句してしまいました。 この意見に対して、何の反論も出て来ない事が私には悲しいですね…。 私は、Javaの「データのカプセル化」の問題を、放置してはいけないと思い、ここで取り上げました。 私も少し疲れました。 このレスも出すのを止めようかなと思いましたが、これで最後にします。 尾島さんは、 “私の記事の問題点の指摘なのかC#とJavaの相違点に関する議論なのかを明確にして” と書いておられますが、 私の発言の発端は、尾島さんの記事が、 「この方式には実装効率と実行効率の2点で問題がある。」 と「プロパティ」を実装効率と実行効率でしか見てない事に対する反論です。 このレスは、bubunyaさんが、オブジェクト指向に於ける「データのカプセル化」をその程度にしか考えていない、というただそれだけの事だと思います。 「言語仕様」と言っても、色々ありますから、大した問題で無い事も、もちろんあると思います。 私も、それ位の判断は出来るつもりです。 「プロパティ」つまり「データのカプセル化」は単なる「言語仕様」の問題では無く、オブジェクト指向に於いて、本質・大前提だと思います。 普通は、 《この様な大前提が「実行速度やメモリーリーク」の議論をする段階にまで持ち越される事は殆ど無い》 というだけの事ではないでしょうか? ※この事が、オブジェクト指向を看板に掲げるJavaに於いて、今迄放置されて来たという事が、私には本当に驚きです。 「プロパティ」の概念は、これからも多くのものを生み出すと私は思っています。 Javaがこの事を無事乗り越えると、胸を張って今迄通りの道を、否今迄通り以上の道をもっと力強く歩めると私は思います。 もしJavaが「データのカプセル化」の問題を放置するのであれば、「C#」と対等になる事は、とても難しいと私は思っています。 私の意見に反対である人は、読み流して下さい。 皆さん、今まで付き合って頂いて、有難う御座いました。 | ||||||||||||
|
投稿日時: 2003-07-14 14:12
ある意味でYESです。でも、これを書いた時には「データのカプセル化」の事は考えていませんでしたし、そもそも特定の部分に対して書いたつもりはありません。 object氏のように
と考えている方もいれば、それ以外の人も居るのではないかと感じたのです。 せっかく技術的に面白い話をしているのですから、もう少し個々の部分で別スレッドにすれば良いと思ったのです。 10の理由の個々でも良いでしょうし、interfaceだけの話(Javaの方にありましたが)でも良いでしょうし、はたまた技術論抜きのマスメディアでの記事と現実とのギャップとかでも良いかと思います。
Javaの会議室での意見がどうなるのかも見てみたい気はします。 | ||||||||||||
|
投稿日時: 2003-07-14 14:18
>「プロパティ」つまり「データのカプセル化」は単なる「言語仕様」の問題では無く
>、オブジェクト指向に於いて、本質・大前提だと思います。 >※この事が、オブジェクト指向を看板に掲げるJavaに於いて、今迄放置されて来たと >いう事が、私には本当に驚きです。 多分,オブジェクト指向を全然理解していないからではないでしょうか. ここでいう「データのカプセル化」というのは,極めてオブジェクト指向的で 「ない」設計のようです.そもそもフィールドは実装依存の部分なので,外部から は意識すべきものではありません.外部から意識するような設計や仕様になって いると,将来実装を改良する際の妨げになりかねません. そもそもゲッター,セッターにしてみても,使わないわけじゃないが お世辞にも勧められたものじゃない. だから,おそらくC#でいう「プロパティ」というのは,オブジェクト指向 を分かってるプログラマーならば,可能な限りその利用を避ける危険な機能 だと考えられます.全く使わないし必要ない,むしろ危険性の方が高いくらい だと.VBやC++のプログラマーにとっては便利なのかもしれませんけどね. | ||||||||||||
|
投稿日時: 2003-07-14 15:41
>ここでいう「データのカプセル化」というのは,極めてオブジェクト指向的で >「ない」設計のようです.そもそもフィールドは実装依存の部分なので,外部から >は意識すべきものではありません.外部から意識するような設計や仕様になって >いると,将来実装を改良する際の妨げになりかねません. そもそもプロパティが、フィールドの実装を外部から意識しなくてもすむように してくれるものではないのでしょうか? 第一、プロパティ自体は動的に生成される値、すなわち、フィールドではなくとも 言い訳ですし・・・。 >そもそもゲッター,セッターにしてみても,使わないわけじゃないが >お世辞にも勧められたものじゃない. 同じようなアクセス用途を複数実装する場合、 ゲッター,セッターではない別な形(ネーミングも含め)を それぞれ実装する方がのお勧めなのでしょうか? アドバイスをお願い致します。 > >だから,おそらくC#でいう「プロパティ」というのは,オブジェクト指向 >を分かってるプログラマーならば,可能な限りその利用を避ける危険な機能 >だと考えられます.全く使わないし必要ない,むしろ危険性の方が高いくらい >だと.VBやC++のプログラマーにとっては便利なのかもしれませんけどね. C#のプロパティについては、 http://www.jaggersoft.com/csharp_standard/8.7.4.htm にもありますが、またここのサンプル http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_012/cs2_012_03.html#cs1206 も、危険性が高い使用方法なのでしょうか? 多分、C#でも、Javaで悪夢を統べるものさんのお示しになりたい記述は 可能と思います。参考にさせて頂きたいと思いますので、 サンプルまたは、URL等、ご享受をお願いできないでしょうか? そもそも、ある意味において一番重要なことかも知れませんが、 悪夢を統べるものさんは、プロパティの記述形式よりも、 foo.setB(foo.getA() + foo.getC()); の形式の方がクールで可読性のある記述と お考えなのでしょうか?それなら、納得が参ります・・・。 悪夢を統べるものさんのご意見、アドバイスをお願い申し上げます。 | ||||||||||||
|
投稿日時: 2003-07-14 17:30
「私がどの言語からもJAVAに乗り換えなかった2の理由」
1.嫌いだから。(単純に) 2.宗教家の言語だから。(他への攻撃が大好きな人のための言語) ただの道具にそんなに熱くなりなや。ほんま。 くだらん。 |