No.5ベストアンサー
- 回答日時:
久々に、微妙な質問をみかけてしまいました(笑)
さて、まず質問者さんは、ホームページと呼ばれているものがどういった代物で、CGIとは何なのか、動的なコンテンツを実現するためにどのような環境が必要なのかといった事を、ある程度勉強すべきかなと思います。
動的なコンテンツを実現するために、世の中に出回っている技術はたくさんあります。
プログラム言語が問題になるのは、主に実行環境で何が許されているのかということです。
自前でサーバを用意する前提であれば、何でも可能でしょう。しかし、どこかのISPのサーバや、あるいはホスティングサービスなんかの場合、当然用意されたサーバでできること、出来ないことがあります。
そこで動かせるものがPerlしか無い(最近はもう少し選択の幅は広いのが普通ですけどね)のであれば、Perlで作ることになるでしょう。
CやC++でCGIを作ろうとした場合、当然その開発環境(コンパイラが入った環境)が必要です。そこで生成される実行ファイルは当然実行環境で実行できる形式でなければならず、場合によっては、クロスコンパイルする必要にせまられるかもしれません。(そこまでしてCにこだわる理由は普通無いとは思いますけど)
コンパイラ言語でCGIを作るというと、一般的にはとても面倒な話になります。
大きなポータルサイトなんかでは、Cで作る場合もかなり多いですけどね。
また、コンパイラ言語で作ったCGIは、そもそも許可されていない事が多いです。
CGIに関しては、ざくっと以前回答したものがあります。
参考にしてください。
http://okweb.jp/kotaeru.php3?q=235637
また、JavaでCGIは一般的ではありませんが、作れなくは無いでしょう。(ぶっちゃけて言えば、標準出力と環境変数の参照ができる言語なら、何でも書けるのがCGIというお約束です)
ただし、Javaが動かせる環境がサーバ側にあるのなら、普通はサーブレットエンジンまで用意してあるような気がします。
そうなれば、それはCGI等なではなく、ほんとのサーブレットの開発になり、良くも悪くも大仰な話になりますね。
この形は、#1さんの案1に相当しますかね。
それに、これも一般的には自由に使っていいサーブレット環境があるところは多くないです。
JSPやPHP、ASPなどのHTMLへの埋め込みスクリプトの場合も、サーバ側にそういったものを実行する環境があるかどうかによって選択肢になるかどうかが決まります。
最近は、PHPが使えるところは多いですね。
もっと話を単純にして、とりあえずCGIで一般的なのはなんだという話にするのであれば、やっぱりPerlでしょう。
自作のCGIを禁止していないところで、Perlが使えない場所はほとんど無いでしょうから、多分一番汎用的なものが作りやすいです。
スクリプト言語では、最近はRubyがつかえるところも増えてきましたね。
目的である、「どんなホームページでも作れるようになりたい」というのを、具体的にどういったものをイメージして言っているのかが、今ひとつ読み取れないのですが、言葉どおり受け取った場合、必要な技能はこんな感じになりますよ。
1.必要な環境が動くサーバを0から構築できる。
これには、Webサーバや、その他必要なソフトのインストール/設定も含まれますね。
2.そのサーバを動かしつづける運用のノウハウがある。
3.その時に必要になった言語をさくっと身につける。
もしくは、自分の知ってる言語で、そのとき必要な機能を実装できる。
4.少なくとも最低限のネットワーク知識を持っている。
(まあ少なくとも、これ無しで正しいサーバ構築はできないとは思いますが・・・)
5.Webサーバが、どういったもので、内部的にどういった処理を行っているか理解している。
6.リレーショナルデータベースをちゃんと理解して、自前で環境が構築できる。
7.できれば、SQLが結構かける。
つまり、Webシステム開発ということですね。
かなりホームページのイメージからかけ離れてきた事がお分かりでしょうか。
個人的な意見を言わせてもらえれば、どんな言語を使うかなんていうのは、実に些細な問題です。
しかしながら、サーバから作るところまでは全然考えていない(少なくとも質問の文面からは、言語の心配しかされていないように取れます・・・)のであれば、少なくともどこにそういったコンテンツを置くかは、先ほどの実行環境の問題になるので、大きな問題です。
その選択如何で、使える言語は決まってくるからです。
正直に言えば、サーバごと構築するつもりが無いのなら、CやC++にこだわるのは、どうかと思います。
少なくともWebに関するプログラムを作るのであればですが。
.NETに関しては、もっと微妙です。
実際問題として、サーバアプリとして.NETを許容しているところは、多くないと思いますし、今のところ私は一つも知りません。
これも、あくまでサーバを自前で用意できる前提でないとダメでしょう。(少なくとも今のところはです)
.NETはその前提言語であれば、何を使っても同一の実行モジュールができるので、機能的にはC#でもVB.NETでも同じ物ができるはずです。
そうそう、プログラム言語を身に付けるという点について、意見を言わせてもらえれば、C++とJavaやRubyはオブジェクト指向言語であり、Perlはそうではないという点を理解しておかないとダメでしょう。
バージョン5.6以降のPerlは一応オブジェクト指向っぽくコーディングできるようにかなり大きく変更されていますが、過去の資産はそうでないのと、いわゆるPerl使いがオブジェクト指向的なコーディングをしないのが理由で、Perlで出回っている既存のソースはほとんど従来型のプログラムです。
(実装もオブジェクト指向言語としては、中途半端なのでちょっと・・・)
CやPerlの感覚で、C++やJavaを正しく扱うのは、不可能です。少なくとも言語が用意している機能を正しく理解できないでしょうし、それはそれは悲惨なソースコードが出来上がることになります。
しかし、プロのシステム開発の現場でも、オブジェクト指向を正しく理解した上でC++やJavaを使える人間は、あまり多くないのが現状です。
単純に、言語を1から勉強するという前提にたち、今から並行して使うなら、JavaやC++、Rubyなどのオブジェクト指向言語に限るべきかなと思います。
それらが一通り理解できたところであれば、CやPerl等の手続き型言語(関数型かな)をみるのも、面白いでしょう。
ただし、そういった言語の中でもCはさらに特殊だと思った方がいいです。
あの言語が、一般に難しいと言われる所以は、ひとえにCという言語は、コンピュータの仕組み(ハード面も含めて)が正しく理解できているという前提で設計された言語だからです。(アセンブラよりは、かなりマシっていう程度の高級言語ですな)
動くプログラムを書くところまでは、(やや難しい部類に入るものの)他の言語とそう変わらないで使えるようになります。
ただし、きちんと動くプログラムが書けるためには、メモリやレジスタ等のハードに近い部分に対する理解が必要不可欠です。
しかしそれゆえに、Cで書くプログラムは他の言語では反則と思えるような手法が可能であり、それゆえに高速なのです。(もちろんタコなプログラムを書けば遅くなります)
前にも書いたとおり、言語による違いは、比較的ささいな問題です。
ある程度以上使えるようになると、言語によってできること、出来ないことの違いがより具体的に見えてくる事と思いますが、それは作りたい機能を実現できるかどうかではなくて、ある機能を実現するためにどうプログラムを書くかが違ってくるだけです。また、ある仕組みを実現するために、複数の言語を使うことも珍しくありません。
よくあるのは、全体としては比較的書きやすい言語を使って、どうしても速度が必要な部分はCで書くといった住み分けです。
#3さんが書いてるようなケースも、もしかしたらこのパターンかもしれませんね。
仕事でもなければ、普通の人がCGIを書くのに、どうしてもCで無いとダメなケースは少ないかも知れませんが、仕事としての開発の場合は、珍しくも無いケースです。
PerlもRubyもスクリプト言語ですが、Cでライブラリを書いて、それぞれの言語から呼び出すためのやり方があったりします。
長文になってしまいました。
質問の内容から、私が思いつく限り、意識すべき範囲がわかるように説明させていただきました。
質問者さんは、まずもう少し具体的に自分が作りたいもの、あるいは実現したいと思っていることが、表現できるように全体を見渡して勉強するのがよいと思います。
そうすることで、質問の内容もより具体的になり、また最終目標までに、何をどういった順番で身に付ければよいかを判断できるようになります。
では、頑張ってください。
No.8
- 回答日時:
可能です。
私もホームページを作っていますが、カウンタや掲示板、アクセスログ、デジカメで撮影した画像の撮影情報(絞り値や撮影日時など)の表示、ページヘッダーなどの表示、果てはメールの振り分けまで...すべてC++でプログラミングして使っています。
そのためにレンタルサーバーを借りるときにtelnetとgccが使えるかどうかを確認してから契約しました。
確かにperlなどを使わずにC++で作るのは情報も少ないですし面倒ですが...VC++のデバッグなどが使えて便利な面もあるかな?という気はします(でも決して進められるものではありません。やっぱりCGIはperlなどを使った方が楽です)。
当然のことながら「どんなホームページでも」という言葉にどうやっても現在の世界に存在する技術では実現不可能な内容を含んでいなければですが...
No.7
- 回答日時:
.NET Frameworkも、一応無料でできますよ。
Monoプロジェクトとか、WebMatrixとか。ホスティングサービスも、これはさすがに無料ではないけれど、条件付き無料は、一応ある。http://www.mono-project.com/about/index.html
http://www.asp.net/Default.aspx?tabindex=0&tabid=1
http://www.microsoft.com/japan/msdn/asp.net/host …
まぁ、C++は不要で、HTML, DHTML, XML, JavaScriptが必要、かな?「どんなホームページでも」というのが、どういうものをイメージしているのか、イメージできませんが、HTMLで実現できないことは、C++(CGIと解釈)でもできません。FlashやJavaアプレット、ActiveXなどを使うなら、別ですが。
No.6
- 回答日時:
なぜ質問したのかよーくわかりますね。
質問者さんのお気持ちはわかるのですが、結論からいえばHTMLとC++だけでは「無謀」です。
いろいろな言語やソフトがあるのは目的にたいして
より最適な開発環境をもとめた結果だとおもいます。
極論いえばすべてのコンピュータはアセンブラ(マシン語)で動いているわけですのでこれをつかえばなんでもできるはすですが、アセンブラでホームぺージを
つくったひとなどまずいないでしょう。
そうゆう意味で目的にあわせて言語やソフトを使い分けるほうがはるかに開発の都合がいいわけでHTMLとC++ですべてをと考えるのはF1の車で荷物を運ぶようなものだと思います。
これって「無謀」ですよね。
ただしC++あるいはC言語を勉強することは決して無駄にはならないと思います。
No.4
- 回答日時:
>フリーCGIのページで使いたいものを良く見かけるの
ですが、いわゆるCGIと呼ばれるものは、もちろんCで
できるし、JAVAでもできると考えて良いですか?
フリーCGIで公開してるものは、Perlが大半です。
基本的に標準入出力を備えた言語なら、CGIプログラム
の作成は可能です。VBでCGIなんてこともできちゃいま
す。ただJAVAでCGIなんてのは聞いたことないです。
JAVA使うならJSPやサーブレットという技術を利用した
方が開発は効率的ですからね。
>あと.NETとありますが、C++ということですか?
.NETに関して簡単に説明したら、プログラミングを
支援してくれる道具のようなものです。例えるなら、
プラモデルを作ってるような感覚です。.NETという
パーツがあって、それを組み合わせていけばソフト
ができるみたいな感じです。C++はそのパーツを組
み合わせる接着剤のようなものです(極論ですが・・・)。
.NETの言語選択としては、VB、C++、C#等があります。
言語は世の中いろいろあります。沢山あってどれに
しようかと迷うかと思いますが、まず自分のやりたい
ことを見つけてそれにあった言語をチョイスすること
をお勧めします。まだ何も思いつかないようならC言語
から入ることをお勧めしますよ。Cできたら大抵の言語
で通用しますから。
No.3
- 回答日時:
こんにちわ。
タイトルについての回答ですが、基本的にどんなHP
でも作成できます。
Cにできないことは、他の言語では不可能に近いです。
ただ、手間はかなりかかりますよ。
私は大学時代に研究で、CやVBを組み合わせたHPを
作成しました。
Perl等のインタプリタに比べて、Cは処理速度の点
では優位です。
それほど処理速度にこだわらないならJAVAか.NETを
進めます。
この回答への補足
レベルが低いので若干混乱しています。フリーCGIのページで使いたいものを良く見かけるのですが、いわゆるCGIと呼ばれるものは、もちろんCでできるし、JAVAでもできると考えて良いですか?あと.NETとありますが、C++ということですか?それともBasic、C#、C++のどれでも構わないということでしょうか?
補足日時:2004/07/17 00:20No.2
- 回答日時:
今からサイト作りのために新しい言語を勉強するという事であれば、#1さんの紹介されている言語を考慮するべきです。
但し、Apprenticeさんのご質問である、「どんなホームページでも作成できますか?」という質問に対しての答えは、C++を極めればの話ですが、YESです。
通常のWEBサイトで必要とされる処理でC++で記述できないような処理はあり得ないと思われますので。
但し、単なる掲示板程度でもJavaやPerlで作る場合の数倍の手間(下手をするとそれ以上?)がかかる事は、ほぼ間違いありませんが。
No.1
- 回答日時:
普通Webサイトは C++ では作りません。
最も近いといったら Java かな…。今なら、もし作るとしたら(案1)Java + JSP
JSP というのは HTML に似た言語ですが動的なページが作れます。JSP だけでも作れますが Java と組み合わせた方がいいでしょう。
(案2).NET(ドットネット)
Microsoftのツール C# とか VB とかじゃないかな。
(案1) はオススメですよ。ツール(JDK, Eclipseとか) もサーバ(Tomcat とか Apache)とかも全部オープンソースなのでフリーで入手できます。プラットホームも Linux でも Windows でもOKですし。 (案2)だとツールも高価だし Windowsに限定されます。
他にも PHP とか CGI とかでもできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- HTML・CSS ホームページをちょっと加工する程度の無料または古くて安く購入できる作成ソフトを教えてください 5 2022/12/16 12:17
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- ホームページ作成・プログラミング web制作(HP作成について教えてください) 閲覧ありがとうございます。 今、WEB制作の勉強をして 2 2023/04/13 07:23
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- SEO ホームページを作る際の質問です 1 2023/06/07 18:50
- ホームページ作成・プログラミング ホームページ作成について。「ワードプレスではありません」。 3 2023/08/13 14:44
- HTML・CSS HTML 訪問カウンターを自作したい 4 2023/02/20 08:37
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
C言語とhtmlの違いを どなたか分かり易く 丁寧に教えてください
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COBOLでのNOT = の AND条件
-
C言語、C+、C++、C#の違い
-
vbaとc言語の関連性について
-
COBOLで文字タイプを数字...
-
プログラムに書かれる"%"記号の...
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
.Net Framework APIがあればMFC...
-
VBSとWSHは読み方が違うだけで...
-
パスカルケースの由来。
-
Excel VBAで文字化けする (英語...
-
UNITY Float型の接尾辞fって
-
Excelの開発言語ってなんですか?
-
adobe のillustrator とかphoto...
-
QT(C++)の学習方法について
-
プログラムははぜ小文字大文字...
-
C for Linuxでの設定ファイル読...
-
プログラミング言語「C#」の難...
-
現在、大学の応用化学科に所属...
-
UWSCはどのプログラミング言語?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
COBOLでのNOT = の AND条件
-
UNITY Float型の接尾辞fって
-
プログラムに書かれる"%"記号の...
-
vbaとc言語の関連性について
-
C言語とhtmlの違いを どな...
-
C++における継続行
-
プログラムからアイコンファイ...
-
TO_CHARで小数点以下がある場合...
-
COBOLで文字タイプを数字...
-
パスカルケースの由来。
-
VBSでDim、Private、Publicの違い
-
Excel VBAで文字化けする (英語...
-
VBSとWSHは読み方が違うだけで...
-
VBScriptで引数を省略したい場合
-
Solve()とは、なんですか?
-
プログラムははぜ小文字大文字...
-
今、コンピューター言語で、COB...
-
C++ ってなんて読む?
-
HTMLとC++で、どんなホームペー...
おすすめ情報