- PR -

特集「私がJavaからC#に乗り換えた10の理由」について

投稿者投稿内容
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2003-07-12 15:22
引用:

お犬様さんの書き込み (2003-07-12 14:11) より:
syntax sugarというのは、他の syntax でも表現できるけど、あれば便利な syntax の事を言うのではないでしょうか?


あっ、確かにこの例は駄目ですね!
済みません!
私も、「syntax sugar」は、意味を変ない、分かり易さの為だけの単なる別表記だと思っています。

引用:

お犬様さんの書き込み (2003-07-12 14:11) より:
・setter、getter は、その(広義の)オブジェクトが持つ情報にアクセスするメソッドを記述する。
・プロパティは、その(広義の)オブジェクトが持つ情報について記述し、アクセスする手段を提供する。
プロパティと setter、getter は機能的には近いけれども、思想的にはかなり違う、というように受け取っているのですが、こんな感じで宜しいでしょうか?


思想的にというか、恐らくお犬様さんが仰ってる事は、ほぼ私が言いたい事と同じだと思います。

私がここで言って来たメインは、「プロパティ」だったので、理解してくれる人が現れて、嬉しい限りです!
ここ以外でも、「プロパティ」に関しては話をした事があるのですが、殆ど理解して貰えませんでした。
C#の解説書でも、「プロパティ」に関してシッカリ説明している書籍は、私が目にする限りではないですね。
でも、これはJavaの将来を考えると、かなり大きい問題だと私は思うんですけど、お犬様さんはどう思います?
これが、実際にJavaの改善に向かう事になれば、嬉しいですけど、実際はそう簡単に行かないのでしょうね?
英-Ran
ベテラン
会議室デビュー日: 2002/06/12
投稿数: 55
投稿日時: 2003-07-12 15:26
引用:

ここでの一連の議論も、私の先入観も入っているのかもしれませんが、
Java擁護派の方の主張は「C#のこのような機能はJavaでもこうやれば実現
可能であり、C#の作法はオブジェクト指向から反しているから間違っている」
と、理想主義を元にC#を批判し、その態度はC#擁護派の人よりもより攻撃的
であるように感じられます。

Macは現在ではマイノリティになってしまったので、その一部狂信的な愛好者
の態度がより攻撃的に偏っていくことは仕方ないと思いますが、Javaは既に
業界において確固たる地位を確立しているのですから、Java愛好家が時として
宗教的ですらあるという世間での評価も考慮し、自分の主張が攻撃的・排他的
に偏っていないかと、他の言語愛好者よりも気を配らざるを得ないと思うの
ですが、いかがでしょう?



まったく同じというわけではないとは思うけれど、autumnさんも同じように感じておられるようですね。

http://mag.autumn.org/Content.aspx?id=20030708114324

まあ、あながち間違ってない(というよりも、かなり的確)とは思いますが、だからといって発言に気を配らなければならないということにはならないと思います。何を言うべきか何を言わないべきかは各自が判断すればいいだけの話です。皆が自由に発言することによって初めてわかってくることも多いのではないかと私は感じています。

特に物理学や経済学などを勉強すると、世の中には根拠の無い都市伝説が多く出回っていることがわかったりしますし、それによって「とても大きな損失」を実際に我々が被っていることがわかったりもします(いまだにマスコミや国会では、なぜ日本の経済がよくならないのか延々と議論が続いてますが、この10年の間に経済学者たちの意見はほぼ一本化されていますし、解決策もずいぶん前から用意されています)。

知識ある人たちの中には、得てして「言っても無駄だから」と大人の態度を取る人もいますが、私はたとえ宗教だと言われても自分の思ったことははっきりというべきだし、その発言が間違っていることがわかったときは改めればいいと思っています。Mac対Windowsの論争だって、それによってMacを知り間接的にLinuxデスクトップが改善されるということもあったかもしれませんし、Windowsの開発者たちにも機能の改善を迫るプレッシャーになっていた可能性はあります。

直接的には不毛に見えても、本当はそうではないと私は信じていますが、これも宗教ですので他人に押し付けるつもりはありません。

[ メッセージ編集済み 編集者: 英-Ran 編集日時 2003-07-12 15:27 ]
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2003-07-12 17:04
いつの間にかMacな話題が飛び出していますが(汗)、一応ここは先にMacの話題を出してしまった私から。趣味な話ですが・・・
まず、自分もやはりPC-6001からこの世界に入った一人であります。
当時はpeek,pokeを使ってアセンブラ作ってEPROM焼きをしては殺菌灯の下に持っていったりしてました。
Windowsと出会ったのは3.0 MMEの頃です。まもなくVB2.0が発売され、待望のWinアプリが作れるようになったと喜んでおりました。
それから暫くVB路線でしたが、Webと出会ってからは様々な言語を使うようになり、VBからは離れてしまいました。Macを使うようになったのはそれから後のことで、必要に迫られたのがきっかけです。
Macですが、今となってはMacだからこそ優れているとか劣っているとも言えません。プラットフォームが違うだけ、というのが印象です。(蛇足ですが、Macのマウスは純正は1ボタンですが、WinのUSBマウスを接続するだけで、スクロールホイール付き2ボタンマウスが使えます。)ひとつ気にいったのがMacOS X がFreeBSDベースであることです。

ここまで長くなりましたが、1996年以降、言語に求められる条件は確実に変化しています。
それ以前はStandAloneがメインですが、それ以降はNet(www)上で広範囲にサポートされる
必要があることでしょう。私がVBから離れた理由はそこにありました。故にC#もマルチプラットフォームを進めない限り普及の妨げになるのでは?と言いたかったのです。これはマイクロソフトさんも認識しているがためにCLIの動きがあるのでしょう。(自分にとってこの会議室で得た大きな収穫でした。感謝します。)

JavaとC#を比較するのは意義もあることですし、勉強になることも多かったです。
その視点から言いますと、尾島様に感謝します。しかし、Javaを棄てて乗り換え、というタイトルはJavaユーザーサイドから見て気持ちのいいものではないでしょう?
(恐らくSUN社としても考えてしまうと思う。)
その表現がなければ、すんなりこの記事を受け入れることができたと考えます。

# Macユーザーに対する誤解を招く表現は控えてくださるよう宜しくお願いします。
# 既にマイノリティですし。

[ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-12 17:40 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-12 22:46
引用:

objectさんの書き込み (2003-07-12 13:07) より:
これも「オブジェクト指向」の説明にしては、少し曖昧過ぎるのではないでしょうか?
最低限、ベースである抽象データ型の事を忘れてはいけないと思います。
これ以上は書きません。


 ちょっと待ってください。誰が、ここで、
「オブジェクト指向」の説明をしましたか?
違うでしょう?
元々、「どこがちぐはぐですか」という問いに対しての回答です。
英-Ranさんから補足が入っているように、
私がとり違いをしていたところがありますが、
『delegate、委譲という行為は、オブジェクト指向になじまない』
・・・このことをいうために、
「オブジェクト指向は自分のことは自分でする、が基本であると理解している」
と書いたのです。これを超えるものではありません。
「自分のことは自分でするのだから、
自分でできることを他人に委譲(delegate)するという行為は、なじまない」
・・・十分であると思いますよ?
抽象データ型を、なぜ説明する必要があります?
いや、ベースなんだからといわれればそうですが、
そういうことが議論の種でしたか?なんか、ずれてません?


 で、その後のプロパティ云々も含めると、それはJavaとC#の比較ではなく、
「オブジェクト指向」と「C#の設計思想」の比較になるのではないですか?


 すみませんが、この部分に対しては、以後無視させていただきます。
どうも話が発散するだけで、収束しそうにないからです。
変なように誤解されるのではないかとおそれていますが、
私は話をすり替えられているように感じたので、
この投稿に関しては無視させていただきます。
お犬様
ベテラン
会議室デビュー日: 2003/01/26
投稿数: 67
投稿日時: 2003-07-12 23:14
引用:
objectさんの書き込み (2003-07-12 15:22) より:

でも、これはJavaの将来を考えると、かなり大きい問題だと私は思うんですけど、お犬様さんはどう思います?

仮にプロパティが無いために Java が使われなくなるなら それが Java の寿命だ、というのが私の考えです。プロパティを上手に Java に導入できるのなら構いませんが、下手にプロパティを導入して既存のライブラリとの一貫性を崩すような可能性を恐れます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-07-13 00:02
あらためまして。
引用:

objectさんの書き込み (2003-07-12 13:07) より:
言語とツールの関係に関しては、「meiさん」が少し書いてくれてますが、私が込めた表現の意味を書きます。
「言語は、単なるツールでは無い」の意味は、
ペンチ、鋸、金槌等の今迄の道具とパソコンは、道具ではありますが、違いますよね?
それ以上に、所謂「ツール」・「ユーティリティの類」と「ソフト開発言語」は、異なると言っているのです。
言語は環境その他で選択するから、単なる道具だというのは、極端だと思います。
言語ユーザーは、自分が自覚している以上に、言語に影響されているいう意味です。


 ごめんなさい、私は大工道具とパソコンを、同じ道具であると考えます。
なぜなら、パソコンでは大工仕事ができないからです。逆もしかり。
objectさんは、パソコンを使った仕事/趣味をしているから、
パソコンが特別な道具なのではないですか?
大工さんにとって、パソコンは便利かもしれませんが、
それでも、自分の仕事を手伝ってくれる大工道具は特別ですよ。
どれも、人間が仕事を行う上で必要不可欠な、大事なパートナーです。

 だから、思い入れがあるのもわかります。
私だって、「こういうカッターナイフは滑るからダメ」
というこだわりから、いろいろありますから。
けれども、だからといってそのカッターナイフを使わないわけではありません。
滑るなら、滑らないように力加減を調節すればいいのです。

 言語も同じ。それぞれに特徴があり、長所、短所があります。
長所を生かせるように、短所を補えるように、
それが使う人間の技量ではないでしょうか。
このことから、言語に影響される、とういうのは、私は怖いです。
これは「人間の考え方が、その言語にあうように、影響される」
という意味と理解しました。
もしそうなら、とても怖いです。私の思考は自由で、
言語を超えた発想ができるはずです。
また、特定の言語であっても、あることを実装する方法は、
ひとつではないはずです。その方法は、
他の言語的な発想によってもたらされる場合もあるのではないでしょうか。
実際、私はプログラム開発と全く関係ないところの発想で、
プログラミングを助けてもらったことがありますよ。
逆も、またあります。私が物事の類似性を探しているからだと思います。

#土曜だというのに、増えているなぁ
おじま
会議室デビュー日: 2003/07/06
投稿数: 14
投稿日時: 2003-07-13 08:01
おじまです。

仕事でいろいろありまして書き込みが遅くなりました。あと、まだスレッドに追
いつけていませんので、現在の議論の流れとも関係ありません。まずはこの点を
お詫びいたします。

私の記事を離れた有益な議論が盛んになっている状態で私が発言するのは無意味
な上に有害だとも考えますが、感情を害された方がいらっしゃると思うので。あ
と、せっかくの有益なスレッドを無駄にしないように私のメールアドレスを公開
いたします。腹が立ってどうしようもないという場合は、こちらにお願いいたし
ます。

Ryoji.Ojima@unisys.co.jp

■記事の「間違い」について

「Javaでは実行効率のためにfinalを記述する」という点は明確に間違っていま
す。実際に効率が向上する場合も過去にはありましたが、finalを付加する理由
における実行効率の占める割合が小さなものであることに変わりはありません。
ここは、記述を修正いたします。

■記事の「大げさな部分」について

structを日常的に作成しているビジネス・アプリケーションのプログラマはいな
いでしょう。delegateも同様です。ではこれらの機能は不要で誰も使っていない
のかというとそんなことはなく、.NET Framework Class Libraryの中で大量かつ
有効に使われています。ここは、前提を補足いたします。

■記事の「書き方」について

くだらない例え話を。北斗の拳の世界では強さがすべて。エースをねらえ!の世
界では足の長さがすべて。ケンシロウは足が長くないとか、コーチは強くないと
か、このような評価はナンセンスであることはいくら私でも承知しています。そ
して、様々な方が指摘されたように私の記事の10の理由の部分はこのナンセンス
を強行しています。

もう一つくらだらない例え話を。我々が購入するのは少年ジャンプだったり、週
間マーガレットだったりします(単行本は無視させてください)。私の記事はC#
という点に絞って書いていますので、乗り換えという視点で見た場合は不十分で
あることも様々な方が指摘された通りです(理由の9と10はどうしても書きたか
ったのとC#や.NET Frameworkの特徴を良く表現しているという理由で無理に入れ
ました)。

ナンセンスを強行したのは、C#の設計思想を浮き彫りにする方法を他に思いつか
なかったためです。C#という言語仕様にのみ注目しているのは、.NET Framework
の設計思想はC#という言語仕様のレベルにも明確に現れており、前提知識を必要
とする.NET Frameworkより理解しやすいと考えたためです。

私の能力不足と少しでも多くの方に読んでいただきたいという感情が空回りした
ため、タイトルや書き方で混乱が発生してしまいました。乗り換えた理由が“直
接”書いてあると考えて貴重な時間を消費してしまった方や、“Javaの視点では
”問題とはならない点をつついていると感じた方、申し訳ありませんでした。

■私の「希望」について

何かをお願いする立場にないのは重々承知していますが、一つだけ。

実装効率と実行効率を向上させる個々の機能ゆえにC#が良いのではなく、様々な
機能を貪欲かつ整合性を持って取り込んでいるのがC#の素晴らしいところです。
そして、C#の問題は様々な機能を取り込んでいるがゆえにシンプルではないとこ
ろです。

ここまで認めていただいたうえで、“私の記事の問題点の指摘なのかC#とJavaの
相違点に関する議論なのかを明確にして”論じていただけたらより有益な議論が
可能になると考えます。
summy
会議室デビュー日: 2003/06/10
投稿数: 2
投稿日時: 2003-07-13 15:48
おじま様

 もしよろしければ教えてください。
 ソフトウェア開発環境展の専門セミナーの講演項目に挙げられていた
 「私がC#に乗り換えた5つの理由」は何だったのでしょうか? 
 

スキルアップ/キャリアアップ(JOB@IT)