ここから本文です

これから役立つプログラミング言語とは…?

yob********さん

2011/10/1711:41:19

これから役立つプログラミング言語とは…?

現在、VC++を学んでいる最中です。
買ってきた参考書がVisual StudioのMFCを中心に使ったアプリケーション作成なのですが、
これって、将来役立つのかなと思えるようになってきました。
実際MFCを使ったVC++学ぶことで、将来性はあるのでしょうか?
一応、クラスやインスタンスとか、理解することができて得はしたのですが・・・
他にも質問したいことはあります。目を通していただけると幸いです。

・vectorなどで紹介される、フリーソフトは、どのようなプログラム言語がよくつかわれるのでしょうか。
(常駐して処理をするものや、webサイトと連携して処理をするソフト)

・今、勉強すると将来役に立つプログラム言語はなんですか?
(個人的な意見でいいです。)

以上です。

調べてみると、VBとかVC#あたりがいいと感じます。
みなさんの意見も参考にしたいです。

その他情報ーーーーー

経験のある言語 C言語/C++, HTML/JavaScript/CSS, Java言語(GUI含む)
そして今勉強中の VC++(MFC)


質問文に間違いなどがありましたら、ご指摘願います。

補足みなさん分かりやすい回答ありがとうございます!
今までの質問を見るとやはり、VC#,VBがお勧めなようで・・・。
なので今度はVC#,VBを主流にして、VC++の知識を
少しずつ身につけてみようと思いました。

しかしもう少しみなさんの意見も聞きたいので、
まだBAは決められません。皆さんの回答に感謝です。

閲覧数:
2,433
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

言語のC++自体と、開発環境のVC++ 自体は、今後も価値があります。
しかし、VC++ で使えるライブラリであるMFC については、将来性が低くなってきています。
順番に説明します。





[ライブラリとフレームワーク]

開発環境が提供してくれる応用機能群は、C言語やC++ では、ライブラリと言う形で提供されます。
これに対して、Java、C# 、VBNET 等から使える、開発環境提供の応用機能群は、フレームワークと言う形で提供されます。
ライブラリ も フレームワーク も、開発環境側から提供してくれる機能群と言う意味では同じです。
しかし、ライブラリのほうは、C++(又はC言語)によって自分で作るプログラムに対して、ライブラリ によるプログラムが付属します。
これに対して、フレームワーク は、立場が逆で、フレームワークの上に、自分で作るプログラムが動作します。
前者(ライブラリ)ならば、理解はしやすいと思います。
自分で作るプログラムに、必要な応用機能を付け足すのですから、ライブラリの果たすべき役割りの意味の通りですから。
しかし、後者(フレームワーク )は、「なぜ、付け足す機能のほうが、主体となって動作するのか?」と疑問に思う人もいるでしょう。
フレームワークは、OS をイメージしたほうが、わかりやすいです。
OS は、ファイルアクセス、ディスプレイ表示、キーボード処理などの、ハードに近い処理を行ってくれるプログラムです。
そして、プログラマーは、OS のAPI (OS自体が持つ機能を外部公開したもの)を使ってプログラミングを行えば、そのOS 上で動作するアプリケーションが作れます。
OS の上で、自分で作るプログラムが動作するのですから、フレームワーク の場合と立場が同じです。
実際に、C#、VBNET用のフレームワークである .NET Framework は、プログラマーから見れば、提供機能群ですが、一般ユーザーから見れば、Windows のオプションのような存在です。




[理由の件]

どうして、フレームワーク とライブラリの説明をしたかと言いますと、C++ のライブラリは、援助レベルで、プログラマーの負担が大きいからです。
これに対してフレームワークは、応用関連(データーベース操作、通信処理、グラフィック機能等)の基本機能は、殆ど提供されるので、プログラマーの負担が大幅に減ります(大規模なレベルの提供)。
すなわち、MFC に比べて、 .NET Framework が提供してくれる機能は、大規模です。
例えば、 .NET Framework は、マイクロソフトの最新テクノロジー関連の機能も提供していますので、クラウドコンピューティングによるシステムも作れます。
また、MFC で使い辛かった点などを、.NET Framework では改善されています。




[言語選択の件]

C/C++ ならば、「組み込み」と呼ばれる分野で、マイコンチップを覚えて、家電や産業用ロボットの制御などを行うほうが良いと思います。


Windows系でのシステムやアプリケーションを作るのであれば、上記理由により、C#かVBNET が良いです。
クライアント用ソフトや、スタンドアローン(単独マシン)用ソフトならば、C# でも作れますが、どちらかと言うとVBNET のほうが良いです。
サーバーシステムやミドルウェアの作成ならば、VB.NET でも作れますが、C# のほうが良いです。


マイクロソフトの技術を使いたくない場合は、統合開発環境のEclipse によるJava が御勧めです。
クラウド等の最新テクノロジーまでサポートされています。

Eclipse
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1073298570





[VC++とCOM/DCOM]

まず、以下を参照して下さい。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1073392865

VC++ と Win32 DLL を知っているプログラマーは、一応、C# や VBNET と連携させることは可能ですが、行えることに限界があります。
これに対して、VC++ と COM/DCOM が使えるプログラマーならば、C# や VBNET との連携が可能です。
例えば、MFC系でもDLL として作ったプログラムであれば、COM/DCOM の技術と、C++/CLI と言う言語で、.NET 系への移植が可能です。
COM/DCOM ならば、.NET の時代でも現役で通用するのですが、上級者でも苦手に感じる人が多いです。
よって、COM/DCOM を今から学び始めるのでしたら、C# か VBNET の習得のほうを優先されたほうが良いと思います。





[C++の改定]

C# は、IT次世代関連の開発が可能なようにC++ を改良した言語ですが、C++ も、今改定中です(改定名C++0x)。
ただし、C# のように、がばっと変えるのではなく、「Java や C# のフレームワークの上で、C++が動作可能とする仕様にはしますよ」と言う間接的な変更になるようです(C++らしさを活さかないと意味が無いので)。
改定がうまく行けば、COM/DCOM のレベルの知識が無くても、C++ で .NET 系でのプログラミングが可能になると思います。
しかし、時代の流れを見ながら、何度かに分けて改定して行く予定のようです。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

nin********さん

2011/10/1714:19:59

何を持って将来性というかが疑問ですが、どちらかというとMFCは切り捨て方向になっていくと思います。(MSがそういっているので)
ただ、ひとつマスターしておけば、他の環境に移行する場合でも学習コストは下がりますので無駄では無いと思います。

仕事の数からいうと、過去にMFCで書かれたアプリはたくさんありますので、そういったアプリの改修など、案件はあるのではないかと思いますが、新規開発でということだと微妙かもしれません。
(そもそも、ネイティブアプリの開発が、スマートフォン系以外あまりないんですがね)

>・vectorなどで紹介される、フリーソフト
VC++(MFC)かVBが多いと思います。

>・今、勉強すると将来役に立つプログラム言語はなんですか?
今の流行だと、JavaができるのならAndroidのアプリとかもいいかもしれませんね。(言語ではないですが)
WebアプリだとPHPが現在の主流です。

zwi********さん

2011/10/1712:22:22

まず、C++とVC++とMFCは分離して考えてくださいね。

>一応、クラスやインスタンスとか、理解することができて得はしたのですが・・・
これはC++の機能です。

MFCはVC++に搭載されたC++のクラスを使ってWin32APIの機能を隠蔽・フレームワーク化したものです。
使える環境はVC++一択ですので、限られるといえば限られます。

将来性は、私にも良く分かりません。MFCは今後バージョンアップせず.NETにシフトすると一時期(2003年ごろ)マイクロソフトが言っていたのですが2008にバージョンアップされてはいます。
ただ、Windows8から搭載されるWinRT(MetroUI)に関しては今のところMFCは使えないみたいです。またバージョンアップを止めようとしているのかなと気配は疑えますね。

「Windows 8の「Metro(メトロ)」と「デスクトップ」の関係は - ニュース:ITpro」
http://itpro.nikkeibp.co.jp/article/NEWS/20110916/368792/

>・vectorなどで紹介される、フリーソフトは、どのようなプログラム言語がよくつかわれるのでしょうか。
>(常駐して処理をするものや、webサイトと連携して処理をするソフト)

MFC/VB/Delphiが多いんじゃないでしょうか。インストールする画面とか必要なランタイムを見るかぎりはそう感じます。
VC++6.0時代の人はMFCが最大の選択肢でしたしね。

>・今、勉強すると将来役に立つプログラム言語はなんですか?
>(個人的な意見でいいです。)

WinRT(MetroUI)が流行るかどうかは別として対応されるのはVC++のネイティブ、VC++/C#/VBの.NetFrameWorkとなります。新技術が盛んに導入されるのは.NetFrameWork周りとなるでしょう。
※ その分マイクロソフトの思惑に振り回されるので、機能が増えたりなくなったり最先端を追いかけると苦労します。あっさりマイクロソフトは新機能を見捨てることがありますからね。

C++でQtと言うウィジット(GUI)ツールがありますが、これを使ったほうがMFCの様にマイクロソフトの思惑に振り回される心配もなくなります。
「Qt – クロスプラットフォームのアプリケーション開発フレームワーク — Qt - A cross-platform application and UI framework」
http://qt.nokia.com/title-jp/
サポートのないLGPLラインセスなら無料で使えます。LinuxやMacでも動くように出来ます。これはメリットですよ。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる