No.1ベストアンサー
- 回答日時:
高級言語というと、具体的にどういうものを指しているのでしょうか。
C/C++とか、そういったコンパイラ系のことでしょうか。以前は、C/C++などで作成したプログラムをCGIとして実行するということはよくありましたよ(今でもけっこう使われていると思います)。が、サーバサードのプログラムというのは、クライアント(Webブラウザなど)からアクセスしたとき、サーバーからCGIとして起動する、というやり方で動かさなければいけません。そうなると、アクセスするたびに新しいタスクとして起動し実行するわけです。これにかかるコスト(CPUの使用量など)はバカにできません。
PHPなどはサーバー内の一つのスレッドとして実行されるため、プログラムを起動するコストもかかりません。それに最近はプログラムを内部的にコンパイルしキャッシュするなど高速化の技術も進んでいるので、コンパイラと比べてもそれほど遜色ない速度で実行されるようになってきています。
また、Web関係のプログラムというのは、非常に頻繁に修正更新されます。コンパイラ系の場合、そのたびにプログラムをビルドし、動作確認をし、そしてサーバーにアップロードし、といったことを繰り返すことになります。PHPなどのスクリプト系では、単にそのソースを修正するだけで即座に反映されます。開発効率という点では、圧倒的にこちらが上でしょう。
こうしたことを考えると、スクリプト言語を使ったほうが総合的に見てベターである、ということだろうと思います。
ご回答ありがとうございます。
>高級言語というと、具体的にどういうものを指しているのでしょう
>か。C/C++とか、そういったコンパイラ系のことでしょうか。
そうです。
ほぼ納得しましたがいくつか疑問があります。
>PHPなどはサーバー内の一つのスレッドとして実行されるため、
これはスクリプト言語の特徴なのでしょうか
>PHPなどのスクリプト系では、単にそのソースを修正するだけで即座に反映されます
ソース修正をした後の動作確認はどうなるのでしょうか。
とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。
No.3
- 回答日時:
サーバーサイドのプログラムというのが、HTTPなどでデータをやり取りする
プログラムということでいいのなら、
一つにはHTTPでのやりとりは基本的にはテキストデータのやり取りで、
クライアントにしてもサーバーにしてもプログラムそのものの処理において
文字列処理(検索とか解析とか置換とか)のウェイトは結構なものになります。
その場合、CなりC++で文字列処理を書くというのはバグの温床であることと、
どうしたってPerlを初めとしたスクリプティング言語の方がプログラムを
書くのが楽だということから広く使われたのでしょう。
ここで、必要とするパフォーマンスがでないのなら問題外ですが幸か不幸か
使い物になる性能がでることがほとんどなので主流になっていると。
サーバーサイドのJAVAはまた別の話になりますが、長くなるので割愛。
ところで#1の方の回答の
>以前は、C/C++などで作成したプログラムをCGIとして実行するということはよくありましたよ(今でもけっこう使われていると思います)。
というのは初耳です。
どっかに参照できるデータはありますか?
「よくあった」というほどの数はなかったという印象なんですが。
ご回答ありがとうございます。
・CなりC++で文字列処理を書くというのはバグの温床であること
・Perlを初めとしたスクリプティング言語の方がプログラムを
書くのが楽だということ
このような点も考えられるのですね
No.2
- 回答日時:
>高級言語を使えば、
PHP, Ruby, Perlは高級言語。
>>PHPなどはサーバー内の一つのスレッドとして実行されるため、
>これはスクリプト言語の特徴なのでしょうか
PHPをCGIモードで動かせば
>アクセスするたびに新しいタスクとして起動し実行するわけです。
この状況になります。
逆にPerlをCGIモードでなくてWebサーバのモジュールとして動作させれば
>サーバー内の一つのスレッドとして実行されるため、
この状況になります。
>ソース修正をした後の動作確認はどうなるのでしょうか。
>とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。
普通、本サーバでこんな事しません。
開発用にテストサーバを用意してそっちで動作確認するのが常識。
元々サーバサイドのプログラムの場合、そのサーバのコンパイラまたは
クロスコンパイラの環境がひつようでした。
サーバそのものにはセキュリティーの考えからコンパイラを入れておくのは
あまり好ましくないので別途同じサーバマシンなどを用意する手間がありました。
JSPはその点一度実行されればコンパイルされ速度面に有利になり
開発はインタプリタと同様にやれ自分でコンパイル作業が不要で
人気があります。
ご回答ありがとうございます。
> >高級言語を使えば、
> PHP, Ruby, Perlは高級言語。
高級言語に入るんですね、コンパイラ言語=高級言語だと
思っていました。
より抽象的な表現ができる言語=高級言語ということになるのかな
実行の仕方により、一つのプロセスで実現、一つのスレッドで実現と
変えられるということですか。これは知りませんでした。
> >ソース修正をした後の動作確認はどうなるのでしょうか。
> >とりあえず、アクセスを制限しておいて、テスト後開放となるのでしょうか。
> 普通、本サーバでこんな事しません。
> 開発用にテストサーバを用意してそっちで動作確認するのが常識。
なるほどこういう形式をとるわけですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) HTMLを組み込むことができない言語 3 2022/05/21 10:05
- Mac OS MacOSのLaunchAgentsってなんですか?使い方など教えてください。 前の質問でLaunc 1 2022/04/24 02:06
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- その他(コンピューター・テクノロジー) 以下の用語がわかんないので教えてください!!! ①プロトコルの変換をする装置。トランスポート層からア 1 2023/07/05 09:10
- サーバー 無料のレンタルサーバで、スクレイピング(?)はできますか? 2 2022/05/07 10:09
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- WordPress(ワードプレス) WordPressの編集画面がいつもと違うのですがこれは何でしょう? 1 2023/03/29 10:26
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
なんかC言語でプログラム書いて...
-
プログラミング ソースコード
-
MACで動く実行ファイルをWindow...
-
VBAで外部プログラムを非表示で...
-
C言語で途中までしか、プログラ...
-
fortran a.exe システムエラー
-
vba GetAsyncKeyState関数について
-
初期化は、main関数の外で...
-
VB6やVB.NETはコンパイル無しで...
-
BCB6で教科書付属プログラム実...
-
RPG パラメーターについて
-
C# 変数の動的な再定義
-
Java Autoupdater
-
システム資源とは?
-
getchar()の意味・・・
-
コマンドプロンプト プログラム...
-
NVIDIAのGPUについての質問です...
-
バックアップするとuserformが...
-
VBAの配列サイズとメモリに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
なんかC言語でプログラム書いて...
-
プログラミング ソースコード
-
MACで動く実行ファイルをWindow...
-
実行時エラー429
-
Windows10でDOSゲーム
-
VB上で実行中の無限ループの止め方
-
他のPC上にあるexeを、そのP...
-
sendkeysにてALT+CTRL+INSERTを...
-
VBAで外部プログラムを非表示で...
-
システム資源とは?
-
プロセス間通信について
-
アクセス[ファイルを開かずに、...
-
C言語でプログラムを再起動
-
C言語で途中までしか、プログラ...
-
system関数を使用してsuコマン...
-
終了してもプログラムが実行し...
-
PIC のデータEEPROMに書き込み...
-
実行中の実行ファイルの上書き
-
他の実行ファイルを実行するプ...
おすすめ情報