• 締切済み

なぜ C++ が一番多くのプログラマーに使われるか

他にもっとエレガントな構造を持った言語がいくつもあると 個人的に思うのですが どうして、誰もが C++ ばかりを使っているのかという理由が 分からないままです。 単に、他の人がみんなそろって C++ を使っているから という理由以外には思いつく答がありません。 そこで、詳しい事情をご存知の方がおられましたら、 ぜひとも教えて下さい。 もう一つ、もし、どの言語を使っても構わないという依頼があった場合に どの言語が最もエレガントなデザインをされているかという観点から 最優秀言語を教えて下さい。 以上、2点についてよろしくご指導をお願いします。 .

みんなの回答

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.7

誰もがC++を使っているかと言うとそうは思えないです。 分野によって違うと思います。 運動会に参加するならエレガントな服を着るでしょうか? 要するに目的にあった言語を選ぶ異が大事ということです。 C++は憶えるのも書くのもキツい方だと思いますが、 速度に関しては速いです。 数値計算とかは得に。 あとは、歴史もあるのでライブラリの充実もありますね。 最優秀言語というのは完全に個人の嗜好の問題です。 個人的にはpythonが好きです。 数値計算とかで速度が欲しいときにrubyとか使うのはいまいちでしょうし、 ちょっとしたワンライナーみたいなものを書くのにjavaは重たいでしょう。 優秀を明確に定義出来れば解答も明確になると思いますよ。

mqm
質問者

お礼

ご回答をありがとうございました。 Python がお気に入りの理由を よろしければお教え下さい。

全文を見る
すると、全ての回答が全文表示されます。
回答No.6

>Rubyがエレガントとお考えになられるということですが、どのような内容がエレガントと思われるかについて簡単なご解説をいただけると、参考になります。 個人的な感想ですが参考になれば。 ・プログラムを書き上げるまで時間があまりかからない (書きやすい。文字を多く必要とすることなく目的のプログラムが作成可能。) ・まともなオブジェクト指向言語である (Javaは中途半端、機能不足で不便、C++はミスをしやすい) ・プログラム言語に必要な機能や構造がほぼ全て揃っている (マニアックすぎて全てを使いきっている人は少ないが) 例えば1から10までの整数を足すコードは (1..10).inject(:+) 1から10まで掛け合わせるコードは、 (1..10).inject(:*) であるが、他の言語では面倒なので、ここで書く気になれない(^_^;) エレガントさとはあまり関係ないですが ・日本語の解説が充実している (英語環境ならPythonも同じくらい使いやすいと言われていたが、Pythonはやったことがないし、最近の事情は知らない) BASIC、C、C++、Fortran、Pascal、Java、VB、Smalltalk、Perl、CASL(アセンブラ) 等をやってみましたが、Rubyが一番手っ取り早く、ミスが少なく、プログラミングできますね。

全文を見る
すると、全ての回答が全文表示されます。
  • weavaest
  • ベストアンサー率15% (157/1020)
回答No.5

本当にC++って一番多くのプログラマーに使われてますか? この文章は、C++が多く使われているって意味?C++を使うプログラマーが多いって意味? 私の周りでは、C/C++は過去の言語って扱いですね。 過去の資産もC++ってそれほど多い気がしないです。 UNIX系のOSではCは結構使いましたが、C++はほとんどないです。 Windows系でもMFCを使ってC++ってのもありますが、VBの方が多い気がします。 組み込みはCが多いですね。あと昔ならアセンブラですかね。 WEBでC++はほとんどないです。 ちなみに、言ってることと裏腹に私が手がけているシステムは、UNIX、Window、組み込み、WEBの全てにC++のコードはあります。どれも現在開発中です。 多く使われるのは、いろいろな環境で使用可能なC/C++のコンパイラがあるってのが原因ではないでしょうか。 C++はエレガントではないと思います。有っても無くてもいい言語仕様があり、何でもできてしまうので、エレガントにもできるってのが本当のところではないでしょうか。要は開発者次第だと思います。 言語としては、Cの方がエレガントだと思います。

mqm
質問者

お礼

ご解説をいただきありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • tsukaps
  • ベストアンサー率33% (40/121)
回答No.4

他の高級言語はハードウェアを意識することなくプログラミングできますが、 OSや電気制御制御の世界では事足りません。 他の高級言語と異なり、アセンブラと同じレベルでメモリ操作を直接行える事です。 メモリ0000番地にデータFFFFを書き込むとか。 これがC・C++が使われている理由です。 近年はC#とかもありますが、C言語系は当面は無くなることはないでしょう。 電子レンジ・炊飯器・冷蔵庫・エアコン等々、 生活必需品のマイコンはほとんどC言語で組まれています。

mqm
質問者

お礼

色々な家電製品にまで関わっていたいることが分かり、とても参考になりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • catpow
  • ベストアンサー率24% (620/2527)
回答No.3

>>http://readwrite.jp/archives/19433 上記のサイトをみると、C++は、言語の人気ではC#と同じく5位になっていますね。 人気=利用者数 とはいえないかもしれませんが、個人的な経験でも、C++が一番多くのプログラマーに使われているってことはないと思います。 どこからC++が一番多くのプログラマに使われていると判断されたのですか?

mqm
質問者

お礼

素人ながら、一番たくさんプログラム解説書が本屋に並んでいることから C++が Windows のコードを始め多数の用途に使用されているという 解説文を信じ込んでいました。 最新情報をお知らせいただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

C++で作成した実行可能ファイルは、大抵どの環境でも直接実行可能(native application)ですので、高速動作可能です。 ハードウェアドライバはC++で作りますし、コンパイラやインタプリタもC++で作ることが結構多いです。 学術計算用など高速動作が必要なものも、C++で書くことが多いです。 native application - IT用語時点 http://e-words.jp/w/%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.html 最もエレガントな言語は知る限りRubyですね。

mqm
質問者

お礼

ご回答をいただきありがとうございました。 背景事情が理解でき、助かりました。

mqm
質問者

補足

Rubyがエレガントとお考えになられるということですが どのような内容がエレガントと思われるかについて 簡単なご解説をいただけると、参考になります。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5069/13245)
回答No.1

Windows用のネイティブアプリを作成する環境がC++と言うのが多く利用される理由じゃないでしょうか。 またUnix系のOSでも元々CでOSやアプリが作られていたので、Cを拡張したC++に移行して行ったと言うのも理由の一つだと思います。

mqm
質問者

お礼

ご回答をいただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラマーのフリーランスとして食べていくには、どの言語が一番良いでし

    プログラマーのフリーランスとして食べていくには、どの言語が一番良いでしょうか。 大学で情報通信工学科を専攻し、java、cobol、VB、C#の基礎的な部分は学びました。 今後、どの言語を学ぶべきか迷っています。 仕事が多いという観点で、どの言語を良いかアドバイスいただけたら 幸いです。 私個人的には、java に魅力を感じていますが、 (android 端末向けのアプリ開発に魅力を感じるため、java を少し考えたのですが、) フリーランサーでjavaで食べている人は もう少なくなったのでは、仕事は少ないのでは、と懸念を感じているのです。 このクラウドの時代、なるべく幅広く仕事がとれる言語を学びたいと思っています。 javascript で ajax アプリを作りたいと思ったこともありましたが、 一本に絞るには、ちょっと心もとないというか。 ホームページデザインやDBとの連携の仕事が多いとちょっと自信がありません。 web 系プログラミングを覚えるのなら、html5 に全力を注ぎたい気もしているのです。 本腰を入れて集中して学ぶため、1つの言語が限界です。 フリーランスとして働くためですので、 ライバルを増やすことになるのかもしれませんが、 できればよきアドバイスをよろしくお願い申し上げます。

  • C言語を使った~

    今日、九州工業大学でC言語を初めて使いました。 内容は、計算などがメインです。 例えば、 『国語、数学、英語の3教科の平均点を出せるようにし、  60点以下の場合は不合格と判別させるようにしなさい』 といったものです。 クラスではPCが得意なので大学生から指導内容外(switch文など)も習い、C言語に少し慣れました。 大学に入るとC言語は大切だと知ったので家でも身につけたいと思ったのですが、 何を使ったらいいのか 何を開けばいいのか などがわかりません。 なぜなら、大学ではLINUXを使っていたからです。 そもそもWindowsでもC言語を使ってあれこれできるのでしょうか。 上で述べた疑問、 大学ではC言語のどこを知っておくといいのかなどのご指導願います。

  • C言語のソースをC++言語に変換したい

    C言語で書かれていたソースをC++言語に変換したいのですが どのような点に気をつければよいでしょうか 現在、プログラムの主な構造は構造体とそれを扱う関数が実装されていて、 これらをクラスを使用して書き換えようと思います。 それ以外に気にしておくものはありますか。 例えば、ヘッダファイルで<stdio.h>をインクルードしているところがありますが、 これは<cstdio>に書き換えたほうがよいかもしれない、と言われたことはあります。 printfなどはprintfのまま使用しても大丈夫ですか。 std::printfに書き換えたり、iostreamを使用する方法に書き換えたほうがいいですか。 規格としてはどのようになっているのでしょうか。 (「過去との互換性のためにあるだけであり、非推奨」とかあったりしますか。)

  • C言語について

     プログラミング言語について質問があります。今、C言語を練習中ですが、C言語に関する本を見ると、大体、(入門者用の教科書しか知らないのですが)ファイル操作とか、構造体とかの説明とかで、終わっています。それで、自分はWindowsでグラフィック操作(例:動画とかを扱う)とかの、プログラムを組みたいのですが、C言語でそれができるのでしょうか。それともC++言語とか、Javaとか他の言語を習得しなければいけないのでしょうか。また、欲張りますが、C言語でグラフィック操作ができるのなら、どんな本を読めばいいのでしょうか。解らなかったので、投稿しました。よろしければ、回答宜しくお願いします。

  • 本格的にCプログラミングができるようになるまで

    大学生です。大学ではまだ授業がありませんので、独学でC言語のプログラミングを勉強しています。C言語の文法を一通り理解し、ポインタに関しても1冊読んで理解しました(つもりです)。 C言語を教えている先生に個人的に、今後何を勉強すべきか聞いたところ、「いろんなアルゴリズムとかデータ構造を覚えるといい」と言ってくださいました。しかし、私には難しい事項ばかりで、「これらを勉強する意味は何なのか?」という疑問もあります。 また、オープンソースになっているプログラムを見ると、私のレベルを遥かに超えたものばかりで、読んでもさっぱりです。さらに、GUIツールキットの使い方なんかはもちろん、ライブラリの使い方や作り方、ソースを複数ファイルに分割する方法すら知らないことに気づきました(恥ずかしい限りです)。 独学を始めた頃は、「C言語をマスターすればソフトが作れるようになるんだろう」程度の認識でした。しかしここに来て、あまりにも多くの事項を学ばねばならない気がしてきました。「演習あるのみ」と仰る方もいますが、何を演習すればいいのかも分かりません。 一人前にプログラムが書けるようになるまでには、何をしなければならないのでしょうか。目的や理由も添えていただけると嬉しいです。

  • C言語について

    私は今C言語で開発を行っています。その開発工程で困っていることを質問させていただきます。 そのシステムでは,最初入力を行い,そこから多分木のデータ構造にその入力データを格納していきます。しかし、格納した後に多分木の中にあるデータを調べてみると全然違う内容が参照されてしまいます。 どなたか原因と対処法をご指導ください。よろしくお願いします。

  • C言語について

    ゲームプログラミングとしてC言語を選んだのですが、 どこから手をつけていけばいいか? どうやって勉強していけばよいかわかりません。 個人的には書籍等を利用し、 勉強しようと思っているのですが、どうでしょうか? もし、お薦めの書籍等ありましたら教えてください。 また、それ以外に良い方法がありましたら、 教えて頂きたいです。 よろしくお願いします。

  • 30代でプログラマーになるのは無理なんでしょうか

    中学時代はできたらかっこいいだろうなという理由でC言語を勉強しました。高校時代はAVL木やソート、動的計画法、ヒープ、幅優先探索、深さ優先探索など基本的なアルゴリズムを勉強し、飯を食っている人向けに書かれた構造化設計技本の本を読んだり、Win32APIでコードを書いたりしました。その後、情報関係の学科を目指したのですが、大学に落ちてしまいダメでした。数年間引きこもり、バイトをしたんですが、やはりプログラミングの仕事がやりたくなりました。プログラミングスクールに通い、C#やVB.NET、SQL、ASP.NETについて勉強し、独学でデザインパターンなどを勉強しました。学校の人からは「お前はプログラムを組むのは速いけど、バグや漏れが多すぎる。向いてない」と言われてしまいました。でも、それでもあきらめきれず、C#やSQL、JavaScript、PHPでソフトを何本か作りました。調べたら、30代前半で未経験は厳しいと書いてありました。もう、年齢的には無理なのであきらめるべきなんでしょうか。すごく悩んでいるので、考えを聞かせてほしいです

  • C++かAPI?

    専門学校生で1年C言語とopenGLをやり、2年次プログラム専攻なのですが、他の言語にも興味がわきました。winAPI?は分かりやすいが使える部分が少ない、しかし仕組みを理解すると結構役立つ、というのをどこかで見たのですが時間的にもったいない寄り道になってしまうのでしょうか。それならc->C++という流れのほうがいいのでしょうか。 この二つの言語に絞った理由はCやった後の流れとしてとっつきやすいのかなと思ったからです。 勘違いしてる部分があると思いますが、ぜひ意見を聞かせてもらいたいです。

  • C言語のプログラムについて質問です。

    C言語のプログラムについて伺いたいことがあるんですが5人くらいの名前、数学、英語、国語の点数を入力して各教科の最高点、最低点、平均点、それぞれの数+英+国の合計点を表示するプログラムを構造体を使って作りたいと思っています。 もしよろしければ事細かに教えていただけないでしょうか。 よろしくお願いします。

中学2年男子の友達とのトラブル
このQ&Aのポイント
  • 中学2年男子の息子が友達とのトラブルに巻き込まれました。公園で遊んでいた際に起きたお金のトラブルから始まり、携帯を投げられるなどの被害もあります。
  • 息子は財布をチェックされた際にお金が足りなくなっていたと主張していますが、相手はそのことを否定しています。
  • 周りの友達も息子を信じてくれない状況となっており、彼のご両親に相談した方が良いか迷っています。どうすべきかアドバイスをお願いします。
回答を見る

専門家に質問してみよう