質問 |
||
| QNo.3707021 | Java言語の利点の一部として以下のものが考えられると思うのですが,それぞれの利点のその理由を教えて頂きたいです. | |
|---|---|---|
| 質問者:latex |
Java言語の利点の一部として以下のものが考えられると思うのですが,それぞれの利点のその理由を教えて頂きたいです. 1.ネットワークプログラミングに適している 2.可読性が高い 3.GUI開発に適している |
|
困り度:
|
||
| 質問投稿日時: 08/01/23 19:37 |
||
回答 |
|
| ANo.6 | おそらく「バージョン非限定」だと思うので、好き勝手に回答してみる。 1.ネットワークプログラミングに適している (1)ソケットプログラミング[データグラム通信、マルチキャスト] →ファイル入出力とマルチスレッドの基本が分かっていれば、後は既存のクラスライブラリを呼び出すだけですね。 (2)サーバサイドプログラミング[Servlet,JSP,EJB,・・・] →HTTP通信ならややこしい部分はサーブレットコンテナが代わりに処理してくれますので、プログラマは業務ロジックの方に専念できます。それ以外でも、javax.servletパッケージを用いることで、独自の通信プロトコルによる利用が可能。 2.可読性が高い JSPプログラミングについて言えば、従来までは <% と、 %> を用いたスクリプトレットが主流でしたが、これをHTML内でたくさんコーディングすると、XML形式が得意なWebデザイナーさんからは可読性が低いと不評でした。そこで登場したのが、以下の様々な新技術です。 ・標準アクション ・JSTL ・カスタムタグライブラリ ・EL式 ・タグファイル 3.GUI開発に適している (1)GUI「による」開発に適している IBMから派生した「Eclipse」や、Sunから派生した「NetBeans」など、無償の統合開発環境(IDE)が一通り揃っていますね。もちろん、各種プラグインによって、機能拡張も容易です。 (2)「既存の」GUI「を用いた」開発に適している インターネットが登場する前からもクライアント・サーバ・システム(CSS)は存在していましたが、従来まではサーバソフトウェアが更新されると、クライアントソフトウェアも同様に逐一、更新作業を行わなければいけなく、非常に不便極まりないものでした。このような独自のクライアント技術を利用したものを特に「ファットクライアント」と呼びます。 それに対して、既存のWebブラウザ(I.E.とか、Firefoxとか。)などを利用したものを特に、「シンクライアント」と呼びます。こちらの方であれば、ソフトウェアの更新はサーバソフトウェアだけでよく(本社にあるサーバマシンだけが対象で、各支店ごとにあるクライアントマシン上のブラウザなどは、今まで通りの使用が可能)、データベースなどの処理もサーバ側で行われるので、負荷分散などいろいろな利点があります。 但し、それでもWebブラウザ上で利用できるGUI機能(JavaScriptなど)には色々と制限があるので、それをカバーする技術として登場してきたのが、「Flash」をはじめとする「リッチクライアント」ですね。(ちなみに、これはJavaではない。) |
|---|---|
| 回答者:choconamacream | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/01/28 02:01 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.5 | >それぞれの利点のその理由を教えて頂きたいです. latexさんが利点と考えておられるものは、特にJAVA言語が 他言語より優れているものとは言えません。 どうして、これらがJAVAの利点だと思ったのでしょうか? >1.ネットワークプログラミングに適している サーバープログラミングと混同していませんか? ネットワークプログラミングであれば、処理速度の高速性 を求められる事が多いのでC/C++の方が適しています。 >2.可読性が高い オブジェクト指向のプログラム自体、一般の生活からは なじみが薄いので考え方を理解できていなければ、むしろ 可読性は低くなります。 >3.GUI開発に適している 「GUI開発も」できますが、単なるGUI開発であれば他言語 にもっと適しているものが多数あります。 |
|---|---|
| 回答者:don_go | |
| 種類:補足要求 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/01/27 12:23 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.4 | かなり無理やり利点を挙げるとすれば、 1.ネットワークプログラミングに適している Javaは各種OSで動くので、サーバの種類が変わってもプログラムを作り直さなくて良い。 JVM上で動くのでWindowsでもMacでもLinuxでも(基本的に)問題ない(はず) 2.可読性が高い オブジェクト指向、デザインパターン、Frameworkをふんだんに取り入れているため もしかするとこれが理由の一つかもしれない(かなり異論が出そうな気がするけど) 基本的にこれらは「なくても構わないけどあると便利」というもので、 プログラムや設計の効率を上げるためのもの。 こういったものを理解・取得し、採用することによって、 ある種の前提条件、コードの読み方、考え方を揃えやすい。 しかも、自分の会社独自のものではないので、その辺の本やWebでも習得可能。 おまけに使いまわしが利くので、一度理解しきったらそれなりに使える。 これが可読性の高さにつながる可能性はある。 ただし、ハードルが高く、なかなか取得できないので、 「逆にコードがまったく理解できない」という欠点も持つ。 ※おまけに、中途半端に理解していると余計に混乱を招くことも多い。 3.GUI開発に適している ?よく分からないので補足をお願いします。 個人的にはほぼ標準でRADツールがあるVB.NETの方がGUI開発はしやすいと思う。 もし「Webシステムで」と限定しているとすれば、 Frameworkが揃っている、と言えなくもないかもしれない(でも根拠としては弱いな…) >Java言語の利点の一部として以下のものが考えられると思うのですが 「考えられる」と思ってるなら、それを挙げてもらった方が意見が書きやすいです。 上で挙げた項目も、他の言語でも既に実装済みのものも多いし、 条件も多く、何と比べて利点と言えるか、など難しい所も多いです。 |
|---|---|
| 回答者:neko_noko | |
| 種類:補足要求 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/01/26 14:49 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.3 | #1さんの回答とほぼ一緒です。 ただ >3.GUI開発に適している は全く逆(×)だと思います。 もともとJavaは「どんなプラットフォームでも同じコードで動作する」という発想を主眼において設計された言語です。 この発想は移植性は高まる代わりにそのプラットフォームの特性を消してしまう事にもなります。 例えばWindowsGUIの高度な機能を使う事はできなくなりますね。 一般にGUI開発に適していると言えるのはVisualBasicやDelphiなど高度なRADツールを持った言語です。 Javaの特性(≒利点)の一つとして「セキュリティ」が挙げられます。 VM(Virtual Machine)上で中間バイトコードを動作させると言う仕様なので、 OSのコア部分を直に叩くと言う事がありませんし、 ガードがVMで掛かっているためOSを巻き込んで落とすということが起こり難くなります。 (ただし0%ではありませんが・・・) |
|---|---|
| 回答者:piyo2000 | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/01/26 09:35 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.2 | うーん、Javaの利点として、質問者さんがあげられた3項目を利点としてあげている書籍を読んだことありません。開発経験から個人的な感想を言えば 1.ネットワークプログラミングに適している 2.可読性が高い 3.GUI開発に適している -->上記3点について、経験した言語の中では、Javaがいちばんやりにくかったです。質問者さんは、なんでそれらが利点だと思われたのでしょう?もし、自分の経験からでしたら、人に質問しないでもいいですよね? |
|---|---|
| 回答者:lv4u | |
| 種類:補足要求 どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/01/23 21:49 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.1 | 1.○ ネットワーク系のライブラリが充実しているので、ネットワーク(特にWeb系)プログラミングに適している。 2.× 可読性は、プログラマの技量や規範に基づく物なので一概に高いとはいえない。読みづらいプログラムを書くのは非常に簡単。 3.△ GUI系のライブラリを使うにはそれなりの習得期間が必要かと思う。使いこなせればかなり楽だが、習得に難があるかもしれない。 その他の利点として、 4. 他のプラットホームへの移行が容易。 元々、中間言語的なコンパイルをするし、ライブラリも各プラットホームごとに用意されているので、移行するのは容易 …かもしれない。 |
|---|---|
| 回答者:edomin2004 | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/01/23 21:30 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |