- - PR -
特集「私がJavaからC#に乗り換えた10の理由」について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-10 10:21
私は、「.NET固有のコンポーネントから派生した独自コンポーネントを ちょこちょこっと作って、即効でデバッグテストする。 そして、作った独自コンポーネントをIDEに登録すると、ドラッグだけで 自分のいろいろなソリューションで使えるようになる (もちろん)プロパティウィンドウも使える」という一連の流れが スーっと澱みなく進むことに快感を感じています。 いろいろなプログラムを作ると同時にMyコンポーネントライブラリが 自然に作られていきます。 (まさにコンポーネント指向の真髄!?) ちなみに、これってEclipseでも出来るんですか? | ||||||||
|
投稿日時: 2003-07-10 10:38
というのに同意見です。 例えば「理由3」の"JavaBeans(Java Beanじゃなくてね)"とC#のpropertyの比較ですが、確かにC#にproeprtyがありコンパイラでチェックがかかる、は良くわかりますが「嘆かわしい」を2度使うほどに大げさなものなのでしょうか。そんなことだけで「C#を使いたくなっちゃう」ものなんでしょうか。 なんか不当(大げさ)に相手を貶めて、相対的に価値を高めるようにしか見えない点をセンスが悪いと感じました。もちろん記事じゃなくてこれが、人間相手にやった場合センスが悪いことはわかりますよね。 #これが@ITという"メディア"の特集ページじゃなかったら(例えば一記事や広告記事とかUnisysや個人ページに掲載してたら)別に何も思わなかったんだろうけどね。 | ||||||||
|
投稿日時: 2003-07-10 11:41
個人的には、今秋に登場するといわれるJavaの Project RAVE に期待しています。
http://biz.ascii24.com/biz/news/article/2003/06/17/644320-000.html によると、「Visual BasicベースからJavaベースへの移行を促すための強力な武器」 ということなので、簡単なのかな?と思っています。VSが.netになって簡単に なったといっても、覚えることが多くてなかなか使いこなせません。 せめてクラス名とか言語間でも統一してくれればよかったのに... 昔の、VB4を始めて使ったときには、これはどう考えても世界一使いやすい!と 本当に感動したものです。(UNIX , C , viしか使ったこと無かったので...^^ #オブジェクト指向より、デベロッパ指向?の開発環境が欲しい... #今はまだ、やりたいこと以外の手間とか概念が多すぎる気がします。 | ||||||||
|
投稿日時: 2003-07-10 12:48
objectです。
私が前のレスで、 「この状況で重要なのは、所謂イベントを「単一のメソッド」にバインド出来る安全な実体としての「イベント」です。」 と書いた意味は、 「イベントに求められているのは、一つ一つのメソッドに対する、安全なメソッドポインタである。」 という事を強調したかったからです。 英-Ranさんは、「無名Inner Class」に胡散臭さを感じませんか? 何故、こんなに汎用的で重要なものが「無名」で、しかも「Inner Class」なのでしょう? 「delegate」は、基本的な問題と関わっていますから、恐らくこのまま続けても水掛け論になって、意味が無いと思いますので一応これでおきましょう。 話を最初に戻して、私が「delegate」に対する問題を、「イベント」に対する問題に提起しなおした事を思い出して下さい。 私は、「プロパティ」の件もありますが、「イベント」をサポートしない言語に不満を持っていました。 もちろん、Javaに対してもです。 「イベント」を言語として実装しているC#に対しては、実装方法にクレームを付け、 「イベント」を実装していない、Javaに対しては全くクレームを付けないのはどうしてでしょう? 英-Ranさんが提起されている「無名Inner Class」で「イベント」を実装すべきなのは、Javaではないでしょうか? でも恐らく、英-Ranさんの 「たったイベントひとつのためにオブジェクト指向とは馴染まない新たな概念を持ち込むことにもなります。」 という発言に全てが明確に表れているのでしょうね! 言語としての「イベント」が不必要であると考えているのであれば、「delegate」と「無名Inner Class」の議論は不毛です! >ALL 今、ここのスレで起きてる「C#」と「Java」の議論は、非難合戦にしか見えないと思います。 これで良いのでしょうか? 私は、C#に対してはC#ユーザーが、Javaに対してはJavaユーザーが、一番批判的である事が大切だと思っています。 言語に対して批判する権利を持っているのは、まさにその言語を使っているユーザーだと思うからです。 ユーザーが、自分が使用している言語に対して、護りの姿勢に入りだすと、その言語は駄目になると思います。 あらゆるユーザーは、言語ではなく、全ユーザーを護る事、つまり協力する事が大切なんだという事を忘れないで欲しいと思います。 そうすれば、最悪でも議論が非難合戦になる事はないと私は思います。 | ||||||||
|
投稿日時: 2003-07-10 13:17
もし、これがC#に(Javaの)throwsが無いのはこれで良いのだろうか?という疑問と同じと解釈して良ければ、前に見たなと思ったら、C#のMLで自分で振った話題でした。サーバがメンテ中なのでURLを書けませんが、users.gr.jpのC#メーリングリストの377以降のスレッドです。このスレッド自体、かなり古いもの(2001年2月5日〜)ですが、いろいろな価値観での是非の議論が出ています。効率の問題ではなく、その方が良いから、という意見も出ています。 私が設計したわけではないので確実には答えられませんが。おそらく、例外をソースコード上に明示する方式は、ソースコードを記述する時点でどのような例外を投げるか分からないメソッドを扱う上で十分に機能を果たすとは言えないので、C#では取り入れていないような気がします。(汎用的なクラスライブラリを作る場合、リフレクションや動的に読み込まれるアセンブリを呼び出す場合など) 逆に言えば、例外が正しく扱われていることを保障するのは、言語仕様の内側だけでは確実にできないから、別のレイヤーで行われるべき。だから言語仕様の一部ではないのだ、というような考え方があるのかもしれません。(じゃあ、その別のレイヤーとは何かと聞かれても答えられませんが……) このスレで問題となっている元記事の著者はC#を効率重視の言語として見ているように思えますが、必ずしもそうではなく、C#なりの理念があって、それに沿った言語設計が行われているように思います。 一見、C#は何でも取り込む「何でもあり」の言語のように見えますが、実際に使い込んでみると、あえて入れていない機能や、入れても制限を課して自由度を抑えている機能などがあることが分かります。たぶん、それは理念がないとできないことでしょう。 (その理念が正しいかどうかは別の問題として) | ||||||||
|
投稿日時: 2003-07-10 13:26
Delphi, C++Builder, JBuilder だと、何年も前から、当たり前の 機能なのですがね。(^^) | ||||||||
|
投稿日時: 2003-07-10 13:31
良くないと思います。大量の無駄な文字が費やされていると思います。 馬鹿馬鹿しいので、やめることを希望します。 元記事にいくつかの誤認があるのは事実だと思いますから、そこは著者と編集者が協議して、本当に誤認であれば直せば良いことです。 客観的な誤認でない部分は、署名記事なのだから、その著者の自分の考えを述べれば良いことです。それが各自の信じることと違うとしても、世の中に様々な考えを持つ人がいるのは当たり前のことです。考え方の違いは、きちんと議論して解消していくべきものでしょう。結論の押しつけではなく、相手の主張を理解した上で、議論して、議論の中から誰もが納得できる結論を導くように努力すべきでしょう。 | ||||||||
|
投稿日時: 2003-07-10 13:45
> サーバがメンテ中なのでURLを書けませんが、
> users.gr.jpのC#メーリングリストの377以降のスレッドです。 Googleキャッシュ http://216.239.41.104/search?q=cache:gHahqtS7l0QJ:www.users.gr.jp/ml/archive/CS/377.asp+&hl=ja&ie=UTF-8 (貼っていいのかな?) |