言語の選択等について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
さにぶ

言語の選択等について

#1

投稿記事 by さにぶ » 9年前

こんにちは。
言語の勉強方法、選択等で質問です。

1年くらいC言語を勉強して、書籍等もいくつか読みました。
メモリの扱い等も多少は理解しているつもりです。

次に他の言語も勉強しようと思うのですが、候補としてC++かC#を考えています。
目的(目標)としてはオブジェクト指向プログラミングの理解、windowsで動くソフトの作成、あるいはゲーム等も作ってみたいと考え
ているのですが、C++とC♯のどちらがいいでしょうか?
また、windowsプログラミングについてネットでいろいろ調べていると.net frameworkやwin32、mfcがあるようなのですが、これらの違
いもよくわかりません。

プログラミングを趣味としてやっていきたいと考えています。今後の勉強法などについてアドバイスいただけると大変助かります。宜
しくお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 言語の選択等について

#2

投稿記事 by softya(ソフト屋) » 9年前

さにぶ さんが書きました:こんにちは。
言語の勉強方法、選択等で質問です。

1年くらいC言語を勉強して、書籍等もいくつか読みました。
メモリの扱い等も多少は理解しているつもりです。

次に他の言語も勉強しようと思うのですが、候補としてC++かC#を考えています。
目的(目標)としてはオブジェクト指向プログラミングの理解、windowsで動くソフトの作成、あるいはゲーム等も作ってみたいと考え
ているのですが、C++とC♯のどちらがいいでしょうか?
また、windowsプログラミングについてネットでいろいろ調べていると.net frameworkやwin32、mfcがあるようなのですが、これらの違
いもよくわかりません。

プログラミングを趣味としてやっていきたいと考えています。今後の勉強法などについてアドバイスいただけると大変助かります。宜
しくお願いいたします。
【Win32API】
まず、Win32APIはネイティブにWindowsOSとインターフェイスするためのC言語の関数群のことです。
つまり、ウィンドウアプリはWin32APIを通じてWindowsOSと繋がっていて様々な外観や操作を実現する事ができます。
ただし、細々とした操作が出来る=必要なので理解するために覚えることがたくさんあり難しいですが、C言語から使うことが出来ます。
[補足]YuOさんの書き込みを見てcomコンポーネントの事を書き忘れに気づいた。CまたはC++から扱えます。 http://ja.wikipedia.org/wiki/Component_Object_Model

「標準 Windows API」
http://wisdom.sakura.ne.jp/system/winap ... index.html
「Win32API(C言語)編 トップページ」
http://www.geocities.jp/ky_webid/win32c/index.html
「Windows SDK編INDEX」
http://homepage2.nifty.com/c_lang/index_sdk.html

【MFC】
次にMFCはC++のクラスで実装されたWin32APIをラップ(隠す)するフレームワークです。
C++の知識が必要ですが、Win32APIの面倒なところを隠してあるので扱いは用意になっています。
ただ、MFCは有料のVisualStudioでしか使うことが出来ません。

「MFC編 - 開発環境をそろえよう」
http://www.g-ishihara.com/mfc_ge_02.htm
「VC++,MFCでのプログラミングでのTips CRIMSON Systems」
http://www.crimson-systems.com/tips/index.html

【.Net Framework】
2000年を超えてからマイクロソフトが打ち出してきた新しいオブジェクト指向言語のためのフレームワーク・実行環境です。
今のところWin32APIのラッパーフレームワークですが、将来的にはこっちがネイティブになるかも知れません。
VB、C#、C++/CLI(C++を更に.Netで拡張した言語)から共通で使えるオブジェクト指向フレームワークで楽にプログラムが可能です。
あと無料のExpressで必要十分な機能が使えることも見逃せません。

「猫でもわかるプログラミング C#フォーム編INDEX」
http://homepage2.nifty.com/c_lang/index_form.html
上に書いた「Windows SDK編INDEX」と比べてもらうと違いが分かると思います。

でアプリ開発の場合は、私はC#をお勧めします。
なにより、ウィンドウアプリの構築が楽ですので初心者にはやさしいです。

で問題はゲームプログラミングです。
ゲームプログラミングでDirectXを扱いたいならC++なんですが、C#でXNAと言うフレームワークが存在します。
XNAは、C#専用のゲームプログラミング環境でXbox360のインディーズゲームやWindowsPhone7(日本未発売)の開発環境でもあります。
DirectXよりも扱いは容易なのですが国内の書籍の発売状況が思わしく有りません。
初心者向けのXNAサイトも少ないので、おすすめした良いのか分からないってのが正直な私の感想です。

「XNA(C# game program)」
http://sky.geocities.jp/kmaedam/xna/xna.html

ゲームプログラミングに関しては、DXライブラリでC言語の文法の範囲でプログラミングも可能ですので検討してみてください。
(いきなり難しいことに挑戦するよりも、こちらをお勧めします)

この掲示板の別コンテンツとして、DXライブラリによるゲームプログラミングがあります。
「C言語~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/

長くなりましたが参考になれば幸いです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 言語の選択等について

#3

投稿記事 by YuO » 9年前

Windows Applicationを作るのであれば,圧倒的にC#が楽です。
趣味としてであれば,わざわざ面倒なC/C++でWin32 APIを使って書く必要はないと思います。

ちなみに,
  • .NET Framework
    ISO 23271 共通言語基盤(CLI)のMicrosoftによる実装+α。+αに,WinFormsやWPF,ASP.NETなどが含まれる。
  • MFC (Microsoft Foundation Class)
    Microsoftによる,C++用のライブラリ。Win32 APIをラップしたクラス群と,MVCの簡易版であるDocument-View機構からなる。
  • Win32
    32bit版Windowsのこと。Win32 APIであれば,Win32の機能を呼び出すためのインターフェース群で,通常は関数かCOMの形で与えられる。
といった感じでしょうか。

さにぶ

Re: 言語の選択等について

#4

投稿記事 by さにぶ » 9年前

softya様

お返事いただきましてありがとうございます。
なるほど、初心者にはC♯がいいということですか。となるとC♯を勉強しようと思うのですが、ご提示いただいたサイトも参考にしつ
つ、書籍も購入しようと思うのですが、なにかおすすめはあるでしょうか? 個人的には「独習C♯」で基本を学ぼうと考えています
が、その後.Net Frameworkを学んだ際に、参考となる書籍も教えていただければ幸いです。
(なお、書き忘れましたが、開発環境はvisual studio2008の正規版(体験版ではなく)を使用しています。)

ただ趣味とはいいつつも、せっかく勉強するならしっかり勉強してプログラミングに詳しくなりたいと考えています(それでも仕事にす
るつもりあまりありませんが)。最終的にはC#だけではなく、C++やwin32もマスターできればいいなぁなんて思いますが、その場合
でもC♯→C++という流れで勉強しても問題ないですか? プログラミングの勉強については数年、10年以上という長いスパンで考
えていますが、個人的にはあまり難しいところから始めると挫折しそうなんで、お話を伺う限りではC♯から始めるのが最適と思い
ますけど・・・・・・。

なお、ゲームプログラミングについてはDXライブラリのサイトは既に拝読しておりまして、いくつか簡単なゲームらしきものも作成し
たことがあります(竜神録ほど本格的なものではありませんが)。DirectXも勉強したいと思うのですが、さすがにC♯を学びながらは
辛いと思うので、最初はC♯を勉強をしてから改めて考えようと思います。

YuO様
なるほど、そういう違いがあったんですね。理解することができました。ありがとうございます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 言語の選択等について

#5

投稿記事 by softya(ソフト屋) » 9年前

独習C#(第2版)は悪く無いと思いますよ。
ただ、C#の2.0にしか対応していないのでご理解下さい(その分、ややこしい新要素が無くて楽かも)。
と思ったら独習C#(第3版)が出てますね。これはVisualC#2010のC#4.0にも対応しています。

VisualC#2008の場合はC#3.1の機能までしか使えませんので注意してください。

C#のざっくりした概要は、「C#の絵本」とかを補助に使うと良いかも知れません。あくまでメインは独習C#ですけどね。


で、独習C#の本はフレームワークである.NetFrameWorkには全く触れられていないのでWindowsアプリを作るときには手がかりになりません。
それに使えそうな本を紹介します。
[補足]まぁ、難しい文法は置いておいてプログラムを作ってみよう!って感じで下記の本から始めて見ても良いですよ。

「Amazon.co.jp: 作って覚える Visual C# 2008 Express Edition 入門: 荻原 裕之, 宮崎 昭世: 本」

「Amazon.co.jp: プログラムを作ろう! Microsoft Visual C♯2008 Express Edition 入門 (DVD付) (マイクロソフト公式解説書 Microsoft Visual Studi): 池谷 京子: 本」


テクニック的なものは、この本とか。
「Amazon.co.jp: Visual C# 2008逆引き大全555の極意: 池谷 京子, 国本 温子, 増田 智明: 本」
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

さにぶ

Re: 言語の選択等について

#6

投稿記事 by さにぶ » 9年前

ちなみに独習C#の中に、オブジェクト指向に関する記述はあるのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 言語の選択等について

#7

投稿記事 by softya(ソフト屋) » 9年前

さにぶ さんが書きました:ちなみに独習C#の中に、オブジェクト指向に関する記述はあるのでしょうか?
プログラム言語入門の本がアルゴリズム入門の本でない様に、オブジェクト指向と言うかクラスをコーディングする方法は分かりますがオブジェクト指向自体の考え方や思考方法を教えてくれる本ではないですね。

こんなのとか、どうでしょう。

「@IT:連載:オブジェクト指向プログラミング超入門」
http://www.atmarkit.co.jp/fdotnet/basic ... index.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

さにぶ

Re: 言語の選択等について

#8

投稿記事 by さにぶ » 9年前

なるほど、どうもありがとうございます。
それではご提示いただいたウェブサイトを読みつつ、C♯、.netフレームワークの勉強をすすめていこうと思います。

最後にもう一つ質問を。。

Cをある程度理解していると仮定して、C♯、.netフレームワーク、そしてオブジェクト指向プログラミングを理解するのにどのくらいの期間の修養が必要でしょうか?
(当然人それぞれ、ではあるでしょうが、目安みたいなものだけでも教えていただけると幸いです)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 言語の選択等について

#9

投稿記事 by softya(ソフト屋) » 9年前

C言語の理解度にもよりますね。C言語におけるカプセル化やモジュール化、構造化プログラミングを理解しているかって事でも話が変わってきます、
オブジェクト指向は、パラダイムレベルで違うのでちゃんと使いこなすには何年も掛かる可能性が高いです。
でも、とりあえず使うだけなら1ヶ月もかからないでしょう。
.NET FrameWorkの仕組みがなんとなく分かってアプリを組むめると半年とかはかかるかなって感じです(アプリの難易度によりますが)。
まぁ、学習に掛けられる時間、オブジェクト指向がどれだけの期間で理解できるかは、ほんとに人それぞれですので、なんとも言えないんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

さにぶ

Re: 言語の選択等について

#10

投稿記事 by さにぶ » 9年前

softya様

お返事及びアドバイスをいただきましてありがとうございます。
早速C#の勉強にとりかかろうと思います。
お忙しい中たくさんのアドバイスをいただきどうもありがとうございました。これにて解決とさせていただきます

閉鎖

“C言語何でも質問掲示板” へ戻る