• ベストアンサー

最もポピュラーなC言語は?

どなたか、現在最もポピュラーなC言語はなにか、教えていただけませんか. しばらくプログラミングから離れていましたが、このごろまた復帰しました. 昔のC言語で書いたソースを近代化するつもりで、C#に取り組みました. ところが、これでよかったのかどうか疑問になってきました. C#よりも、C++にすべきではなかったのでしょうか. あるいは、なにもC++とか、C#にしなくても、昔のC言語でもWindows上で働くようにできないかと言う疑問です. そこで、伺います.  現在、プロの世界で実際に実用されているC言語はいったいどれでしょうか? ボーランドも含めて、教えてください. よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.9

C++の設計者自身が「C言語との互換性」を非常に重視しているので、 言語仕様としてもC言語との親和性が高く、コンパイラもC/C++コンパチブルなものが主流です。 # 設定ファイルやコンパイルオプション、拡張子(.c/.cpp)等で指定 また、新しい言語の派生が以前の言語を即駆逐するわけでもないので、 C言語も低レイヤの開発ではまだ現役だったりすることもあります。 とはいえ、Windowsに限定すれば、CよりはC++の方が多くなってると思いますが、 既に完成しているならばC言語のままでも十分に使えるはずです。 # 但し、ANSI/ISO/IEC系のCであることは必要。K&R時代のものは、 # 標準Cから外れていることもあるのでこの部分はコンパイラによっては修正が必要です。 そして、もしもC言語のソースを移植するならC++の方が格段に楽です。 きれいにIS準拠で書かれたCソースの大半はC++でも通ります。C#ではこうは行きません。 また、ほぼ全てのCの用途をC++で直接代用することは可能ですが(CでできることはC++でもできる)、 C#では必ずしも可能とは限りません(C#固有の利点と欠点がCとは違うので) C#は、名前にCを含むもののどちらかというとCよりはJava等の仲間というか。 MS⇔Sunの裁判でMSがJavaから手を引いた後に出してきたのが.NET、 ひいてはC#なので、「MS色全開のJava」といった方が近い気がします。

red_neck
質問者

お礼

MrBanさん 今度もご親切な説明を頂いて、有難うございました. お蔭様で、なにも知らなかった私にも、C++から、C#の本質とか、その出現の経緯などがようやくわかってきました.  ずっと昔のことですが、PDP-7のB言語から PDP-11のC言語へ発展したころは、私もまだ現役でしたので、折に触れてその間の消息なども聞くことが出来ました. しかし、「サンデー毎日」の現在では、今度いろいろ教えていただくまでは本当になにも知りませんでした. 心から、皆さんにお礼を言いたい気持ちです. ところで、C#と言うのは、「MS色全開のJAVA」と言うご説明は、言い当てて妙と存じます. 全く同感です. 明日から、雑用でしばらく手がはずせません. そんなわけで、とりあえずお礼を申し上げておきます. .

その他の回答 (10)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.11

>ただ、.NETが世に出てきたころ、「OSの種類に関わらず動作可能な >プラットフォーム」とよく聞きました. Basic、C、Java、ブラウザ等、MSが発売する各種言語及び アプリケーションは、例えそれが以前から有り一般的な物 であってもWindows上でしか動かない様に独自の機能拡張を 行ってユーザーの囲い込みを行ってきました。 その他、他のソフトメーカー等の参入を阻害している行為を 行っていると判定され独占禁止法違反に問われる事を避ける 建前の為に「C#は仕様が公開されているオープンな言語」と いう事にしているようです。

red_neck
質問者

お礼

ご教示、有難うございました. メーカーとしては、その本音は別として、一応の筋は通っているとも言えるわけですね.   無知をさらけ出すようですが、独占禁止法と言う法律は経済界の法律で、我々には縁遠い代物と思っていました. お蔭様で勉強になりました. お礼を申し上げます.  

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.10

既に回答が出ているように、CとC#は全く別物です。確かに名前に「C」が含まれますが、それをいうなら「C」obolもbasi「C」も「C」を含みます。それぞれがCとどの程度類似しているかは、名前の類似性にほぼ比例します。 冗談はさておき、最もポピュラーなCコンパイラということであれば、おそらくGCCだと思います。(C++ではなく)Cがよく使われる分野として、組み込み分野とか数値計算分野などがありますが、大多数の分野にわたって使われるのがGCCです。ただし、GCCでもターゲットが異なれば別物と見なすのであれば、これといって有力なものは思い当たりません。

red_neck
質問者

お礼

jactaさん ご教示、有難うございました. この世界について何もわかっていない人間が、一番手近なコンパイラに手を出して、これでいいのか、悪いのかと、迷っていたと言うのが実情でした. 皆さんのおかげで、どうやら進む道が見えてきました. 深くお礼を申し上げます.

回答No.8

参考までに、GNU Cコンパイラというのもあります。 Windows上でとのことですのでCygwinかMinGWをインストールすると利用できます。 GUIライブラリになりますがGTK1.x系はCでオブジェクト指向な感じになってます(この点はある意味近代化。)。GTKのプログラムソースはかなり参考になると思います。

参考URL:
http://gcc.gnu.org/
red_neck
質問者

お礼

有難うございました. さっそく GNU Compiler Collectionを参照してみました. こんなサイトがあるとは、全く知りませんでした. 皆さんのお蔭様で、いろんなことがわかってきました. 感激です.

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.7

GUI以外はそれなりに動くらしいですが…>mono とはいえ、仕事じゃまだまだ怖くて使えない。

red_neck
質問者

お礼

Mr.Banさん 重ねてのご教示、深くお礼を申し上げます. 有難うございました.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

一応 C# には mono ってプロジェクトがあるんだけど... どのくらい使えるんだろ?

red_neck
質問者

お礼

有難うございました. 勉強してみます.

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.5

C#の言語仕様自体は、ISO/IEC標準に一応なったのですけどね…。 現実的にはMSの.NET上以外では動かない現状があるので…>C# とはいえ、.NET用言語としてMSが力を入れてるのはC#だと思うので、 MSと心中する前提なら悪くないのかも。 積極的に覚えたいかどうかは別にして、JavaとかC++とか知ってるプロなら C#使うのはさして難しくないと思うので、構えることもないというか。 (個人的には、言語としては嫌いではないがMS依存なので「使えない」) 現行の主要なC++コンパイラは、大抵C言語のコンパイラとしても動きますよ。 # C専用でC++未対応なら知ってますが、逆にC未対応のC++専用コンパイラってあるのだろうか。

red_neck
質問者

お礼

ご説明、よくわかりました. お礼を申しあげます. ご説明のうちで、 >現行の主要なC++コンパイラは、大抵C言語のコンパイラとしても動きますよ。 無知をさらけ出して恥ずかしいのですが、C++コンパイラが旧C言語のコンパイラとしても動くことを全く知りませんでした. 旧C言語時代に作りためたソースを、10年の空白を経て、もう一度生き返らせたいというのが私の願いでした. そこで、C++を飛び越して、C#のコンパイラを手に入れました. C++コンパイラで、従来のソースを読んでくれることを知っていたら、こんな無駄な手間は要りませんでした. 早速、C++のコンパイラを入手します.    重ねて、お礼を申し上げます.

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

>プロの世界で実際に実用されているC言語 プロといっても色々あると思いますが Windowsやコンソール(PS等)のゲームに関してはC/C++です。 理由は開発環境としてC/C++以外に現実的な選択肢がないからです。 (私自身ゲームメーカーの人間なのでそれ以外はわかりません。) コンパイラとしてはC++ですが CかC++かはスタイルの問題です。 ちなみにコンソールの場合はいまだにCが使われているところが多いです。 他にも有名なライブラリ、例えばzlibやlibpngもCですね。 >2.Windows(XP or Vista)上で動くC言語コンパイラは入手可能でしょうか? 無料のものならVisual C++ 2005 Express Editionがあります。 http://www.microsoft.com/japan/msdn/vstudio >ボーランドも含めて、教えてください. 私の知る限りWindowsのゲームでVisualC++以外を使う事はありません。 (最新のDirectXを使う上でVisualC++の親和性が高い為) あとゲーム開発では統合環境として「コードウォーリアー」が有名です。 http://www.metrowerks.com

red_neck
質問者

お礼

sha-girlさん ご親切なご教示、お礼を申し上げます. お蔭様で、ゲーム・メーキングに関しては、CかC++が主力であり、C#は使われていないことがわかりました. 本当に有難うございました.

回答No.3

> プロのベテランの方たちは、どれに比重をかけていらっしゃるだろうか ほんまもんのプログラマならどれであろうが 処理系とマニュアルさえあれば もののひと月もあればそこそこ使えるようになるだろから 将来どっちに転んでも怖くはないんじゃないかしら。 # それがプロってもんでしょ。

red_neck
質問者

お礼

恐れ入りました. たった一ヶ月で慣熟できるとは、さすが、プロの面目が躍如と言うところです. たった一つのテーマを解決するのに、数年もかっかったようなボンクラ頭の持ち主としては、「敬服」の一語あるのみです. ちなみに、そのテーマとは、電子工学の回路網の解析でした. ただ、私の意図したところは、それを理解できるか否かではなく、現在において、もっともポピュラーな言語はどれかということでした.

noname#39970
noname#39970
回答No.2

>なぜかC#は影が薄い MS限定だから。ひいてはwindows限定だから。 マルチプラットフォーム環境(主にweb)が浸透しつつあるこのご時世に環境強依存開発言語。 >Windows(XP or Vista)上で動くC言語コンパイラ http://www.google.co.jp/search?q=windows%20c%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9&hl=ja&lr=lang_ja

red_neck
質問者

お礼

有難うございました. お蔭様で、C#が伸びない理由がわかりました. ただ、.NETが世に出てきたころ、「OSの種類に関わらず動作可能なプラットフォーム」とよく聞きました. ただのプロパガンダに過ぎなかったのですね. それとも、このC#を企画、設計した人たちの、実現できなかった夢に過ぎなかったかもしれませんね. 重ねて、お礼を申し上げます.

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

C言語はあくまで「C言語」であって、「C++」や「C#」、「C++/CLI」等は全て別の言語です。 最もポピュラーな「C言語」はあくまでISO/IEC9899:1990でしょう。 # 現行の最新規格はISO/IEC9899:1999ですが対応コンパイラは少ないです。 # C++なら「ISO/IEC 14882:2003」 # C#なら「ISO/IEC 23270:2003」 # C++/CLIなら「ECMA-372」 そして、Windows上でC言語の開発は可能です。 というかWin32API自体がもともとC互換のインターフェイスです。 現実的にはC言語で全部書くのはつらいことなどもあり、 製品アプリならC++、簡単な業務アプリなら旧来のVBなどの方が多いと思いますが、 Webアプリを中心にC#が増えてきたり等、いろいろな言語が、 時に組み合わせて使われていると思います。 コンパイラの話をされているなら、C/C++/C#にしろ、Windows用はMicrosoft社製の天下です。

red_neck
質問者

お礼

MrBanさん どうも早速のご教示、有難うございました. 私の質問の書き方が舌足らずの点もあったようです. 1.私の邪推かもしれませんが、なぜかC#は影が薄いような気がしないでもありません. 例えば、このサイトの項目にも、C++はあっても、C#はありません. 新聞の求人欄を見ても、C, VB, C++の担当者は求められていても、C#は求められていません. そこで、プロのベテランの方たちは、どれに比重をかけていらっしゃるだろうかを知りたいと言うのが質問の趣旨でした. 2.Windows(XP or Vista)上で動くC言語コンパイラは入手可能でしょうか? 再度、お手数をかけて恐縮ですが、よろしくお願いします.

関連するQ&A

  • C言語を独学で習得するには。

    C言語を習得したいのですが、どんな本で習得するのがオススメですか? あまり文字が多いとやる気がなくなってしまいますので図解と文がバランスのいいも。ソースの間違いがないもの。(以前使っていた本が間違いだらけでした)最もポピュラーな書き方をしているもの。(これも以前使ってた本は他とは違いクセがありました)を探しています。 文字を表示するのは出来ますが、ポインタ・文字列などはまだ理解が浅い感じです。 プログラミングなどを行う仕事に就きたいと思っていますのでC言語の本質を理解して応用のきいたプログラミングをしたいと思っています。 最終的にはC言語習得後にC++も学びたいと思っていますので、C++についてもオススメの本があったら教えてください。 特に、独学で完成度の高いソフトが作れるようになった方の意見をお願いします。 またタイトルとは別のことになってしまいますが、変数に日本語(漢字・ひらがな・カタカナ)を代入させるにはどうすればいいのでしょうか?

  • C言語でといわれたらC++も含む?

    あるゲーム会社の採用情報ページに、C言語でのプログラムソースの 提出が求められていました。 その場合、常識的な解釈として「C言語」というのは、「C++」は使わない ということなのでしょうか。 それとも、両方用いても構わないと言う意味の「C言語」なのでしょうか。 そんなものその会社に聞けといわれそうなのですけれども、 一般的にもそのあたりどうなのでしょうか。 Cの世界では「C言語」というと、「C++も含む」というニュアンスも あるのでしょうか。

  • javaとC言語について

    ふと疑問に思ったのですが、プログラミング言語にjavaとC言語と言うものがありますが、これから先(将来)、どちらの方が役に立つ(主流になる)と思いますか。 よろしくお願いします。

  • C言語からWindowsプログラミングに挑戦しているのですが・・・。

    現在C言語を使い、簡単なプログラミングは組めます。 そこで、Windowsプログラミングをやろうと、 「猫でもわかるWindowsプログラミング」を買いやり始めました。 正直、難しいです。 わからない所がたくさんで、Windowsプログラムを組んでいるみなさんは、用語を覚えているのでしょうか? 勉強法としては、やはりソースの羅列でしょうか?

  • PICプログラム C言語とアセンブラ言語

    PIC18シリーズを使用して、プログラミングをしています。コンパイラはCCS-Cです。今まではすべてC言語で書いてきたのですが、アセンブラでしか設定ができない部分があり、今までのC言語のソースに加えてアセンブラを組み合わせようと思っているのですが、C言語とアセンブラを組み合わせることは可能なのでしょうか?

  • C言語についてどうしてもわからない疑問

    プログラミング初心者です。 C言語を勉強中に疑問に思ったことが2つあります。 まず1つ目。 C言語以外のプログラミング言語、例えばjavaとかC#とかjsとかpythonとかrubyとかPHPとか、には開発者にとって便利なライブラリとかフレームワーク(僕にはこの2つの明確な違いがわかりません。が、どちらも「開発者が定義しなくてもよい関数やオブジェクトの集合」という認識があります)がありますよね。 そのおかげで色んな人達がプログラミングし易くなりました。 ネット(はてぶのホットエントリとか)でも「馬鹿な俺がプログラミングを勉強して〇〇を作った」といった記事をよく目にします。 でも「C言語を使って」というのは聞いたことがありません。 そもそも、C言語はそいういったライブラリやフレームワークが少ないように感じます。 検索してもrailsとかjqueryのようなフレームワーク(ライブラリ?)は見つかりません。 これが無かったらプログラムなんて作れないのでは? しかし、世間にはC言語で作られたプログラムが多いのもまた事実。 C言語ではいったいどのように開発が行われているのか教えてください。 2つ目 unixとかlinuxといったOSはC言語で書かれている聞いたことがあります。 しかし、プログラムの開発は「コードを書く→コンパイル(→デバッグ)→実行」という流れですよね。 ではOSを開発するときに、そのコードをどうやってコンパイルするのでしょうか? コンパイラはOSの上に立っているとするなら、OSがない状態でコンパイラはどこに立てばいいのか。 そこがわかりません。 誰かこの2つの疑問に答えてください。 お願いします。

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

    C言語の課題で数値を入力したらその数に40+して二乗するプログラミングを作りたいのですがソースがいまいちわかりません どなたかご教授お願いします

  • C言語で現在時刻に合わせて処理を行う。

    C言語で現在時刻に合わせて処理を行うプログラムを つくりたいのですが、そういうことは可能なのでしょうか? OSはWindowsXPでコンパイラはボーランドだとすると、  7:00~12:00ならおはよう  12:00~18:00ならこんにちは  18:00~7:00ならこんばんわ などと表示したい場合どの様にプログラムを書けばよいでしょうか?

  • C言語について大変初歩的なことなのですが…

    先日C言語でのプログラミングを勉強し始めようと思いたち、 「世界一わかりやすいCプログラミングの授業」という本を買ったのですが、 書いてあった、 #include <stdio.h> main() { printf("hello,world\n"); } というプログラムを作ったのですが、エラーが起きました。 そこで「C言語入門」と検索し調べたサイトでは、 mainの前にintと入っていたのでそうしてみたところエラーがおきませんでした。 本が間違っているとは思えないのですが、これはどういう事でしょうか、教えてください。 まだなんの知識もないのでお手数ですがそこを考慮していただくとありがたいです。 

  • C言語の勉強法

    VB,C#等の言語ができ、一応プログラミングの基礎を持っていると思っている者です。 仕事上でC言語と縁がありますが、書いた人によっても千差万別で、意味不明な標準関数?だらけで、コンパイラごと文法も異なり、訳の分からないフレームワークも得体しれずにいます。 VBはTips555みたいな小技がたくさん掲載されている本を熟読し、ひたすら真似しているうちに身につきました。C言語はアルゴリズムや入門書は多数見受けられますが、実用的な本はあまり見かけません。みなさんはどうやってC言語を覚えたのでしょうか。 お願いします。

専門家に質問してみよう