• ベストアンサー

サーバサイドのプログラム

サーバサイドのプログラムには、よくスクリプト(PHP, Ruby, Perl)が 使われるようですが、理由はあるのでしょうか。 高級言語を使えば、レスポンスがよいと思うのですが。 教えてください。

  • otaks
  • お礼率53% (270/507)

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

  • ベストアンサー
noname#49664
noname#49664
回答No.1

高級言語というと、具体的にどういうものを指しているのでしょうか。C/C++とか、そういったコンパイラ系のことでしょうか。 以前は、C/C++などで作成したプログラムをCGIとして実行するということはよくありましたよ(今でもけっこう使われていると思います)。が、サーバサードのプログラムというのは、クライアント(Webブラウザなど)からアクセスしたとき、サーバーからCGIとして起動する、というやり方で動かさなければいけません。そうなると、アクセスするたびに新しいタスクとして起動し実行するわけです。これにかかるコスト(CPUの使用量など)はバカにできません。 PHPなどはサーバー内の一つのスレッドとして実行されるため、プログラムを起動するコストもかかりません。それに最近はプログラムを内部的にコンパイルしキャッシュするなど高速化の技術も進んでいるので、コンパイラと比べてもそれほど遜色ない速度で実行されるようになってきています。 また、Web関係のプログラムというのは、非常に頻繁に修正更新されます。コンパイラ系の場合、そのたびにプログラムをビルドし、動作確認をし、そしてサーバーにアップロードし、といったことを繰り返すことになります。PHPなどのスクリプト系では、単にそのソースを修正するだけで即座に反映されます。開発効率という点では、圧倒的にこちらが上でしょう。 こうしたことを考えると、スクリプト言語を使ったほうが総合的に見てベターである、ということだろうと思います。

otaks
質問者

お礼

ご回答ありがとうございます。 >高級言語というと、具体的にどういうものを指しているのでしょう >か。C/C++とか、そういったコンパイラ系のことでしょうか。 そうです。 ほぼ納得しましたがいくつか疑問があります。 >PHPなどはサーバー内の一つのスレッドとして実行されるため、 これはスクリプト言語の特徴なのでしょうか >PHPなどのスクリプト系では、単にそのソースを修正するだけで即座に反映されます ソース修正をした後の動作確認はどうなるのでしょうか。 とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

サーバーサイドのプログラムというのが、HTTPなどでデータをやり取りする プログラムということでいいのなら、 一つにはHTTPでのやりとりは基本的にはテキストデータのやり取りで、 クライアントにしてもサーバーにしてもプログラムそのものの処理において 文字列処理(検索とか解析とか置換とか)のウェイトは結構なものになります。 その場合、CなりC++で文字列処理を書くというのはバグの温床であることと、 どうしたってPerlを初めとしたスクリプティング言語の方がプログラムを 書くのが楽だということから広く使われたのでしょう。 ここで、必要とするパフォーマンスがでないのなら問題外ですが幸か不幸か 使い物になる性能がでることがほとんどなので主流になっていると。 サーバーサイドのJAVAはまた別の話になりますが、長くなるので割愛。 ところで#1の方の回答の >以前は、C/C++などで作成したプログラムをCGIとして実行するということはよくありましたよ(今でもけっこう使われていると思います)。 というのは初耳です。 どっかに参照できるデータはありますか? 「よくあった」というほどの数はなかったという印象なんですが。

otaks
質問者

お礼

ご回答ありがとうございます。 ・CなりC++で文字列処理を書くというのはバグの温床であること ・Perlを初めとしたスクリプティング言語の方がプログラムを 書くのが楽だということ このような点も考えられるのですね

  • maguro999
  • ベストアンサー率21% (59/273)
回答No.2

>高級言語を使えば、 PHP, Ruby, Perlは高級言語。 >>PHPなどはサーバー内の一つのスレッドとして実行されるため、 >これはスクリプト言語の特徴なのでしょうか PHPをCGIモードで動かせば >アクセスするたびに新しいタスクとして起動し実行するわけです。 この状況になります。 逆にPerlをCGIモードでなくてWebサーバのモジュールとして動作させれば >サーバー内の一つのスレッドとして実行されるため、 この状況になります。 >ソース修正をした後の動作確認はどうなるのでしょうか。 >とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。 普通、本サーバでこんな事しません。 開発用にテストサーバを用意してそっちで動作確認するのが常識。 元々サーバサイドのプログラムの場合、そのサーバのコンパイラまたは クロスコンパイラの環境がひつようでした。 サーバそのものにはセキュリティーの考えからコンパイラを入れておくのは あまり好ましくないので別途同じサーバマシンなどを用意する手間がありました。 JSPはその点一度実行されればコンパイルされ速度面に有利になり 開発はインタプリタと同様にやれ自分でコンパイル作業が不要で 人気があります。

otaks
質問者

お礼

ご回答ありがとうございます。 > >高級言語を使えば、 > PHP, Ruby, Perlは高級言語。 高級言語に入るんですね、コンパイラ言語=高級言語だと 思っていました。 より抽象的な表現ができる言語=高級言語ということになるのかな 実行の仕方により、一つのプロセスで実現、一つのスレッドで実現と 変えられるということですか。これは知りませんでした。 > >ソース修正をした後の動作確認はどうなるのでしょうか。 > >とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。 > 普通、本サーバでこんな事しません。 > 開発用にテストサーバを用意してそっちで動作確認するのが常識。 なるほどこういう形式をとるわけですね

関連するQ&A

  • サーバーサイドプログラムの違いを教えてください。

    サーバーサイドプログラムに、PHP,Perl,Java,Rubyなどがあると 知りましたが、このプログラムの違いが良く分かりません。 すいませんが、プログラムの違いを教えてください。 例えば、○○のような時は、どのプログラミングが良いとか・・・ かなり初心者な質問だと思いますがよろしくお願いします。 また、分かりやすいサイトなどあったら、教えてください。

  • サーバーサイド言語とは?

    はじめまして。 WEB制作の知識については初心者なんですが、このたびWEBの制作を依頼することになりました。 そこで、タイトルにある、サーバーサイド言語について知りたいのですが、色々ある、サーバーサイド言語の違いを教えていただけないでしょうか? いくつか検索をして調べてみたのですが、そもそもの基本的知識がないためどうしても上手く理解ができず困っています。 サーバーサイド言語とはデータベースからの情報を取り出したり、動的なページを作りだすためのものだということと理解しているのですが、いくつもある言語?「Java,Perl,PHP,Ruby等」のうちこれらの選択によってWEBサイトを利用する側から見て、不可能な動作などは出てくるのでしょうか? たとえば、javaではこれができるけど、PHPではこれができない。など また、仮に、目に見える動作の限界がサーバーサイド言語の選択によってない(それに近い)場合、よく使われるのはいったいどれなんでしょうか?というかどれが無難ですか? 基本的なことを思い違いしているかもしれませんが、どうか教えていただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • サーバーサイドプログラムの開発

    perlやphpなどサーバーサイドプログラムが開発されたときの開発環境はなんですか? Mac環境で構築してみたいんですけど、それ用のアプリケーションはありますか? 私が言っているのは、perlやphp文書を書くのではなく、perlのラリー・ウォールのような開発のことです。

  • サーバーサイドのプログラム言語を、選定したいと思います。

    サーバーサイドのプログラム言語を どれにしようか調べています。 ご意見を頂けたら、幸いに思います。 選定条件 1.サーバー上で動く事。(レンタルサーバーを、借りる事になると思う) 2.プログラムを配信する予定ですので、サーバー上にプログラム言語などを追加する事を避けたい。 3.生産効率が高い事。 4.新しくプログラム言語を取得する事になると思います。出来るだけ簡単に習得出来る物が良い。 以上の選択条件を踏まえて、ピックアップをしたいと思います。 因みに、C言語は出来ます。 Rubyは、少し構ったぐらい。 以上、よろしくお願いします。

  • サーバーサイドプログラミング?

     こんにちは。 自分は、IT業界で働いていますが、新しい分野に進むため、ここで質問を致しました。 そこで サーバーサイドプログラミングを学ぼうと思っているのですが、Javaからはじめ たらいいのか、PHPや、Perlから始めたらいいのか(もしくはJavaScript)よく分かっていません。 サーバーで動かすプログラムを作ろうとすれば最初は何がいいでしょうか? どうかご教授お願いします。

    • ベストアンサー
    • Java
  • RubyとかPerlとか、、、どのプログラムが今後生きてくるの?

    色々ネット業界で仕事をしていると、 色々なプログラム言語の話を聞きます。 先日もRubyが注目されているような記事がありました↓  http://www.atmarkit.co.jp/news/200902/10/ruby.html が、正直ブログラミングを知らないような私にとって 今後、どのプログラム言語が注目されてくるのか? すらわかりません。背景・理由も含めて教えてください! そもそも、.NET、C++、JAVA、perl、php、Ruby、と ... 色々あるプログラムですが、どんなプログラムには どのプログラム言語が、良いのでしょうか? とりあえずWeb系、モバイル系のプログラム言語はどのあたりが 注目されているのか? 教えてください!

  • サーバーサイドスクリプトについて

    現在phpを勉強しようと思ってるのですが、少し疑問に思ったことがあるので質問させてください。 phpなどのサーバーサイドスクリプトは「サーバー上でプログラムが実行され、その結果だけがクライアントへ送られる」ということを知りました。 これはHTMLとちがって、そのサイトをブラウザでソース表示したときにphpのタグは表示されずに出力されたテキストなどだけが表示されるというような意味で合ってるのでしょうか??

    • ベストアンサー
    • PHP
  • スクリプト言語としてのPHPについて

    PHPについてほとんど知らない者です(他の言語もほとんど知りませんが・・・)。 Webで検索していると、Webアプリを開発するLL言語としてPHP, Ruby, Python, Perlを使っているというケースをよく目にします。一方、タスクを自動化するためのスクリプトを記述する言語としては、Ruby, Python, Perl, シェルスクリプトで記述しているケースをよく目にします(Linux/UNIX系)。 そして、PHPはWebアプリ開発言語としてかなりのシェアを占めていそうだが、スクリプト言語としてはそんなにシェアを占めていないのかな? という印象を持ちました。 そこでお聞きしたいのですが、スクリプト言語としてのPHPは他の言語と比較してどのような感じなのでしょうか? PHPはWebアプリ開発言語としてだけではなく、スクリプト言語しても開発現場でRuby, Perl同様に使われているといった感じなのでしょうか? あるいは、WebアプリはPHPで書いてるけど、スクリプトはPHP以外(Ruby, Pythonなど)で書いているという方は結構いるのでしょうか?その場合、何故PHPを使わずに別の言語を使っているのでしょうか? ご意見をお聞かせください。

    • ベストアンサー
    • PHP
  • サーバ側のプログラミング言語

    サーバ側のプログラミング言語としてどれが優勢なのでしょう。 CGI、Perl、PHP、JAVA、rubyが代表的なところのようです。 ざっくりと見た感じではPerlの方がCGIよりも良く、 更にPHPとPerlではPHPが優勢と読めました。   でも、WebでまだまだJAVAは耳にしますし、 rubyは国産で力を入れてるとか。 CGIは今後廃れていくのでしょうか。 JAVAはどうなるのでしょう。 何かご意見があればお願いします。

  • スクリプトタイプ/サーバーサイドとクライアントサイド

     こんにちは。現在プログラミングについて調べているのですが、以下について確認したいので教えてください。 *スクリプトタイプのプログラミング言語とは何か(ユーザーがわざわざコンパイルする必要がない、ということでいいのでしょうか?) *サーバーサイドプログラミングとクライアントサイドプログラミングの違い、また両者の代表的な言語  よろしくお願いいたします。

専門家に質問してみよう