現在CGIを設置したく、勉強をはじめようとしています。
そこでperlとPHPのどちらにしようか考えていたところ、C/C++も使えると知り、基礎的なことだけですが経験のあるC++を使おうかどうか迷っています。しかし、それぞれのメリット・デメリットを知り、それを踏まえた上で使用言語を判断したいので、今回質問させていただきました。
それぞれの言語のできることやできないこと、速度などの違い、習得のしやすさ、柔軟性など、様々な観点からのメリットとデメリットを教えていただけると幸いです。
ちなみに、ただ掲示板なんかを設置したいというわけではなく、最終的には様々な用途に対応できるよう技術力を磨き勉強したいと考えています。
検索するとperlとPHPの比較はあっても、C++まで比較対象にいれてるサイトがなく、わからなかったので質問させていただきました。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
CGI というのは入出力ができる言語であれば何でも作成できます。
例えシェルであっても、Pythonであっても、Rubyであっても、Javaであっても。
で、まずC/C++のメリットとデメリットを理解されていますか?
大胆ながら挙げてみますとこんな感じでしょうか。
メリット:
- コンパイルしてから実行するため動作が高速
- OSレベルの細かいところまで制御可能
デメリット:
- 文字列の扱いが面倒
- コンパイルが必要
- セキュリティホールを生みやすい
CGIの場合はフォームに入力された値を解析するところから
始まるので、上記のうち「文字列の扱いが面倒」というのは
重大な欠点となります。また、メモリの細部まで制御できる
ため、「セキュリティホールを生みやすい」(特にバッファ
オーバーフロー)という非常に重大な欠点を持っています。
なので、高度なパフォーマンスを要求される場合を除いて
C/C++が使われることはあまりないと言ってよいと思います。
PHP と Perl については、Web のみを勉強の目的とするのであれば
どちらでもよいと思います。ただし、OS (例えばLinux) もあわせて
勉強したいというのであれば、Web 以外のところでも使われることが
多い Perl をお勧めします。
余談ですが、PHP は CGI の言語として使用されることは少なく、
多くの場合は Apache などの Web サーバにモジュールとして
組み込むことによって使用されます。ですから、CGI に特化したい
という場合も Perl をお勧めします。
詳しく教えていただきどうもありがとうございました。
回答を読ませていただき、perlをつかっていくことにしました。
どうもありがとうございました。
No.2
- 回答日時:
・習得
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に標準的に組み込まれる物もあります。
最終的には色々とできないといけないんですね。
ですが、始めはperlからはじめていくことにしました。余裕がでたらPHPやCなども改めて勉強していくことにします。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング ITエンジニアの勉強時間や勉強方法について 初めまして閲覧いただきありがとうございます。 当方25歳 4 2022/06/09 18:51
- 国産車 車高調の選択について 3 2023/02/03 20:07
- 美術・アート 液タブかsurface proか、作画作業の面だけで比較をお願いします 2 2022/07/10 01:48
- 統計学 t検定を繰り返してはいけない理由について教えて下さい。 2 2022/05/15 12:37
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- 教えて!goo 質問サイトで読解力がない奴と話すとイライラします。こういう人の対処法を教えてください。 22 2022/09/12 08:44
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- 政治 総理大臣制と大統領制、あなたはどちらの制度を支持しますか? 8 2023/06/04 10:03
- 医師・看護師・助産師 看護専門学校の入学志望動機の添削をお願い致します(400~800字以内) 2 2022/07/17 14:39
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを使用して、外部サーバのフ...
-
perlやPHPについて、CGI方式と...
-
HTML文書の中で環境変数を使う...
-
ASPでDLLの使用方法
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
Perlの日記プログラムがIIS+Act...
-
cgi→csvが文字化け
-
Perlの初歩の初歩の初歩(#!/us...
-
/usr/local/bin/perl の発音
-
#!/usr/bin/perl --
-
ASP(IIS?)のエラーについて
-
ラジオボタンのグループ化
-
プロバイダで定められたPerlへ...
-
インクルードファイルのエラー
-
Webでのファイルアップロードに...
-
どこが悪いのかわかりません!...
-
CGIを使用してブラウザからファ...
-
Windowsで作った *.cgi ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを使用して、外部サーバのフ...
-
ASPからJavaScriptへの受け渡し...
-
「EJBとServletの違い」「J2SE...
-
HTML文書の中で環境変数を使う...
-
JSPについて
-
perl PHP C++ それぞれのメ...
-
Call GetSubDirでの 任意のセ...
-
C言語でCGI
-
ASPでDLLの使用方法
-
LAN内に接続されているPCをリ...
-
TwitterAPIを使用せずに自動ツ...
-
WEB関連で質問です。(APサーバ...
-
MVCモデルとIIS(IHS)、WAS
-
別サーバへのアプリケーション...
-
ソースを見せたくないです。
-
あるopencvのコード、なぜカラ...
-
プロバイダNifty,接続Tepco光を
-
カウントダウン タグだけが表示...
-
リンク参照元について。
-
サーバーをプログラミング
おすすめ情報