• ベストアンサー

スクリプト言語でおすすめのもの

閲覧ありがとうございます。 Web系の言語を習得したいと考えております。 アセンブラ、C、COBOLしかできないのですが、 スクリプト言語でオススメがありましたら、教えてください。また薦める理由がありましたら、記載をお願い致します。(JavaScriptが良いと知人からは聞いています) あと、疑問なんですが、スクリプト言語はインタプリタと理解しているのですが、命令の解釈はWebブラウザがやっているのでしょうか?それとも実行環境単独が存在するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>Rubyは国産なので学んでみたいという思いは まあ、そのような観点で選んでも、在りですね。いろんな側面を見る必要があります。他の方が指摘しているように、Webテクノロジー全般について、質問内容からすると、始めないとだめなようですね。 と言うことで、概要(歴史)についてちょっと触れます。 サーバーサイドスクリプトは、必ずしもスクリプトで在る必要が 無い と言うところから始めないと。 あなたが、できるといった、アセンブラでもCでもかまいません。もちろんアセンブラだと、Webサーバーなどに繋ぐミドルを自作しないとだめかもしれませんが・・・ 単純に言えば、シェルスクリプト(DOS、B-Shell, C-Shell, etc) からの標準出力がクライアントブラウザに表示される内容です。 なので、Java、C++、C#で作成されているWebアプリがたくさんあります。とくにWebアプリレベルになると、実行モジュール(バイナリーなどにコンパイルされている物)で在る場合の方が多いです。 たとえばサイボーズなどのグループウェアーなどEXEファイルですよ。 というのもWebページのこんかんはHTMLファイルですが、サーバー側で実行して、それをHTMLとして吐き出させる仕組みは、Webサーバーの機能だからです。それぞれの出力をWebのプロトコルに載せるのに、Webサーバーに、それぞれ仕組みを(今では設定するだけ)組み込む必要があり、各Webサーバーでは何の言語から(ファイル形式)からの出力が可能なのか、明確にして、設定ファイルに設定するだけできるようになっています。 Apatchなどは、フリーですので、後からどんどん使いされていますが、元がフリーなので、フリー(お金をかけずに)できる言語を最初に取り入れています。特に大学レベルで開発が進んだので、学校で教えている(そこから発生しているもの)が最初に取り入れたれています。 なのでマイクロソフトが提供している物なんか、後回しです。というより、アンチマイクロソフト系の方がつくっています。 ではマイクロソフトはIISというものですね。この2つのWebサーバーのどちらを使うかによって、スクリプト50%決まります。たとえば、IISでは、ASP.NET、.Net、(フレームワーク) など、VBScript,JScript, VB, C#, BATが基本で当初から使え、すいしょうされていました。もちろんバイナリーの実行モジュールもデフォルトで使えていました。 しかし 商用、大学、など、Apatche などを使い成功して、普及してしまうと、その配下で多用されていた、Perl、B-Shell, PHPも使えるように機能強化してきました。 逆に業務アプリ系だと、Netscape=> Sun => Oracle と買収されてきた、NetsvapeのWebサーバーも使われていて、これはJavaとの組み合わせが最も、適していました(本家なもんで)。 というのも、ローカルのリソースにアクセスしたり、デバイス制御、DBアクセスなど、通常のクライアントソフト、サーバーソフトでできる事が、PHPなどのスクリプトレベルではできないのは、アセンブラを経験しているかたなら、よくご存知で。 なので業務アプリ、などのWebアプリは当初から、C++、Javaなど、デバイス制御など何でもできる言語で作成されています。 その逆に、単純な商用サイトで、ショップ等、売買や宣伝だけのWebサイトには、そんな機能必要ありませんよね。 そうすると、学生がならったものや、初心者でもわかりやすいスクリプト言語が、それらの分野で普及したのです。 現在はPHPでも、JScript(マイクロソフトのオリジナル、JavaScript)でも、同じようにRDBMSなどのDBに簡単にあくせすできるように、モジュールがそろっています。もちろん、どちらのWebサーバーでも。どのプラットフォームでも。 で、この技術を身につけて、飯のねたにしたければ、フリーでやるなら(つまり専門職)、Java, C#, C++ , PHP, ASP.NETをまんべんなく、習得する必要があります。 しかし、たとえばネットショップとか、企業のHPとかのれべるであれば、ほとんどがApatche+PHPです。 業務アプリは、Java, C++、ASP.NETで、これら複数を組み合わせている事が多いです。たとえば、業務用だと、カスタマイズをエンドユーザーに許可するばあい、ASPなどで使用される、VB、VBS、JScriptを使用して提供しています。また、よくビジネスオブジェクトなんて大手では呼ばれていますが、 テンプレートのアプリを用意し、それをその会社用にカスタマイズして組み合わせる部分を、スクリプト言語で対応していることがおおいです(根幹はJavaで作成し)。 これは、R&Dにいる開発本体ではなく、現場のSEさんでもカスタマイズして対応できるようにしているわけです。例えば、検索ボタンを一つ作ってくれなんて要望は、くらいあんとからしょっちゅうあがってくるものです。 このよに、個人でうんちくのために勉強したいのなら、上記のことを踏まえて、オールランドにまず、Webサーバーから勉強したらいかかでしょう。 それからサーバーサイドをなんにするか決めればいい。本来、言語は、得意、不得意があってはいけないが、やはり、適した環境、状況がるので、それで選ぶのが本当の所です。 けして、世界で通用するとか、普及しているとかで選ぶべき事柄ではありません。

noname#196688
質問者

お礼

お礼が遅くなり、申し訳ありません。 回答ありがとうございます。 >本来、言語は、得意、不得意があってはいけない 私もそう思います。 もうすこし勉強して、スクリプトで何ができるのか、自分は何がしたいのかを考えた上で言語を選びます。

その他の回答 (4)

回答No.5

No4ですが、サーバーの事だけ回答してしまいましたね、 >インタプリタと理解しているのですが、命令の解釈はWebブラウザがやっているのでしょうか これもWebテクノロジーを学べば、自然と分かる事ですが、広い意味でのインタープリタです(昔の定義では、あてはまらないかも)。 Webブラウザには、それぞれのエンジンが組み合わさってなりたっています。まあ、ほとんどが内包しているので、インタープリタと呼んでも、いいのではないかと思います。マイクロソフトのIEだけは、ちょこっと違います(ん~、今では普通なのかも)。 Windows2000ぐらいから、IEとOSは一体化され、DLLなどモジュールやAPIはOSのそれぞれの機能とリンクしています。 つまり、カプセル化し、OSにもWebテクノロジーを反映してきたわけです。逆に、そのことが、トラブルの元によくなっていました。アクティブディスクトップとか、プロキシの問題とか・・・・ >命令の解釈はWebブラウザがやっているのでしょうか 他の方も答えていますが、「クライアントサイドスクリプト」とかのカテゴリーで、よく使われるのはJavaScriptで、唯一、警告なしで、クライアントで実行できるスクリプトです。なので、Webブラウザが解釈しています。 「サーバーサイドスクリプト」はWebサーバーアプリが解釈しています。もちろん、それぞれのエンジンが介在し、その結果を標準出力に返すだけです。その出力をWebサーバーが受け取ります。 クライアントでサーバーリソースをいじるには、いくつかやり方がありますが、ブラウザではセキュリティーのため、できることを制限しています。つまりブラウザ内での実行はデフォルトで認めるが、クライアントのリソースなど(ユーザーデーターとかシステム)にアクセスする場合は、けいこくをだすか、無視され動作しません。 Soap、Ajax、ActiveX、プラグイン、などのキーワードが、クライアントでブラウザから、サーバーにアクセスしたり、ローカルリソースにアクセスするためのテクノジーです。 いずれも、クライアントにミドルウェアやアプリの設置が必要です。ここまでくると、単にWebサーバーからHTTPで、ソフトの実行シナリオをダウンロードしただけといえるでしょう。 (Ajaxも対応したWebサーバーが必要で設置、設定が必要です) それぞれ、ぐぐってみましょう。Webサーバーを理解してから

noname#196688
質問者

お礼

回答ありがとうございます。 Windowsのネットワークの問題というとNetBIOSとWINSくらいしか思いつかない私は古くさい人間で、アクティブデスクトップが何たるかも知りません。。。 >JavaScriptで、唯一、警告なしで、クライアントで実行できるスクリプト なぜJavaScriptだけができるのか、気になりました。調査してみます。Jクエリ?とか言うのもJavaScriptだった気がします。 最近仕事で仮想HTTPサーバ(だったと思います)をクライアントとして利用する機会がありました。 さっそくネットワークの書籍を5冊買ってきて読んだところ、通信が面白いということを知りました。 今までシリアル通信しか触っていませんでしたが、HTTP等も勉強したいと思います。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

Cやアセンブラのプログラミングが出来るのでしたら、ウェブアプリケーションの仕組みについての本を1冊読むと、疑問点が全部クリアになって、次に何をするべきかも見えてくると思います。 言語だけマスターしても、ウェブアプリケーションの仕組みがわからないとダメですし。 念のために回答しておきます。 サーバー側で動くプログラムは必須です。 単純な画面だとブラウザ上で動くJavaScriptは不要です。 サーバー側の言語では、Java、Ruby、Perl、Python、PHP が代表的ですが、他の回答にあるようにCでもいいし、Windowsサーバーを使うならマイクロソフト系の言語でも可能です。 どれが良いかは、趣味で一人での開発か、職業プログラマが仕事の範囲を広げるためなのか、などなど目的によって違ってきます。後者であればまずはJavaでしょうか。スクリプト言語では無いですが。 Javaの独習はきついと思います。言語自体は独習でマスターできると思いますが、実行環境の勉強は質問に答えてくれる人無しには難しいと思いますよ。 Ruby、Perl、Python、PHPのどれを選ぶかについては、プログラミング未経験者であまりたくさん学ぶつもりが無いのならPHPがいいでしょう。理由は初心者向けのドキュメントがたくさんあるから。 Cやアセンブラが出来るということなので、4つとも学ぶつもりでやった方が良いと思います。オブジェクト指向を学ぶつもりがあるなら、最初はRubyが良いと思います。4つともが大変ならRubyとPHP。

noname#196688
質問者

お礼

回答ありがとうございます。 すみません、業務での使用経験が無いため、質問に記載しませんでしたが、Java言語とオブジェクト指向については一通り勉強しました。 Javaにジェネリクスが導入された時期で、理解に苦労しました。 Rubyは国産なので学んでみたいという思いは強いのですが、世界的に浸透しているのでしょうか? (勉強不足で申し訳ありません)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

>PHPは書店で多くの参考書がありました。 >サーバとクライアントの両方のソフトが無いと動かないということでしょうか。 必要とされる場合が多いと言うことです。 COBOLなどの経験があれば分かると思うのですが、サーバ側でデータベース処理等を行う必要がある場合はクライアント側のJavascirptだけでは出来ません。クライアントアプリなのですからサーバ側に処理リクエストを受け取ってもらえる相手が必要です。 逆にJavascriptはブラウザ上で操作に対応するアクションを行うスクリプトです。メニュー処理など行いますがデータがクライアントだけ得られる保証はありませんが作り方によってはクライアントだけで完結することも可能です。 必要とされるアプリの機能からサーバ・クライアント型なのかクライアント独立型、あるいはJavascriptを使わずにHTMLだけで動作するサーバクライアント型なのかを適材適所で決めなくてはいけません。

noname#196688
質問者

お礼

回答ありがとうございます。 意味を理解できました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

JavascriptはWEBブラウザ・エンジン(クライアント側)が実行します。 Perl、PHP、Ruby、PythonなどはサーバのWEBサーバ(サーバ側)が実行してHTMLやXMLのテキストデータでクライアント側が受け取ります。 どちらかと言うとサーバとクライアントの両方共必要だと考えてもらったほうが良いですね。大変面倒ですがサーバ側CGIをC/C++で組む事も可能です。 私はPHPを推薦しときますが人によって意見が違うと思います。

noname#196688
質問者

お礼

素早い回答ありがとうございます。 PHPは書店で多くの参考書がありました。サーバとクライアントの両方のソフトが無いと動かないということでしょうか。