質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • PHP

    19918questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • C

    3576questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    3349questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Webサーバー

    426questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

  • Scala

    179questions

    ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

C/C++のWebフレームワークが少ない理由

解決済

回答 3

投稿

  • 評価
  • クリップ 6
  • VIEW 13K+

senachi

score 76

最近PHPerから脱却を図るべくPHP以外の言語で書かれたWebフレームワークの選定をしています。
いろいろ調べていると、ruby on railsを筆頭にjavaのspringやscalaのplayなどが人気があるようですが、意外にも言語としての歴史が古いCやC++で書かれたWebフレームワークはほとんど見当たりません。
一応、Treefrogという日本製のWebフレームワークはあるようですが、(失礼ながら)現状それほど勢いがあるようには見えません。

そこで質問です、C/C++で書かれたWebフレームワークが少ない理由を教えていただけませんか?

「こういう理由で少ないんじゃないの?」みたいな推測回答でも結構です。
よろしくお願い致します。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+9

C言語やC++では文字列処理や動的メモリ確保ですらライブラリに依存しており、正規表現も言語標準となっていないこともあって、Webフレームワークを作る上で「フレームワークがカバーすべき範囲が極端に大きくなってしまうこと」、また「それだけ頑張って特有な価値を提供できるかというと、それも難しい」ということ、さらには「単に置けば動くスクリプト系と違って、コンパイラを使う分環境調整が面倒なこと」などがネックとなる気がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/25 13:42

    ご回答ありがとうございます、どのご回答も甲乙つけがたいので一番初めに投稿いただいた方にベストアンサーをつけさせていただきました、申し訳ありません。

    他の過多もご指摘されているように、やはり低水準なところまでいじれる反面いろいろ複雑な印象です。最近は敷居の低いPHPなどを触り始めてWEBプログラマになる方が多いことも理由かもしれませんね。

    キャンセル

  • 2015/07/28 14:46

    >C言語やC++では文字列処理や動的メモリ確保ですらライブラリに依存しており、正規表現も言語標準となっていないこともあって

    標準ライブラリにあるものを指してライブラリに依存なんて言い方はどうかと思いますよ。
    そんなこと言っちゃうと Python だって正規表現は「ライブラリに依存」してるってことになっちゃいます。
    また、C++ では動的メモリ確保は言語機能ですし、C++11 で正規表現も標準ライブラリに追加されています。

    キャンセル

  • 2015/07/28 16:01

    C++で動的メモリ管理が言語側ににあるというところは確かにそうですが、特にCでは文字列連結1つですら関数を呼ぶしかないという状況です。大量の文字列処理が必要となるWebフレームワークの構築用には向かないでしょう。

    キャンセル

+8

C/C++で書かれたWebフレームワークが少ない理由

まず、Perl、PHP、Python、RubyなどのLL系言語と比較すると、
C/C++はコンパイルが必要であること、文字列処理が不得意であること
などから、とくにWebでの小規模アプリの開発効率で負けてしまいます。

それから、C/C++はポインタを使うので、
深刻なメモリエラーでOSをクラッシュさせる危険性があります。

UNIX/Linuxサーバとの親和性とかほかにもいろいろあり、
デスクトップではメインストリームだったC/C++も、
Webのデファクトスタンダードにはなれませんでした。

そうしてC/C++でサーバサイドを書くことが少ないので、
フレームワークも自然と少ないのではないでしょうか。

ただ、C/C++は実行速度が速いです。

オンラインで重い処理をする大規模サービスの分野で、
オンプレミスでサーバを管理できるところでは、
C/C++で書くケースもよくあるようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/25 13:37

    ご回答ありがとうございます、どのご回答も甲乙つけがたいので一番初めに投稿いただいた方にベストアンサーをつけさせていただきました、申し訳ありません。

    C/C++はあまり詳しくないんですが文字列処理が不得意なんですか・・・。
    メモリエラーに関しては確かに仰るとおりリスクがありますね。
    やはりさくっと作れるというスピード感では他の言語に劣ってしまうんですね。

    キャンセル

checkベストアンサー

+7

C/C++で独自にWebServerを作らなければいけない状況の想定として

組み込み系のソフト管理画面等
(ルータとかメモリやCPUがチープすぎてapacheとか乗っけられないとき)

C++のバイナリ(データはOnMemory上)にWeb管理機能をつけたい
あたりかと思います。

まあ
ガチに OpenSSLや証明書対応の実装をしようとすると死にますし。。
(どちらかというとapacheやnginxにそこら辺の設定をするだけでも死んでる人がいますね。。)

労力が多い割にはあまりメリットがない感じ。

Treefrogは使ったことないのですが、ほかのC++のWebフレームワークを使ったときは
結構下層まで実装しなくてはいけなくて面倒だった記憶があります。
あとはググった時に情報があまり出てこないとはまりますね。。
よっぽどサンプル等が豊富なら別なのですが。。

すごくスモールでさっと作ってあんまテストしなくていいならnode.jsでぶん回す方が楽
[DB/シンプルファイル経由の連携なら]


比較として>
Rails[スクリプト系] ・・テストする文化があるから。基本複雑なテストって書けないので構造が逆にシンプルになります
Java系          ・・デバッガ環境が整っていてステップデバック等がしやすい
                  ある程度初期メモリ(512M-1G)が詰める状況だと結構快適にぶんまわせる

実装的に気になるなら
https://blackjumbodog.codeplex.com/
あたりのコードを拝読してみるとよいかもです

単にWeb機能を簡単につけたいだけなら
https://code.google.com/p/sdloader/
あたりも結構良いです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/25 13:34

    ご回答ありがとうございます。
    なるほどです、確かに細かいところまでいじれる反面、PHPやJavaなどに比べると敷居が高いイメージです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    19918questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • C

    3576questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    3349questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Webサーバー

    426questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

  • Scala

    179questions

    ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。