- - PR -
特集「私がJavaからC#に乗り換えた10の理由」について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-06 02:13
尾島様>
先ほどは失礼しました。 折角お越しくださったところでお伺いしたいことがあります。 企業として開発言語系を切り替えるとなると、システム全体の再構築や社員教育 などで結構大きな出費となることがあると思います。 また、他部門や関連会社との整合性も考慮する事を考えますと、個人の意見を このような場に反映させるのは非常に難しいことと存じます。 これをお伺いするのは的外れと心得ておりますが、導入後の様子の一端でも 聞けたら、と考えております。 よろしくお願いいたします。 [ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-06 02:19 ] | ||||||||||||
|
投稿日時: 2003-07-06 12:28
どうもVMには手を入れないみたいですよ。 くわしくはこちら。 -2003 JavaOne Report 3rd Day TS-3072 Forthcoming Java Programming Language Featurersで、「VM の変更はなし 」と言ってるみたいです。 metadata(TigerではAnnotationって言うのかな)なんかはVMいじらないと出来ないんじゃないかなって思うんですけどね。 #個人的には @metadata って表記は「ちょっと...」って思うんですけど。 あと、このスレッドの話題にもなってますが、Tigerからはスレッドプーリングも使えるようになります。 -2003 JavaOne Report 4th Day どっちにしろJ2SE1.5が出ない事には、どうにもなりませんが。 仕事で使うにはJ2EE1.5まで待つのかな。 #そのころまで、はたして自分はJavaをやってるんだろうか... | ||||||||||||
|
投稿日時: 2003-07-06 13:04
objectです。
私は、尾島さんと同じ意見も沢山あるんですが、一部異なる意見です。 私は、これからのソフト開発言語は、全てオブジェクト指向だと思っています。 だから、オブジェクト指向という範疇では、最早比較すら出来ないと思っています。 私は、SmallTalk等一部は別にして、殆どの言語は「Class指向」の言語だと思っています。 Javaもそうだと思っています。 それに対して、Delphi・C#は「コンポーネント指向」の言語だと思っています。 具体的に言えば、 C++⇔Java⇔Delphi⇔C# の間で「Class指向」から「コンポーネント指向」に変化していると考える訳です。 ※これは、あくまで「コンポーネント指向」でみると、という意味です。 次にpropertyに付いてですが、 確かにpropertyは、コンポーネントに関連して問題が表出しました。 でも、私はそれ自体はコンポーネント以前に重要な概念だと思っています。 言語に於けるフィールドは、カテゴリとしてはデータ概念ですが、実装概念です! その証拠に、パブリックにするのは誤りです! 私は、 「propertyは、オブジェクト指向ソフト開発に於いて、唯一のデータカテゴリとしてのインターフェース要素」だと思っています。 | ||||||||||||
|
投稿日時: 2003-07-06 16:57
C#って、ほとんど Delphi + Java なのに、Delphiについて全く触れてある記事ってないですね。昔からDelphi(正確にはC++Builder)を使っていた人間としては寂しい気がします。
structの設計について、不満が一つあります。 それは、Point p2 = p1; というコードを見たとき、Pointが参照型か値型か知らないと、参照が共有されるのかコピーが作られるのかわからないということです。これはまずいと思う。 しかし、ここまでそっくりだと、DelphiやJavaがかわいそうな気がする。著作権とかは問題ないのだろうか。(でも性能がいいからやっぱり使ってしまう自分がいる・・・) [ メッセージ編集済み 編集者: ocean 編集日時 2003-07-06 17:34 ] | ||||||||||||
|
投稿日時: 2003-07-06 18:24
objectです。
私は、 「C++⇔Java⇔Delphi⇔C#」 という形で「Delphi」との関連に言及しましたが、 C# = Delphi + Java とは考えていません! 同じ形でかくなら、 C# = C++ + (Delphi + Java) だと考えます。 ただ、Delphiはコンポーネント指向を学び、体験する上では、とても良い勉強にはなりましたね!
参照型か値型かは、IDEを使っている場合「IntelliSense」で表示されますから、そんなに問題は無いと思いますよ?
私は、そうは思っていません! Delphiと似ているのは、C#の作成者がDelphiを作成した中心人物(?)であった、という事の単なる結果だと思っています。 また、Javaと似ているのは、双方ともC++からの派生言語であるという事と、インターネット・セキュリティその他の環境要因による結果だと思っています。 私は、C#はとてもオリジナリティの高い言語であると思っています。 ここで、著作権等の話題を出しても余り意味が無いので、もっと技術的な事を議論しましょうよ! | ||||||||||||
|
投稿日時: 2003-07-06 20:50
>> marukaさま
うぅ、謙遜までかっこいい。ネタマシイ。 marukaさまのように両方を使いこなすのは特別としても、Javaの人が洒落でC#を 勉強する程度はやっても良いと思います。もちろん、C#の人がJavaを勉強するの も。 Javaの人はより実際的な世界を学べて、C#の人はより美しい世界を学ぶことがで きると考えます。 #FortranとCOBOL、PascalとC、SmalltalkとC++、そしてJavaとC#。 #ずっと同じことを繰り返しているだけなのかも……。 -------- >> Ken-Labさま 現在の私の役割は晒し者になることで、現在の私の目的は.NET Frameworkを世間 に広く知っていただくことなので、気になさらないでください。.NET Framework の知名度が低くてビジネス面でちょっと辛いんですよ。本当にありがとうござい ます。> Ken-Labさまと発言してくださったみなさま。 導入の様子。プログラマの教育期間は、効率が出るまで一ヶ月、アーキテクトの 場合は基礎ができるまでにやっぱり一ヶ月程度でした。結構お金はかかったみた いですけど、ほら、我々はグゥの音もでない立場なので。とほほ。 参考駄文:http://www.unisys.co.jp/club/net_view/20030203.html システムの再構築は、基本的にやるべきではないというスタンスを取っています。 インフラストラクチャを統一するメリットは大きいですけれど、それは現実的で はないと考えます。既存システムをうまく統合するほうが.NETらしい考え方なの ではないでしょうか? 参考駄文:http://www.unisys.co.jp/club/net_essence/no08.html #媒体がプログラマ以外向けだったので、かなりアバウトです。スレッドのモデ #ルが異なってパフォーマンスが出ないとか、そもそもCOMを意識していない場 #合が多いとか、EAIでつなげた方が良いとかを考慮していません。 #ユニシスの基本方針は再構築ではなくて統合なんだなと軽く考えてくださると #助かります。 移行にともなう混乱はあまりありませんでした。というのも、移行元がVisual Basicという人が多くて、元が低レベルだとどんなものでもすげぇ便利だという ことになっちゃいますから。……あう、情けない話ですね。 あと、ユニシスはJavaもやっています。やっぱりJavaが好きという人は多く、彼 らはJavaをバリバリやっています。私は、適材適所が現実解なのではないかと考 えます。全てがMicrosoftというのはやっぱりアレですし……。 -------- >> いまいさま また恥をかいてしまいました。すばやい訂正ありがとうございます。 VMに手を入れないでやるなんてすごいですね。スレッド・プーリングも可能にな りますし……。J2SE 1.5が待ち遠しいですけど、C#な私としてはすげぇ微妙です。 J2EEが対応するのはいつごろになるのでしょうか? -------- >> objectさま おっしゃるとおり。たしかに、オブジェクト指向を搭載していない言語は最近は みあたりませんね(XSLTとかは例外かも)。 私の論理はオブジェクト指向以外の技術をどこまで許容すべきかという観点から のものですが、objectさまのようにオブジェクト指向そのものの変化で捉えた方 がよりはっきりするかもしれません。自分の能力不足が恥ずかしいです。 あと、objectさまのpropertyに関する部分を読んでつらつらと考えたこと。 -- オブジェクトは自らのステートに基づいてメッセージを処理する。そして、その 過程においてオブジェクトのステートは遷移する。この過程では、どこでもステ ートを表に出す必要はない。ただし、実装上はステートを設定・参照する仕組み が必要である。コンポーネントという形での利用とはインスタンスでの利用であ り、コンポーネントがヨーイドンで動き出すためには初期に適切なステートを設 定しなければならないからだ。 -- ヤバイっす。こんな簡単なことをobjectさまの発言を読むまで気が付いていなか った。こう考えるとpropertyをパブリックにするのはおかしいですね(objectさ まの書いたことを間違って理解していたらごめんなさい)。 でも、propertyをパブリックにするやり方で普通にプログラムを作ることが可能 だというのも現実だと思います。何かもっと根本的なところで考え方を変えなけ ればならないところにきているのかもしれません。objectさまのコンポーネント 指向の進化ということで、その新しい技法の名前はオブジェクトコンポーネント 指向だな。 -------- >> oceanさま 世間でDelphiについて触れた記事がない理由はわかりませんが、この記事で Delphiに触れていないのは単純に私の勉強不足です。本当にごめんなさい。 でもoceanさまとobjectさまが来てくれたからだいじょーぶ。本当にありがとう ございます。 値型だか参照型だか分からない問題は、雑誌のコードを見た場合などに私もしみ じみ感じます。ハンガリアン記法はものすごく嫌いだったのですけれど、C c() とC* pC = new C()なんて時には便利だったんだなぁと思います。あっ、letと setでも良いかも。 -------- >> objectさま 途中でDelphiから降りてしまった自分が恥ずかしいです。Delphiを真面目にやっ ていれば、objectさまとoceanさまの議論に参加できたのに……。 あと、C++の方。ぜひ参加してください。立場上言えないのですけど、実は私C++ 信者なんです。 | ||||||||||||
|
投稿日時: 2003-07-06 21:53
>> objectさん
すみません、ここが言語スレッドだとの認識が薄かったです。 ある簡単なゲームを C++Builder, Delphi, Java, BeOS(C++), C# で実装し比べたりしているのですが、他の環境では移植に何日もかかったのに、C# の時は Java のコードをコピーして、WinForms と [property][virtual,override][deligate] は Delphi の知識で組んで、他のクラスは名前を変えるだけで、一日で完了したのです。ロジックの変更は全くありませんでした。言語もですが、特にライブラリが酷似していることに衝撃を受け、「ほぼ Delphi + Java」 と書きました。もちろん、using 文、例外に関する規則の緩和、継承を:だけで書けるのは便利だと思います。また、他にも言語機能はあるのでフェアではなかったかもしれません。
秀丸エディタで組んでます・・・ >> おじまさん
よろしくお願いします。 [ メッセージ編集済み 編集者: ocean 編集日時 2003-07-06 22:01 ] [ メッセージ編集済み 編集者: ocean 編集日時 2003-07-06 22:04 ] | ||||||||||||
|
投稿日時: 2003-07-06 22:29
こういう記事いいですね。
私は、C++からC#に乗り換えました。 継続プロジェクトではC++も、まだ使いますが、新規プロジェクトは (顧客の要望等がないかぎり)C#にする予定です。 私が乗り換える理由は、開発の生産性、保守性が高いからです。 |