好きなおでんの具材ドラフト会議しましょう

現在CGIを設置したく、勉強をはじめようとしています。
そこでperlとPHPのどちらにしようか考えていたところ、C/C++も使えると知り、基礎的なことだけですが経験のあるC++を使おうかどうか迷っています。しかし、それぞれのメリット・デメリットを知り、それを踏まえた上で使用言語を判断したいので、今回質問させていただきました。
それぞれの言語のできることやできないこと、速度などの違い、習得のしやすさ、柔軟性など、様々な観点からのメリットとデメリットを教えていただけると幸いです。
ちなみに、ただ掲示板なんかを設置したいというわけではなく、最終的には様々な用途に対応できるよう技術力を磨き勉強したいと考えています。

検索するとperlとPHPの比較はあっても、C++まで比較対象にいれてるサイトがなく、わからなかったので質問させていただきました。
よろしくお願いします。

A 回答 (2件)

CGI というのは入出力ができる言語であれば何でも作成できます。


例えシェルであっても、Pythonであっても、Rubyであっても、Javaであっても。

で、まずC/C++のメリットとデメリットを理解されていますか?
大胆ながら挙げてみますとこんな感じでしょうか。

メリット:
- コンパイルしてから実行するため動作が高速
- OSレベルの細かいところまで制御可能
デメリット:
- 文字列の扱いが面倒
- コンパイルが必要
- セキュリティホールを生みやすい

CGIの場合はフォームに入力された値を解析するところから
始まるので、上記のうち「文字列の扱いが面倒」というのは
重大な欠点となります。また、メモリの細部まで制御できる
ため、「セキュリティホールを生みやすい」(特にバッファ
オーバーフロー)という非常に重大な欠点を持っています。
なので、高度なパフォーマンスを要求される場合を除いて
C/C++が使われることはあまりないと言ってよいと思います。

PHP と Perl については、Web のみを勉強の目的とするのであれば
どちらでもよいと思います。ただし、OS (例えばLinux) もあわせて
勉強したいというのであれば、Web 以外のところでも使われることが
多い Perl をお勧めします。

余談ですが、PHP は CGI の言語として使用されることは少なく、
多くの場合は Apache などの Web サーバにモジュールとして
組み込むことによって使用されます。ですから、CGI に特化したい
という場合も Perl をお勧めします。
    • good
    • 0
この回答へのお礼

詳しく教えていただきどうもありがとうございました。
回答を読ませていただき、perlをつかっていくことにしました。

どうもありがとうございました。

お礼日時:2010/01/21 04:40

・習得


Perl = PHP > C/C++
C/C++の場合ポインタがひとつのネックになってこれが理解できれば早いけどこれが理解できないとドツボにはまってしまって自滅。
・柔軟性
C/C++ > Perl >= PHP
PerlとPHPでできることはほぼ同じです。
C/C++はOSの制御からOSそのものの開発までいろいろできます。

そもそも一つの言語ですべてやるプロはいません。
適材適所で言語を使い分ける。
一芸のプログラマはダメですね。(その一芸が他の人の数倍すごいなら別ですが)


言語的には構文の書き方などPHPとC言語は似ています。
Perlは独自路線な構文の書き方です。

C/C++は環境毎(OS)にコンパイルし直す必要があります。
レンタルサーバではセキュリティー的にC/C++で作られたCGIの動作は許していない場合がよくありますし
許可している場合でもローカルにレンタルサーバと同じ環境をコンパイル環境として用意しておく必要があります。
その点PerlやPHPはインタプリタですからコンパイルの必要はありません。


>高度なパフォーマンスを要求される場合を除いて
>C/C++が使われることはあまりないと言ってよいと思います。
PHPに関して言えばPEARというPHPで書かれたPEARというモジュール意外に
速度を求める物に対してCで書かれたPECLと言うモジュール集があります。
必要があれば自分で開発して登録してもいいでしょう。
PECLで開発されたモジュールも有用な物などはPHPに標準的に組み込まれる物もあります。
    • good
    • 0
この回答へのお礼

最終的には色々とできないといけないんですね。
ですが、始めはperlからはじめていくことにしました。余裕がでたらPHPやCなども改めて勉強していくことにします。

どうもありがとうございました。

お礼日時:2010/01/21 04:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報