【雑談】C言語初学者に適した開発環境は?
【雑談】C言語初学者に適した開発環境は?
以前から何度かこの話題は出ていましたが、改めて皆さんのご意見をお伺いしたいと思います。
C言語初学者に適した開発環境と、それが適していると思う理由を教えてください。
C言語初学者に適した開発環境と、それが適していると思う理由を教えてください。
Re:【雑談】C言語初学者に適した開発環境は?
C++になってしまい、
Visual C++, Boland C++ Compiler ぐらいしか使ったことがない者の意見ではありますが、
個人的にふたつのうちなら断然
Borland C++ Compiler
です。
理由
・設定することが少ない。(DXライブラリを使うなら別ですが…)
・サイズが軽いので、インストールが面倒に感じない。
・はじめに限られた機能しかないものから、より上質な環境にうつったときのうれしさと感動w
・たくさん知らないボタンや機能で埋め尽くされることはない。
Visual C++, Boland C++ Compiler ぐらいしか使ったことがない者の意見ではありますが、
個人的にふたつのうちなら断然
Borland C++ Compiler
です。
理由
・設定することが少ない。(DXライブラリを使うなら別ですが…)
・サイズが軽いので、インストールが面倒に感じない。
・はじめに限られた機能しかないものから、より上質な環境にうつったときのうれしさと感動w
・たくさん知らないボタンや機能で埋め尽くされることはない。
Re:【雑談】C言語初学者に適した開発環境は?
> Maさん
> ・設定することが少ない。(DXライブラリを使うなら別ですが…)
bcc32.cfgとilink32.cfg、それから環境変数PATHの設定が必要でしたっけ。
わかっていれば簡単ですが、そうでないと戸惑いませんか?
まあ、この辺のことは、まともにプログラミングをやろうと思えば遅かれ早かれ習得しなければならないので、逃げずに覚えた方がよいとは思いますが...
DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。
> ・設定することが少ない。(DXライブラリを使うなら別ですが…)
bcc32.cfgとilink32.cfg、それから環境変数PATHの設定が必要でしたっけ。
わかっていれば簡単ですが、そうでないと戸惑いませんか?
まあ、この辺のことは、まともにプログラミングをやろうと思えば遅かれ早かれ習得しなければならないので、逃げずに覚えた方がよいとは思いますが...
DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。
Re:【雑談】C言語初学者に適した開発環境は?
Borland C++ 5.5をお勧めします。
エディタは「C言語を始めよう」です。 http://homepage3.nifty.com/aokura/
設定はBCCが格納されている場所をクリックするだけなので、初心者でも大丈夫。
ビルドや実行もワンクリック。
一番いいのは、プロジェクトを作らなくて良いので、初学者は分割ファイルになるなんてことは
ないし、便利。とにかく軽いので起動もはやい。
エディタは「C言語を始めよう」です。 http://homepage3.nifty.com/aokura/
設定はBCCが格納されている場所をクリックするだけなので、初心者でも大丈夫。
ビルドや実行もワンクリック。
一番いいのは、プロジェクトを作らなくて良いので、初学者は分割ファイルになるなんてことは
ないし、便利。とにかく軽いので起動もはやい。
Re:【雑談】C言語初学者に適した開発環境は?
> nonさん
主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
あるいは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?

主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
あるいは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?

Re:【雑談】C言語初学者に適した開発環境は?
Windows限定ですが私はVC++EEですね。
VCひとつでコンパイラ、そこそこ高機能なエディタ、デバッガが全て揃いますので導入のための敷居は低いと思います。
高機能なので最初はいろいろ戸惑うことはあるかもしれませんが、初心者用の使い方を説明してくれているページはいくらでもありますし、最初からある程度高機能なものを触らせておくほうが伸びるように思うんですよね。
VC以外はフリー限定だとエディタ、デバッガが別になるのでその辺の準備がちょっと手間な気がします。(Turbo C++は配布終了しちゃったし。)
こういうのは使い慣れたエディッタがある人だと気にもならないんでしょうが。
> DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。
そんなことはないと思いますよ。
DXライブラリ自体はC++で作られているので拡張子はcppにしておく必要はありますが、DXライブラリとのインタフェースはCしか知らない人でも問題ないように作られていますから、ゲーム本体がCであっても問題ないですが。
C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?
VCひとつでコンパイラ、そこそこ高機能なエディタ、デバッガが全て揃いますので導入のための敷居は低いと思います。
高機能なので最初はいろいろ戸惑うことはあるかもしれませんが、初心者用の使い方を説明してくれているページはいくらでもありますし、最初からある程度高機能なものを触らせておくほうが伸びるように思うんですよね。
VC以外はフリー限定だとエディタ、デバッガが別になるのでその辺の準備がちょっと手間な気がします。(Turbo C++は配布終了しちゃったし。)
こういうのは使い慣れたエディッタがある人だと気にもならないんでしょうが。
> DXライブラリはC++でないと使えないので、C言語初学者が使うことは原則ありませんね。
そんなことはないと思いますよ。
DXライブラリ自体はC++で作られているので拡張子はcppにしておく必要はありますが、DXライブラリとのインタフェースはCしか知らない人でも問題ないように作られていますから、ゲーム本体がCであっても問題ないですが。
C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?
Re:【雑談】C言語初学者に適した開発環境は?
> DXライブラリ自体はC++で作られているので拡張子はcppにしておく必要はありますが、DXライブラリとのインタフェースはCしか知らない人でも問題ないように作られていますから、ゲーム本体がCであっても問題ないですが。
それは分かりますが、C言語そのものを学習することとは分離して考える必要がありますね。
でないと、CとC++の区別がつかなくなってしまいます。
> C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?
範囲外です。
CとC++は別の言語です。Cで書かれたソースをC++でコンパイルすることは、かなりの部分までできますが、常にできるわけではありません。Cではできないことができてしまうことも問題があります。
自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。
それは分かりますが、C言語そのものを学習することとは分離して考える必要がありますね。
でないと、CとC++の区別がつかなくなってしまいます。
> C言語で書かれたソースをC++コンパイラでコンパイルすることはたかぎさんの質問範囲外なんでしょうか?
範囲外です。
CとC++は別の言語です。Cで書かれたソースをC++でコンパイルすることは、かなりの部分までできますが、常にできるわけではありません。Cではできないことができてしまうことも問題があります。
自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。
Re:【雑談】C言語初学者に適した開発環境は?
質問の意図を理解しました。
たかぎさんのいうC言語初学者とは、最終的にはC言語を完璧に理解する(スペシャリストになる)ことを目的とした人ということですね。
ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。
導入とか手間暇かかりますがそこで挫折するような人は頂までは達せないでしょう、ということで。
エディタは教える人の好みで。
> 自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。
(あくまで私見)
その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。
そういう人たちはC言語を完璧にマスターすることは目的としていないので、最初の時点でCとC++を厳密に分けてあーだこーだと薀蓄をたれるのは、プログラミングというものに対するイメージを悪化させ、モチベーションを下げる要因にしかならないと思います。
例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。
最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。
もちろん、最初から頂を目指す人のためのページは必要と思いますよ。
教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。
たかぎさんのいうC言語初学者とは、最終的にはC言語を完璧に理解する(スペシャリストになる)ことを目的とした人ということですね。
ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。
導入とか手間暇かかりますがそこで挫折するような人は頂までは達せないでしょう、ということで。
エディタは教える人の好みで。
> 自分が何を学んでいるかを曖昧にしたままだと、まともな学習はできないと思います。
(あくまで私見)
その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。
そういう人たちはC言語を完璧にマスターすることは目的としていないので、最初の時点でCとC++を厳密に分けてあーだこーだと薀蓄をたれるのは、プログラミングというものに対するイメージを悪化させ、モチベーションを下げる要因にしかならないと思います。
例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。
最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。
もちろん、最初から頂を目指す人のためのページは必要と思いますよ。
教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。
Re:【雑談】C言語初学者に適した開発環境は?
> たかぎさんのいうC言語初学者とは、最終的にはC言語を完璧に理解する(スペシャリストになる)ことを目的とした人ということですね。
> ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。
スペシャリストというか、実際に(C++ではなく)Cを使ってプログラミングができるようになることを目指すということですね。ですので、現実問題としては、C99を習得する必要は必ずしもありません。
例えば、組込み業界でNC30WAを使ってM16Cの開発をする場合、C++を使ってCを習得した気になったプログラマは使えませんね。そういうことです。
なお、C言語を習得する時点では、将来的にNC308WAやHEWを使うかどうかはわかりませんので、それに拘る必要はないと思います。
> その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。
一概にはいえません。
就職に有利になるように、または何らかの資格をとるために学ぼうとする人、あるいは学校の授業で単位をとるために学習する人は、少なくとも初期の段階では、アプリケーションを作ることが第一の目的ではありません。
そして、そうした人は少数派ではないはずです(もしかすると過半数がこちらかもしれません)。
> 例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。
純粋な運動不足解消ならそれでもよいでしょうが、たとえ草野球でも、自分が軟式野球をやっているのか硬式野球をやっているのか、あるいはソフトボールをやっているのかぐらいは認識するはずです。
プロを目指さなくても、自分が何をやっているかぐらいはわかっていないと、グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。
> 最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。
趣味でプログラミングをやっていて、何でもよいので希望するアプリケーションが作れればよいという人のニーズとしてはそうかと思います。
> 教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。
これは同感です。
> ということであればC99に対応しているもののほうがよいでしょうからgccじゃないでしょうか。
スペシャリストというか、実際に(C++ではなく)Cを使ってプログラミングができるようになることを目指すということですね。ですので、現実問題としては、C99を習得する必要は必ずしもありません。
例えば、組込み業界でNC30WAを使ってM16Cの開発をする場合、C++を使ってCを習得した気になったプログラマは使えませんね。そういうことです。
なお、C言語を習得する時点では、将来的にNC308WAやHEWを使うかどうかはわかりませんので、それに拘る必要はないと思います。
> その通りだとは思いますが、C言語というのは多くの未経験者にとってゲーム等のアプリケーションを作るためのツールのひとつでしかないと思います。
一概にはいえません。
就職に有利になるように、または何らかの資格をとるために学ぼうとする人、あるいは学校の授業で単位をとるために学習する人は、少なくとも初期の段階では、アプリケーションを作ることが第一の目的ではありません。
そして、そうした人は少数派ではないはずです(もしかすると過半数がこちらかもしれません)。
> 例えが変かもしれませんが、運動不足解消を目的として野球を始めた人にプロ野球の頂点を目指そうとしている人と同じトレーニングはさせないでしょう。
純粋な運動不足解消ならそれでもよいでしょうが、たとえ草野球でも、自分が軟式野球をやっているのか硬式野球をやっているのか、あるいはソフトボールをやっているのかぐらいは認識するはずです。
プロを目指さなくても、自分が何をやっているかぐらいはわかっていないと、グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。
> 最初は曖昧であっても、より高みを目指す人はおのずとそういう点に気が付いて解決していくと思います。
趣味でプログラミングをやっていて、何でもよいので希望するアプリケーションが作れればよいという人のニーズとしてはそうかと思います。
> 教わる側の目的に合わせて複数の選択肢があることが望ましいので、どういう人にもこれが最高というのは無いんじゃないかと思います。
これは同感です。
Re:【雑談】C言語初学者に適した開発環境は?
> > nonさん
> 主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
> つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
> あついは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?
>
「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。
エディタとしての機能はいまいちです。でも、初学者には充分だと思います。
プロジェクトを作らなくていいので、課題ごとにフォルダをわける必要もなく、ちっちゃなプログラムが
たくさん一つのフォルダに入ってても気になりません。
また、軽いので、同時にたくさんのファイルを開いて、課題を次々に解いても、カットアンドコピーも
やりやすく重宝します。
> 主になるのは、「Borland C++ Compiler」でしょうか? それとも「C言語を始めよう」でしょうか?
> つまり、「C言語を始めよう」無しでも「Borland C++ Compiler」をお勧めしますか?
> あついは、「Borland C++ Compiler」無しでも「C言語を始めよう」をお勧めしますか?
>
「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。
エディタとしての機能はいまいちです。でも、初学者には充分だと思います。
プロジェクトを作らなくていいので、課題ごとにフォルダをわける必要もなく、ちっちゃなプログラムが
たくさん一つのフォルダに入ってても気になりません。
また、軽いので、同時にたくさんのファイルを開いて、課題を次々に解いても、カットアンドコピーも
やりやすく重宝します。
Re:【雑談】C言語初学者に適した開発環境は?
> 「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。
確かLSI-C86にも対応していたと思います。
確かLSI-C86にも対応していたと思います。
Re:【雑談】C言語初学者に適した開発環境は?
> プロを目指さなくても、自分が何をやっているかぐらいはわかっていないと、
> グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。
うまい例えですね。ボールを買うときに説明できず、
スポーツ用品店の人を困らせるわけですね。
他の言語の経験はありましたが、C/C++/MFCを区別せずに始めた私としては、
C/C++を区別することは重要だと思います。不要な苦労をしましたから。
将来的に両方身に着けるにしても、脱初心者程度までは片方だけを学習し、
その後、別の言語として他方を学習したほうが、トータルコストも下がるでしょう。
それとVC++2008EEに一票。理由はメジャーだからです。
かつては同じ理由でBCC5.5がベストだったと思います。
> グローブなどの野球用品の選択も、練習試合の申し込みもできませんね。
うまい例えですね。ボールを買うときに説明できず、
スポーツ用品店の人を困らせるわけですね。
他の言語の経験はありましたが、C/C++/MFCを区別せずに始めた私としては、
C/C++を区別することは重要だと思います。不要な苦労をしましたから。
将来的に両方身に着けるにしても、脱初心者程度までは片方だけを学習し、
その後、別の言語として他方を学習したほうが、トータルコストも下がるでしょう。
それとVC++2008EEに一票。理由はメジャーだからです。
かつては同じ理由でBCC5.5がベストだったと思います。
Re:【雑談】C言語初学者に適した開発環境は?
> うまい例えですね。ボールを買うときに説明できず、
> スポーツ用品店の人を困らせるわけですね。
軟式のグローブは柔らかくて安価ですので、初心者には使い易いはずです。
運動不足解消にキャッチボールをするぐらいなら何でも構いませんが、軟式グローブで硬式の打球を受けていると、そのうちグローブが破損したり怪我をする羽目になりますね。
CとC++も、ある意味そんな関係かもしれません。
> それとVC++2008EEに一票。理由はメジャーだからです。
メジャーなのは確かですね。
難点は、メジャーでいられる期間が短いことですが...
じきに2010も出ますので、2008に特化したものは陳腐化します。
> かつては同じ理由でBCC5.5がベストだったと思います。
これは何ともいえないのでは?
Borland C++ Compiler 5.5の全盛期でも、Visual C++ 6.0の方がメジャーだったはずです。
> スポーツ用品店の人を困らせるわけですね。
軟式のグローブは柔らかくて安価ですので、初心者には使い易いはずです。
運動不足解消にキャッチボールをするぐらいなら何でも構いませんが、軟式グローブで硬式の打球を受けていると、そのうちグローブが破損したり怪我をする羽目になりますね。
CとC++も、ある意味そんな関係かもしれません。
> それとVC++2008EEに一票。理由はメジャーだからです。
メジャーなのは確かですね。
難点は、メジャーでいられる期間が短いことですが...
じきに2010も出ますので、2008に特化したものは陳腐化します。
> かつては同じ理由でBCC5.5がベストだったと思います。
これは何ともいえないのでは?
Borland C++ Compiler 5.5の全盛期でも、Visual C++ 6.0の方がメジャーだったはずです。
Re:【雑談】C言語初学者に適した開発環境は?
ここのサイトはどう見てもゲームが簡単にできるように解説して
くれているサイトです(掲示板での学生の質問は別として)。
そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。
CとC++を厳密に覚えたいと思う人、専業につきたい人は、専門学校、大学、あるいは
それなりのサイトで勉強すればいいわけです。
このサイトで勉強する人にはVC20008EEが最適です。
くれているサイトです(掲示板での学生の質問は別として)。
そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。
CとC++を厳密に覚えたいと思う人、専業につきたい人は、専門学校、大学、あるいは
それなりのサイトで勉強すればいいわけです。
このサイトで勉強する人にはVC20008EEが最適です。
Re:【雑談】C言語初学者に適した開発環境は?
> > 「C言語を始めよう」がお勧めです。ただし、「C言語を始めよう」はBCC専用なのです。
>
> 確かLSI-C86にも対応していたと思います。
>
バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。
>
> 確かLSI-C86にも対応していたと思います。
>
バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。
Re:【雑談】C言語初学者に適した開発環境は?
> すずめさん
> ここのサイトはどう見てもゲームが簡単にできるように解説して
> くれているサイトです(掲示板での学生の質問は別として)。
> そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。
このサイト(dixq.net)の場合はそうだと思います。
今回の質問はそれに特化しているわけではありません。
> nonさん
> バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。
なるほど。はじめて知りました。
> ここのサイトはどう見てもゲームが簡単にできるように解説して
> くれているサイトです(掲示板での学生の質問は別として)。
> そしてこのサイトが好きでみんなが集まり、盛り上がっているんだと思います。
このサイト(dixq.net)の場合はそうだと思います。
今回の質問はそれに特化しているわけではありません。
> nonさん
> バージョンが新しくなってから、BCC専用になり、LSI-C86試用版は使えなくなりました。
なるほど。はじめて知りました。
Re:【雑談】C言語初学者に適した開発環境は?
> これは何ともいえないのでは?
> Borland C++ Compiler 5.5の全盛期でも、
> Visual C++ 6.0の方がメジャーだったはずです。
済みません。言葉が足りませんでした。
フリーのコンパイラの中で、という意味です。
VS2005からは、最もメジャーなIDEに無償のエディションができた、という意味で、
BCC5.5の頃よりも良い環境(時代)になっていると思います。
(市場調査をしている訳ではなく、「最もメジャー」は単なる私の印象です)
> 難点は、メジャーでいられる期間が短いことですが...
> じきに2010も出ますので、2008に特化したものは陳腐化します。
これはあまり難点と感じません。
教える立場としては、例えば10年後も推奨できるようなコンパイラを
想定しているのかもしれませんが、教わる立場としては、コンパイラの
流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
身に着けてほしいものです。
また2008に特化と言っても、VS2008の方言を積極的に教える訳ではなく、
プロジェクトの作り方や、お節介な警告の消し方等だけで良いのでは?
> Borland C++ Compiler 5.5の全盛期でも、
> Visual C++ 6.0の方がメジャーだったはずです。
済みません。言葉が足りませんでした。
フリーのコンパイラの中で、という意味です。
VS2005からは、最もメジャーなIDEに無償のエディションができた、という意味で、
BCC5.5の頃よりも良い環境(時代)になっていると思います。
(市場調査をしている訳ではなく、「最もメジャー」は単なる私の印象です)
> 難点は、メジャーでいられる期間が短いことですが...
> じきに2010も出ますので、2008に特化したものは陳腐化します。
これはあまり難点と感じません。
教える立場としては、例えば10年後も推奨できるようなコンパイラを
想定しているのかもしれませんが、教わる立場としては、コンパイラの
流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
身に着けてほしいものです。
また2008に特化と言っても、VS2008の方言を積極的に教える訳ではなく、
プロジェクトの作り方や、お節介な警告の消し方等だけで良いのでは?
Re:【雑談】C言語初学者に適した開発環境は?
> 教わる立場としては、コンパイラの
> 流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
> 身に着けてほしいものです。
なるほど。ただ、2010が出ると、おそらく近いうちに2008は入手できなくなりますね。
その点はどうでしょうか?
> 教える立場としては、例えば10年後も推奨できるようなコンパイラを
> 想定しているのかもしれませんが、
手の内を明かすと、将来的に書籍化までにらんだ計画を考えています。
ウェブサイトの場合、比較的容易に新しいバージョンに追従できますが、書籍の場合はそうはいきません。
売れ行きがよければ、バージョンが上がる度に2010対応版とか2013対応版とかを出せばよいのでしょうが、そのような商法は何となく良心の呵責もあります。
Visual C++ 2008 Express Editionが、本製品がバージョンアップしたあとでも、Borland C++ Compiler 5.5.1のように入手可能な状態が続き、欲をいえば容易に再配布できるのであればよいのですが...
> 流行り廃りを感じる前に、コンパイラの差異を吸収できるだけの実力を
> 身に着けてほしいものです。
なるほど。ただ、2010が出ると、おそらく近いうちに2008は入手できなくなりますね。
その点はどうでしょうか?
> 教える立場としては、例えば10年後も推奨できるようなコンパイラを
> 想定しているのかもしれませんが、
手の内を明かすと、将来的に書籍化までにらんだ計画を考えています。
ウェブサイトの場合、比較的容易に新しいバージョンに追従できますが、書籍の場合はそうはいきません。
売れ行きがよければ、バージョンが上がる度に2010対応版とか2013対応版とかを出せばよいのでしょうが、そのような商法は何となく良心の呵責もあります。
Visual C++ 2008 Express Editionが、本製品がバージョンアップしたあとでも、Borland C++ Compiler 5.5.1のように入手可能な状態が続き、欲をいえば容易に再配布できるのであればよいのですが...
Re:【雑談】C言語初学者に適した開発環境は?
> なるほど。ただ、2010が出ると、おそらく近いうちに2008は入手できなくなりますね。
> その点はどうでしょうか?
その時点で最もメジャーなものを選んだらよいと思います。
とはいえ、ようやくご質問の意図が理解できました。
VS2005EEも2009年3月末で提供が終わったそうですね。
(ダウンロードが不可能というわけではないですが)
長期的なことを考えるとMSは全くあてになりませんね。
気前良くアーカイブを提供し続けるようなことはないでしょう。
ということで、今回のケースで推奨できるような環境を知りません。
メジャーなもの以外の経験が少ないので。
# BCC5.5等はどうしても時代遅れに感じるな。見栄えもぱっとしないし。
# 初学者とはいえデバッガの使い方も教えてあげた方が良いと思う。
> その点はどうでしょうか?
その時点で最もメジャーなものを選んだらよいと思います。
とはいえ、ようやくご質問の意図が理解できました。
VS2005EEも2009年3月末で提供が終わったそうですね。
(ダウンロードが不可能というわけではないですが)
長期的なことを考えるとMSは全くあてになりませんね。
気前良くアーカイブを提供し続けるようなことはないでしょう。
ということで、今回のケースで推奨できるような環境を知りません。
メジャーなもの以外の経験が少ないので。
# BCC5.5等はどうしても時代遅れに感じるな。見栄えもぱっとしないし。
# 初学者とはいえデバッガの使い方も教えてあげた方が良いと思う。
Re:【雑談】C言語初学者に適した開発環境は?
私なりに主要な開発ツールの比較をしてみます。
【Visual C++ 2008 Express Edition】
長所
・デバッガが使い易い
・情報が豊富
・職場で使われることも多い(Visual Studio 2008として)
短所
・重い
・IDEの操作を覚える必要がある
・CとC++を混同する可能性大
・_s付きの変数など、癖が多い
・いつまで入手できるかわからない
・再配布できない
【Borland C++ Compiler】
長所
・軽い
・情報が豊富
・覚えることが少ない
短所
・Turbo Debuggerが使いにくい
・バグが多い
・再配布できない
・(いつまで入手できるかわからない)
【Cygwin】
長所
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応
短所
・重い(サイズが大きい)
・デフォルトでは日本語のエラーメッセージが出ない
【MinGW】
長所
・軽い
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応
短所
・long doubleを使った場合にprintf/scanf系関数が誤動作する。
・デフォルトでは日本語のエラーメッセージが出ない

【Visual C++ 2008 Express Edition】
長所
・デバッガが使い易い
・情報が豊富
・職場で使われることも多い(Visual Studio 2008として)
短所
・重い
・IDEの操作を覚える必要がある
・CとC++を混同する可能性大
・_s付きの変数など、癖が多い
・いつまで入手できるかわからない
・再配布できない
【Borland C++ Compiler】
長所
・軽い
・情報が豊富
・覚えることが少ない
短所
・Turbo Debuggerが使いにくい
・バグが多い
・再配布できない
・(いつまで入手できるかわからない)
【Cygwin】
長所
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応
短所
・重い(サイズが大きい)
・デフォルトでは日本語のエラーメッセージが出ない
【MinGW】
長所
・軽い
・覚えることが比較的少ない
・職場で使われることも多い(GCCという意味で)
・C99にある程度対応
短所
・long doubleを使った場合にprintf/scanf系関数が誤動作する。
・デフォルトでは日本語のエラーメッセージが出ない

Re:【雑談】C言語初学者に適した開発環境は?
> その時点で最もメジャーなものを選んだらよいと思います。
その時点で最もメジャーなものというのが難しいんですね。
例えば、現時点でも、C言語の開発環境として最も使われているのがVisual C++かというと、必ずしもそうとはいえません。ましてや、2008かというと、もっと怪しくなります。
Visual Studioを使った開発としては、C#がメジャーです。
ゲーム業界は確かにVisual C++を使いますが、その場合でも、CではなくC++です。
そう考えると、(C++ではなく)Cの開発ツールとして最も使われているのは、もしかするとGCCかもしれないという予想もできるわけです。
もちろん、知名度としてはVisual C++の方が高いでしょうが...

その時点で最もメジャーなものというのが難しいんですね。
例えば、現時点でも、C言語の開発環境として最も使われているのがVisual C++かというと、必ずしもそうとはいえません。ましてや、2008かというと、もっと怪しくなります。
Visual Studioを使った開発としては、C#がメジャーです。
ゲーム業界は確かにVisual C++を使いますが、その場合でも、CではなくC++です。
そう考えると、(C++ではなく)Cの開発ツールとして最も使われているのは、もしかするとGCCかもしれないという予想もできるわけです。
もちろん、知名度としてはVisual C++の方が高いでしょうが...

Re:【雑談】C言語初学者に適した開発環境は?
BCC, VC++しか使ったことがないのを断っておきます。
C言語初学者→文法を理解する段階とすると、BCCが良いと思います。
cfgファイルや環境変数の設定は理解して欲しいと思いますし、
実際私が中学生の時にC言語を始めた際には何ら問題なく設定できました。
コマンドプロンプトの扱い(cd, dir など)も慣れますし。
また、デバッガが使いにくいということがありますが、
まだ文法を知っていろいろ試している状態では必須ではないと思います。
一通り学習し終えた後にVC++などの統合開発環境に触れ、
デバッグの仕方について学ぶのも遅くはないでしょう。
そのころにはVC++などの操作についても理解できるだけの力はついていると思います。
C言語初学者→文法を理解する段階とすると、BCCが良いと思います。
cfgファイルや環境変数の設定は理解して欲しいと思いますし、
実際私が中学生の時にC言語を始めた際には何ら問題なく設定できました。
コマンドプロンプトの扱い(cd, dir など)も慣れますし。
また、デバッガが使いにくいということがありますが、
まだ文法を知っていろいろ試している状態では必須ではないと思います。
一通り学習し終えた後にVC++などの統合開発環境に触れ、
デバッグの仕方について学ぶのも遅くはないでしょう。
そのころにはVC++などの操作についても理解できるだけの力はついていると思います。
Re:【雑談】C言語初学者に適した開発環境は?
> fatensさん
> コマンドプロンプトの扱い(cd, dir など)も慣れますし。
昔はMS-DOSで、ファイルのコピーや削除なども全部コマンドで行わなければなりませんでしたが、現在はエクスプローラを併用することで、せいぜいcdコマンドとコンパイルのコマンド(bcc32とかclとかgccとか)が使えれば十分ですね。
> 一通り学習し終えた後にVC++などの統合開発環境に触れ、
> デバッグの仕方について学ぶのも遅くはないでしょう。
だとすると、Visual C++ 2008を使って、コマンドプロンプト上でclコマンドを使ってコンパイルするところから始め、ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。
> コマンドプロンプトの扱い(cd, dir など)も慣れますし。
昔はMS-DOSで、ファイルのコピーや削除なども全部コマンドで行わなければなりませんでしたが、現在はエクスプローラを併用することで、せいぜいcdコマンドとコンパイルのコマンド(bcc32とかclとかgccとか)が使えれば十分ですね。
> 一通り学習し終えた後にVC++などの統合開発環境に触れ、
> デバッグの仕方について学ぶのも遅くはないでしょう。
だとすると、Visual C++ 2008を使って、コマンドプロンプト上でclコマンドを使ってコンパイルするところから始め、ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。
Re:【雑談】C言語初学者に適した開発環境は?
目的別に考えてみたいと思います。
■とにかくアプリケーションを作りたい
・ゲームを作りたい
Cである必要はない → C++を使ってもよい → C#やHSPでもよい
・GUIアプリケーションが作りたい
VC++2008EEにせよBCCにせよGCCにせよ、リソースエディタがない → C#やVBで十分
・コマンドラインツールを作りたい
PerlとかRubyとかのLLでよいのでは?
・ウェブアプリケーションを作りたい
PerlとかPHPとかRubyとか、あるいはJavaとかC#とか...
・マイコンのプログラムを作りたい
使うマイコンに応じたクロスコンパイラと、場合によってはアセンブラを使う必要あり
■C言語をしっかり習得したい
・学校の授業で良い成績をとりたい
授業で使っている環境に合わせるのが吉
・情報処理試験に合格したい
C99ではダメ、純粋なC90を学習すべき。IDEはオーバースペック → コマンドラインコンパイラで十分
実は過去問の丸暗記の方が効果的とか...
・仕事で使えるようになりたい
仕事で使う環境に合わせるのが吉
就職前など、環境が特定できないなら、特定ツールに依存しない学習方法が吉
・C言語の仕様を極めたい
規格書に目を通すことが必須
可能な限り多くの処理系に触れるべき

■とにかくアプリケーションを作りたい
・ゲームを作りたい
Cである必要はない → C++を使ってもよい → C#やHSPでもよい
・GUIアプリケーションが作りたい
VC++2008EEにせよBCCにせよGCCにせよ、リソースエディタがない → C#やVBで十分
・コマンドラインツールを作りたい
PerlとかRubyとかのLLでよいのでは?
・ウェブアプリケーションを作りたい
PerlとかPHPとかRubyとか、あるいはJavaとかC#とか...
・マイコンのプログラムを作りたい
使うマイコンに応じたクロスコンパイラと、場合によってはアセンブラを使う必要あり
■C言語をしっかり習得したい
・学校の授業で良い成績をとりたい
授業で使っている環境に合わせるのが吉
・情報処理試験に合格したい
C99ではダメ、純粋なC90を学習すべき。IDEはオーバースペック → コマンドラインコンパイラで十分
実は過去問の丸暗記の方が効果的とか...
・仕事で使えるようになりたい
仕事で使う環境に合わせるのが吉
就職前など、環境が特定できないなら、特定ツールに依存しない学習方法が吉
・C言語の仕様を極めたい
規格書に目を通すことが必須
可能な限り多くの処理系に触れるべき

Re:【雑談】C言語初学者に適した開発環境は?
>だとすると、Visual C++ 2008を使って、コマンドプロンプト上でclコマンドを使ってコンパイルするところから始め、
>ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。
確かにそうですね。
導入することを考えると、比較的簡単にインストールできるVC++に比べ、
ダウンロードに名前やメールアドレスが必要なBCCは抵抗を感じる人もいるかもしれません。
(30日以内に製品の登録は必要ですが……)
目的別については分からないものもありますが概ねその通りだと思います。
強いて挙げるなら...
・ゲームを作りたい
既存のツールを使えばよい(プログラミングが目的ではない)
>ある程度進んだところで(デバッガを使ったり、多数のソースファイルに分割したりする段階で)IDEを使ってもよいかもしれませんね。
確かにそうですね。
導入することを考えると、比較的簡単にインストールできるVC++に比べ、
ダウンロードに名前やメールアドレスが必要なBCCは抵抗を感じる人もいるかもしれません。
(30日以内に製品の登録は必要ですが……)
目的別については分からないものもありますが概ねその通りだと思います。
強いて挙げるなら...
・ゲームを作りたい
既存のツールを使えばよい(プログラミングが目的ではない)
Re:【雑談】C言語初学者に適した開発環境は?
> ・ゲームを作りたい
> 既存のツールを使えばよい(プログラミングが目的ではない)
何とかツクールの類ですね。
RPGツクールなんかを使い込むにはRubyを覚える必要はあるでしょうが...
> 既存のツールを使えばよい(プログラミングが目的ではない)
何とかツクールの類ですね。
RPGツクールなんかを使い込むにはRubyを覚える必要はあるでしょうが...
Re:【雑談】C言語初学者に適した開発環境は?
>RPGツクールなんかを使い込むにはRubyを覚える必要はあるでしょうが...
これは知りませんでした。
RGGSというRubyをカスタマイズしたものが使えるようですね。
これは知りませんでした。
RGGSというRubyをカスタマイズしたものが使えるようですね。
Re:【雑談】C言語初学者に適した開発環境は?
Eclipse + CDT + GCCという選択肢もありますね。
長所としては、IDEはWindowsだけでなく、MacでもLinuxでもほぼ同じように使えることがあります。
ただし、GCCはプラットフォームによって微妙に異なります。
短所としては、重いことでしょうか。
長所としては、IDEはWindowsだけでなく、MacでもLinuxでもほぼ同じように使えることがあります。
ただし、GCCはプラットフォームによって微妙に異なります。
短所としては、重いことでしょうか。
Re:【雑談】C言語初学者に適した開発環境は?
僕が最初にCの本を読んだときは、メモ帳でコード書いてました。(Windows,コマンドプロンプト)
if文や関数の作り方を勉強するときならメモ帳で書いて、コマンドプロンプトで実行ファイル作るようにしたほうがいいのではないかな?と思います。
コンパイルしたら何が生成されるのか?
リンクさせるには?とか勉強しながら出来ますし。
IDEのありがたさも分かると思います^^
VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。
VC++、VC#を家には導入しましたが、回線が細かったらそれだけで一苦労だと思います。
デバッグしやすいので気にってますけどね。
僕は開発の環境よりも、どんな学び方をするかの方が難しいと思います。
アルゴリズムの本はいろいろとあると思いますけど、コーディングの演習というのは見たことないです。
文法書の10~100行あれば書けるような問題ではなく、それ以上の問題を難易度順にやらせる、なんて問題集が欲しいですね。
(ゲームプログラマになる前に覚えておきたい技術、をチラッとみたら最初にそんなミニゲームを作らせる問題だったので、面白そうと思いました)
このサイトに来る人だと、
ゲームが作りたい → シューティングを作ってみる
となって、シューティングを作るまではいいと思うんですが、僕は比較的簡単に出来るものをどんどん作って言語の習得をしたいと思っているので。
例えば
タイピングゲームを作らせる
→解として、どんな構造体を作るか、どんな関数を作るかなどポイントをのせる。
次に生態シミュレーションを作らせる
→AIのアルゴリズムが分からない場合はどんなアルゴ使うのかヒントのページを作る。同じようにポイントを解として
とこんな感じで(ゲームの必要は全くないですが)
こういう体系的にスキルアップできる演習のバイブルみたいなものがあればいいんですけど・・・
なんか話がずれましたが、これも一種の開発環境ということで^^;
if文や関数の作り方を勉強するときならメモ帳で書いて、コマンドプロンプトで実行ファイル作るようにしたほうがいいのではないかな?と思います。
コンパイルしたら何が生成されるのか?
リンクさせるには?とか勉強しながら出来ますし。
IDEのありがたさも分かると思います^^
VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。
VC++、VC#を家には導入しましたが、回線が細かったらそれだけで一苦労だと思います。
デバッグしやすいので気にってますけどね。
僕は開発の環境よりも、どんな学び方をするかの方が難しいと思います。
アルゴリズムの本はいろいろとあると思いますけど、コーディングの演習というのは見たことないです。
文法書の10~100行あれば書けるような問題ではなく、それ以上の問題を難易度順にやらせる、なんて問題集が欲しいですね。
(ゲームプログラマになる前に覚えておきたい技術、をチラッとみたら最初にそんなミニゲームを作らせる問題だったので、面白そうと思いました)
このサイトに来る人だと、
ゲームが作りたい → シューティングを作ってみる
となって、シューティングを作るまではいいと思うんですが、僕は比較的簡単に出来るものをどんどん作って言語の習得をしたいと思っているので。
例えば
タイピングゲームを作らせる
→解として、どんな構造体を作るか、どんな関数を作るかなどポイントをのせる。
次に生態シミュレーションを作らせる
→AIのアルゴリズムが分からない場合はどんなアルゴ使うのかヒントのページを作る。同じようにポイントを解として
とこんな感じで(ゲームの必要は全くないですが)
こういう体系的にスキルアップできる演習のバイブルみたいなものがあればいいんですけど・・・
なんか話がずれましたが、これも一種の開発環境ということで^^;
Re:【雑談】C言語初学者に適した開発環境は?
> sizumaさん
> 僕が最初にCの本を読んだときは、メモ帳でコード書いてました。
エディタはもう少しまともなものを使ってもよいとは思いますけどね。
例えば、TeraPadなら転載もできますので、場合によっては必要な(TeraPadの)ツールなどを付属して、MinGWやInsightと一緒に配布すれば、エディタ、コンパイラ、デバッガを一発でインストール(といっても圧縮ファイルを解凍するだけ)できます。
> VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。
そうなんです。少なくとも手軽ではありませんね。
重くてもよいなら、私としてはCygwinが一番のおすすめです。
実をいうと、Windows環境でちょっとしたCのプログラム(ウェブサイトや書籍に掲載するサンプルなど)を書くときは、特別な事情がない限りCygwinを使っています。
Cygwinなら、エディタ、コンパイラ、デバッガを一発でインストールできます。そればかりか、アーカイバ、CVSやSubversionなどのリビジョン管理ツール、diffなどの各種ツール、PerlやTclなどのスクリプト言語も一緒にインストールできますので、他のものは何もいらないぐらい便利だったりします。
まあ、viやemacsが使いにくいなら、エディタは別のものを使ってもよいでしょが...
コーディングの演習に関しては、確かにそういうものがあってもよい気はします。
> 僕が最初にCの本を読んだときは、メモ帳でコード書いてました。
エディタはもう少しまともなものを使ってもよいとは思いますけどね。
例えば、TeraPadなら転載もできますので、場合によっては必要な(TeraPadの)ツールなどを付属して、MinGWやInsightと一緒に配布すれば、エディタ、コンパイラ、デバッガを一発でインストール(といっても圧縮ファイルを解凍するだけ)できます。
> VisualC++を使っていますが、確かに自分で導入するには大きいし重いですね。
そうなんです。少なくとも手軽ではありませんね。
重くてもよいなら、私としてはCygwinが一番のおすすめです。
実をいうと、Windows環境でちょっとしたCのプログラム(ウェブサイトや書籍に掲載するサンプルなど)を書くときは、特別な事情がない限りCygwinを使っています。
Cygwinなら、エディタ、コンパイラ、デバッガを一発でインストールできます。そればかりか、アーカイバ、CVSやSubversionなどのリビジョン管理ツール、diffなどの各種ツール、PerlやTclなどのスクリプト言語も一緒にインストールできますので、他のものは何もいらないぐらい便利だったりします。
まあ、viやemacsが使いにくいなら、エディタは別のものを使ってもよいでしょが...
コーディングの演習に関しては、確かにそういうものがあってもよい気はします。
Re:【雑談】C言語初学者に適した開発環境は?
Windowsにかぎれば、Visual C++ 2008 Express Editionのコマンドラインからスタートして、デバッガやプロジェクトが必要になったあたりでIDEを持ち出すというのがかなり魅力的に見えてきました。
問題は、MSが開発ツールをずっと提供し続ける気があるかどうかです。
Visual C++ 2010 Express Editionみたいなものが出るなら、また、その先のバージョンでも同等以上の状況が継続するなら十分許容範囲なのですが、そんな保証はないことが痛いですね。
とりあえず、ここでいったん解決にしますが、今後もご意見をいただけると幸いです。
問題は、MSが開発ツールをずっと提供し続ける気があるかどうかです。
Visual C++ 2010 Express Editionみたいなものが出るなら、また、その先のバージョンでも同等以上の状況が継続するなら十分許容範囲なのですが、そんな保証はないことが痛いですね。
とりあえず、ここでいったん解決にしますが、今後もご意見をいただけると幸いです。
Re:【雑談】C言語初学者に適した開発環境は?
こういうことですか?
「本書はVS2008EEの使用方法を解説しています。
VS2008EEが入手不可能になった場合は、必要に応じて
VSの新しいバージョンや他のコンパイラについて、
可能な限りのサポートを行いますので、著者HPも併せて参照してください。
尚、本書のプログラムについては、開発環境に依存する部分は一切(?)
ありませんので、C99に適合する全てのコンパイラで実行可能です。」
理想的なコンパイラが見つからないなら、これが最良でしょう。
「本書はVS2008EEの使用方法を解説しています。
VS2008EEが入手不可能になった場合は、必要に応じて
VSの新しいバージョンや他のコンパイラについて、
可能な限りのサポートを行いますので、著者HPも併せて参照してください。
尚、本書のプログラムについては、開発環境に依存する部分は一切(?)
ありませんので、C99に適合する全てのコンパイラで実行可能です。」
理想的なコンパイラが見つからないなら、これが最良でしょう。
Re:【雑談】C言語初学者に適した開発環境は?
> C99に適合する全てのコンパイラで実行可能です。
C99に完全に適合するコンパイラというのは見たことがないですが、ほどほどの適合でさえできていないコンパイラもそれなりにありますからね。
まるっきりの非標準処理系を除けば、C99にまったく対応していないコンパイラのほうが少数派ではありますが..
> 尚、本書のプログラムについては、開発環境に依存する部分は一切(?) ありませんので、
それは無理でしょう。
記述が抽象的になりすぎることもありますが、それ以前に...
・#や[や\などの機種依存文字が使えなくなりますので、すべて三文字表記にしなければなりません。
・標準入出力が具体的なデバイスに結合されているとは限りません。また、CGIなども考慮しなければなりません。
・フリースタンディング環境も含めて、依存性をなくさなければなりません。
・sizeof(int) == 1の環境では、かなり不思議な現象が起きます。
というわけで、無理です。
C99に完全に適合するコンパイラというのは見たことがないですが、ほどほどの適合でさえできていないコンパイラもそれなりにありますからね。
まるっきりの非標準処理系を除けば、C99にまったく対応していないコンパイラのほうが少数派ではありますが..
> 尚、本書のプログラムについては、開発環境に依存する部分は一切(?) ありませんので、
それは無理でしょう。
記述が抽象的になりすぎることもありますが、それ以前に...
・#や[や\などの機種依存文字が使えなくなりますので、すべて三文字表記にしなければなりません。
・標準入出力が具体的なデバイスに結合されているとは限りません。また、CGIなども考慮しなければなりません。
・フリースタンディング環境も含めて、依存性をなくさなければなりません。
・sizeof(int) == 1の環境では、かなり不思議な現象が起きます。
というわけで、無理です。