- - PR -
JAVAと、.NET 開発工数に差は出るのでしょうか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-20 23:01
ざっとみたところ、どちらも同じコーディングのように見受けられます。
開発の手法にもよると思いますが、ほぼ同じ考えで開発した場合、 工数に差は出るのでしょうか? また、保守についても、差が出るのでしょうか? たとえば、画面まわりは、こっちのほうが圧倒的に工数少なく済むよ等です。 あまり大差ないような気もするのですが。。。。 両方の経験や知識のある方、なんでも結構です。ご意見お願いします! [ メッセージ編集済み 編集者: JAVAQ 編集日時 2006-11-20 23:10 ] | ||||||||||||
|
投稿日時: 2006-11-21 00:01
Webアプリケーションと考えてよろしいですか?
.NETで、どの言語を使うかによっても変わってきますが、C#の場合ですと もともとJavaを参考にして作られた言語のため、似通っています。さらに、 逆にC#のアイデアがJavaに使われるようになってきており、差は縮まってきております。 (とはいえ、言語仕様ではまだまだC#のほうが上ですが) #VB.NETは全然違いますね。 .NETの場合、開発のための環境は、ほぼマイクロソフトがVisualStudioという形で 用意してくれています。フォームエディタ、コーディングエディタ等コミコミなので そういった意味では日本人好みなのかもしれません。Webフォームを作るのにASP を使いますが、あまり意識する必要もありません(知っておいたほうがトクなのに 変わりはありませんが)。保守という意味でいいますと、ソース管理に VSSというのがあり、VisualStudioと親和性が高くなっております。 Javaの場合、オープンソースによる無料のものから、IBMのWebsphereのように 高価なものまで選択の幅はとてつもなく広いです。さらにプラグインの有無に よっても全然変わってきます。オプションのつけ方によってもいかのようにでも 変えられるといった意味では、ちょっと面倒かもしれません。そのかわり、 BPMや企業ポータルなどエンタープライズの分野では一歩進んでいます。 Webの画面を作るには、どの製品であってもとりあえずJSPは覚えておく 必要があります。ソース管理は、ちょっと前まではCVS、最近ではSubversion という強力なツールが出てきております。 あくまで私の主観ですが、工数の少なさは ・さくっと作りたい場合(画面数で30画面以下) → .NETが優位 ・中〜大規模になる可能性がある場合 → Javaが優位 となります。 | ||||||||||||
|
投稿日時: 2006-11-21 09:20
ひらさん、深夜にもかかわらず、ありがとうございます。
はい。webアプリケーションです。 VisualStudioを見てみましたが、画面は、accessと同じ感覚で作れそうですね。 ですが、最初の何もない所から作るのには、早くできるけど、画面数が多く (ほぼ似通ったフォーマットが多いはずです)なってくると、おっしゃる通り、 そのメリットも薄くなっていくような気がします。 そうなると、JSPで、ソース直接触るほうが開発も早く見やすいと思います。 これは、VisualStudio使ったことがないので、直感ですが。。。 JAVAにもそういったツールがあると思うのですが、種類が多く、 なかなか決め兼ねにくいです。 開発の敷居が比較的低いのはVisualStudioをつかった、.NETなのかな? という感じを受けます。 ご意見ありがとうございます。 大変参考になります。 | ||||||||||||
|
投稿日時: 2006-11-21 09:28
携わる開発者の慣れによるでしょう。 同じように慣れていると考えて、あまり差はないと思います。
Visual Studio が直接ソースを触れないかのような言い回しですね。 機能縮小版 Visual Web Developer が無償ですから、一度試された方が良いでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-11-22 11:01
じゃんぬねっとさん。
ありがとうございます。 やはり、想像したとおり、開発者の慣れなのでしょうね。 それと、一度Visual Web Developer試してみます! 私が勤める会社でJAVA+フレームワークの導入により既存言語より、 大幅に開発工数が減るだろうと期待されていましたが、 工数同じか、逆に増大傾向でした。 そこで、次は、.NETで工数削減!の動きが出ているのですが、 私はJAVA vs .net+VB のどれを選んでも、劇的な大差はないのでは?と思い、 このスレッドにてご意見を伺いました。 逆に不安も感じています。 システム開発会社ではないので、いろんな言語を使うことで、 保守性が下がるのでは?と思っています。 将来の新人さんは、入ったその時から一気に覚える言語が多く 大変だろうなと思います。 | ||||||||||||
|
投稿日時: 2006-11-22 23:45
これは、何と比べてでしょうか? 以前の書きこみを見ますと、accessという記述がありますので、もしかしたら MS Accessと比べてということでしょうか? 一般的に、Webは、C/Sより工数が増大します。プログラムがサーバ側で動くこと、 クライアント側のブラウザの都合も考慮しながらではないと作れないこと、 3階層以上の構成になることなどからです。さらに、JavaやC#は、その言語 構造からして、VB6(.Netではない)やAccessのVBAに比べて、きちんと作らないと かえって増大してしまいます。 Accessは、業務アプリを作るのには最適の環境を有しています。テーブル・ クエリ・フォーム・レポートといった要素があらかじめ用意され、ウィザードで 簡易な画面を作ることができたり、業務アプリには必須のグリッドとしてサブフォームや サブレポートを容易に作ることができます。全くプログラミングをしなくても 操作性さえ気にしなければ、そこそこのモノはできます。(ただし、スタンドアロンで あればという制限がつきます。) そのかわり、Webアプリには、クライアントにインストールがいらないという 利点が生まれます。たぶん、C/SやAccessでのインストールの苦労は過去に あったと思います。HDDの容量が足りない、メモリが足りない、インストール されているソフトとの相性が悪い、DBとの接続がうまくいかない、特定の パソコンだとうまく動かない時がある、など。Webの場合、特定バージョン 以上のブラウザが入っていればとりあえず動くので、C/Sのインストールの 時の苦労がなくなると思います。ただし、Webというのは、表示は綺麗ですが 入力に関しては弱いので、操作性が多少犠牲になってしまうことは 否めません。 WebかC/Sかスタンドアロンか?ということは、開発工数のみならずインストール なども含めたトータルで考えたほうが良いと思います。尤も、私は、 たとえスタンドアロンであっても、よほど操作性を要求されない限り業務アプリは Webのほうが良いと思っています。スタンドアロンのつもりで作っても、後で 複数のクライアントからデータを覗けるようにしてほしいという要求が来る ということはよくある話だからです。
私も、JAVA vs .NETの記事やサイトなど見て検討したことがありましたが、 大体は(全てがという訳ではない)C#の言語仕様がJavaに比べてどれだけ 優れているかといった、わりと「MSサイド寄り」のものであり、なかなか 両方を使ってみた、中立的な立場からの色眼鏡なしの意見というのはありませ んね。 昔からコンピュータ言語に慣れ親しんできた人は(自分も含めてですが)、 どうしても言語仕様に目が行きがちですが、最近の動向としてその仕様よりも その言語がおかれた環境のほうにウエイトが移ってきています。.NETには J#というJavaに類似した言語がありますが、たとえこれがJavaと全く同じ 仕様になったからといっても、Java(J2EE)と全く同じにはならないと思います。 逆に、C#をコンパイルして.classや.jarファイルが生成できるようになった からといっても、.NETと同じにはならないと思います。 じゃあ、結局どう比べたらいいの?ということになりますが、Javaの場合ですと Sunが仕様を決め、それに準じたIDEやフレームワークをサードパーティが作る という構成がありますので、選択の幅は思いきり広がります。それこそ コマンドラインでコンパイルするだけで良いという割り切りもできますし、 IDEにフレームワークやオプションをコテコテにつけた重装備にもできます。 それ故に、Javaに造詣が深いスタッフが一人は必要だと私は思います。 どれをどう選んだらいいか…ということは、規模と用途に応じて慎重に選ばなければ なりません。 だからといって、初心者は全く手出しができないのかというとそうでもなくて、 「SunJavaStudioCreator」という、VisualStudio対抗策の製品(無料)が出ています。 これなら、「さくっと」作ることができますが、用途は限られます。 (これは、将来、NetBeansというIDEに統合されることになっています。統合された 後はよく使われるようになるでしょう) .NETは、VisualStudioがほぼお膳立てしてくれていますので、そこの世界で ある程度済んでしまいます。以前の書きこみで、ASPの知識はあまりいらない と書いたのはこのことです。もちろん、ASPの編集画面を開いて記述することは 可能ですが、画面上でプロパティを開いて編集したほうがはるかに楽です。 じゃあ、.NETが全て楽でいいのかというと、一筋縄にはそうもいかない部分も あります。これを山登りに例えますと、近くの山にハイキング気分で登りに 行くのと、エベレスト登頂に行くのでは前準備が全然違うということです。 近くにある山ですと、前準備もほとんどいらず、割と軽装で行ってその日の うちに帰ってこれます。これがエベレストとなりますと、数十人単位で パーティを組んで、どこでキャンプをはるかなど念入りに計画を立て、 食料や衣料、無線機など重装備で望みます。近くの山に登頂できたからと 言って、すぐにその格好でエベレストには行けませんよね。ところが それと同様に、10画面作るのが簡単だから100画面作るのも同じたろうと 甘い考えていて、"遭難"してしまったプロジェクトをいくつも見ています。 私の場合は、この境目を30画面くらいと見ています。これを超えると予想される場合は 大規模プロジェクトとしての準備をしておいたほうが良いということです。 .NETでも、大規模に耐えられる作りにはなっている(はず?)ですが、簡単に作れる というイメージが先行してしまい、それこそAccessに排他制御を加えた程度の プログラムしか出来あがってこないという現象に見舞われてしまいます。
たしかに色々な言語を扱い、収拾がつかなくなるほどになりますと 保守性は著しく低下します。しかし、主となる言語を決めてしまえば あまり苦にならないと思います。 そもそも、昔は事務処理はCOBOL、科学技術計算はFORTRANと相場が決まって いました。その頃に比べたら今はとてつもなく多種多様の言語があふれて います。言語が得意とする分野も違っていますので、それに適した言語を 選ぶのが良いのではないでしょうか? 今の新人さんですが、昔と違って生まれたときからパソコンやファミコンがあり 学校の授業で一度は触れていますから、全くゼロの状態から始めているわけではないので それなりに吸収は早いと思いますよ。 | ||||||||||||
|
投稿日時: 2006-11-23 00:24
開発メンバが周知している言語であれば、短縮できていたでしょう。 逆に "工数が同じ" という結果は、なかなか良い方だと考えるべきかもしれません。
Java に慣れている状況で比べるのは、なかなか厳しいでしょう。 C# であれば、良い結果を期待することはできそうですが。
逆に学習しやすい環境が整ってきていることも忘れてはなりません。(あ、ゆとり教育...) ひとつの G 言語を覚えた後は、それほど苦労になることはないのではないかと思います。 ただ、Web アプリケーションの場合は、ある程度 HTML / CSS などの前知識がないと、(最初は) つらいかも。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-11-23 13:52
じゃんぬねっとさん、ひらさん 貴重なご意見ありがとうございます。
以前の私の書き込みで、 「私が勤める会社でJAVA+フレームワークの導入により既存言語・・・・」とありましたが、 主たる既存言語はRPGです。 ひらさんの、山登りの例えは非常にわかりやすかったです。(ちょっと感動) 結局、いい機能を持った仕組みでも、それを有効に活用する準備(=「開発するアプリケーションの仕様」と勝手ながら解釈させて頂きました)が必要なのですね。 |