ここから本文です

JavaScriptの利点を教えてください。

zxv********さん

2014/9/2813:58:42

JavaScriptの利点を教えてください。

特別な開発環境はいらない
クライアント上で稼働しサーバにアクセスせずにHTMLを書き換えられる
動的な処理をしても画面が切り替わらずスムーズな動作を実現できる

とか思いついたのですが。

実際にはC言語やJavaの方が多く使われているような気がします。

この場面ではJavaScriptが最強だ!という場面を教えてください。

閲覧数:
164
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

man********さん

2014/9/2815:07:50

zxvb200hosiさん
JavaScriptが勝る局面ね

マルチプレイヤ・御絵描きチャットが簡単に作れます。

(1) 多くの人に、簡単に使ってもらえる
最近は「C言語で作った*.exeファイルをダウンロードして使ってください」等と言うプログラムは、
「ウイルスを送り込もうとしているのでは?という懸念をもたれて、ダウンロードしてもらえない」とか
「先にJava VMのインストールをしていてください」等と言うプログラムは「使うのが面倒だと思われて、使ってもらえない」でしょう。

下記URLを開いて”RUN”ボタンを押すと、マルチプレイヤの御絵描きチャット・サーバが起動されます。 クライアント端末向けのURLが表示されるので、そのURLをスマートホンに伝えてブラウザで開いてもらえば、マルチプレーヤで使えます。
http://runnable.com/U1IxKJmPnE87np8c/canvas-of-multiplayer-with-nod...
このように、簡単に使えるようなサーバ&クライアントは、C言語でもJavaでも作れません。

(2) 通信機能が標準装備
上記URLのプログラムは、webSocketと言って、何段ものプロクシ・サーバを経由してHTTPプロトコルで通信できて、OSの制限である「4096接続を越える、多数のクライアント端末への、一斉同報」も可能です。
同様な通信ライブラリが標準装備されている言語は、2014年現在JavaScriptとJavaだけです。
C言語では、Socket通信も、一斉同報の前提となるマルチスレド処理や待機処理すら、標準ライブラリになく、ましてや「OSの制限である4096接続を超えるHTTP通信」も、ディファクト・スタンダードなライブラリが存在すらしていません。

(3) 機種依存しないグラフィック描画機能が標準装備
Windows PCだけではなくて、macでも,スマホのiPhoneでもAndroidでも、どの端末のブウザから観ても、同様にグラフィックが表示できて、操作もできるライブラリを標準装備している言語となると、Javaの他にはJavaScript位しかありません。
下記のサイトの画面等、Java言語で記述されていますが、実行時にはJavaScriptに変換されて動いています。
http://gwtcanvasdemo.appspot.com/

(4) C言語より性能の良いことも実証されている
上記URLのように、高度なアルゴリズムを使ってWebアプリケーションの性能を確保するという工夫では、既にjavaScriptはC言語を凌駕しているという、性能比較データもあります。 ただ、Javaには負けていますけどね。

このようなWebアプリの開発における言語の比較は、拙作の智恵袋ノートにも掲載しています。

  • man********さん

    2014/9/2815:32:37

    もうひとつ在った
    (5) Webクライアントとサーバ側とを合わせたコード量を最小化できる。
     例えば、御絵描きチャットの場合、ある一人の人のブラウザ上のマウスポインタの座標{x、y}というデータ構造を、node.jsサーバを経由して、他の人のブラウザまで伝播しなければなりません。
     その時、「電文が{x、y}という2個の数値である」という電文やエラーチェック処理の内容も統一する必要があります。
     その時、クライアント・ブラウザ内で動くコードと、サーバ側で動くコードとを同一の言語で統一すると、電文解析やエラーチェック処理等を 2種類作らなくて済むので、トータルしたコード量を削減できます。
     このような、クライアント&サーバ間のコードの共通化は、Java/Ruby/Python/Google-Dartsなど 増えつつありますが、先鞭をきったのはjavaScriptでしょう。 
    かたや、C言語系は、異なる環境でのコードの共通化は、放棄しているようです。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2014/9/29 09:45:51

成功 たいへん参考になりました!知らないことを知れてよかったです。他の方の回答も参考になりました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

nek********さん

2014/9/2814:49:01

Webブラウザ上で動くクライアントサイドのスクリプト言語としては、よくも悪くもJavaScriptがほぼ一択状態ですね。
サーバサイドの言語としても、最近はNode.jsのおかげで少し普及してきました。

JavaScriptの言語としての強みは、プロトタイプベースであるということでしょうか。
Javaみたいに面倒なクラス宣言をする手間なく、手軽にオブジェクトのクローンを作りながら拡張していけます。
ただ、普通のオブジェクト指向言語として使おうとすると、面倒くさく感じるかもしれません。
プロトタイプベースの仕様をよく理解して使うなら、なかなかパワフルな言語だとは思います。

b0a********さん

2014/9/2814:48:24

質問者が挙げられた点は、JavaScriptというよりかは、Web上で動くプログラミング言語としての特徴ですね。
利点は、Webがプラットフォーム化してきて、様々な環境、形で動くようになってきたので、JSとWeb技術を覚えておけば困らないようになってきた点だと思います。

CやJavaの方が多く使われてるように思えるのは、CやJavaの方が今まで広い分野で多く使われてきたからです。
プログラミング言語というのはそんなもので、必ずしも言語仕様に利点があるから皆が使うのではなく、皆が使っているから皆に使われるものなのです。
ですから、結局は、皆に使われてる、という以上の普遍的な利点を挙げることは難しいです。

まあJavaScriptが最強な場面はという質問に答えるなら、勿論Webでしょう。
こういう作業が得意などとは一概に言えません。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる