- ベストアンサー
Windowsソフトのプログラミング
これからプログラミングを始めるのですが、Windowsで自分が不便に感じているところに手が届くソフトを作りたいと思います。 又、11月からC言語のセミナー受講が決まっています。 そこで質問なのですが、たとえば下記の様なソフトを作る場合、言語は何を使えば可能でしょうか? C言語、C#、JAVA、あたりで作れるのでしょうか? それともWindows限定で作るならVC++のほうがいいのでしょうか? 予算はあまりなく、C言語を始めるという都合もあるので、出来ればC言語から遠くない言語で作りたいと思ってます。 宜しくお願いします。 参考。 Namery (ファイル名の一括変換ソフト) http://www.vector.co.jp/vpack/browse/pickup/pw7/pw007151.html BatchDOO! (動画変換ソフト) http://www.katch.ne.jp/~kakonacl/douga/batchdoo/batchdoo.html
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
C#、JAVA、VC++のどれを使用しても作成することはできます。 Cで作成する場合は、どうやってGUIなしになります、コード量もかなり・・・。 なんにせよ、プログラミング経験なくスタートするにはレベルが高すぎるかもしれません。 ただNamery (ファイル名の一括変換ソフト)は欲張らなければレベル的にはちょうどよいかもしれません。 C#、JAVA、C++のいずれもマルチパラダイミング言語とよばれ、オブジェクト指向+手続き型の言語に位置しています。 C言語は手続き型ですので、考え方が結構違います。 文法的には、上記3言語はC言語から生まれたObjective-Cといわれる言語から派生しているため、似ている部分は多くあります。 C#とJAVAはオブジェクト指向を扱うための言語の要素が強いため、C++のほうがCに近いです。 しかし一般的な難易度はC++のほうが高いです。 C#ではEXPRESS Editionというフリーソフトがマイクロソフトから提供されています。 試されてみてはいかがでしょうか? http://www.microsoft.com/japan/msdn/vstudio/express/
その他の回答 (4)
- nda23
- ベストアンサー率54% (777/1415)
「汎用性」難しいですね。 現在、プロジェクトの技術者を集める場合、JavaとC#では圧倒的に 前者の方が人数が多い分、集め易いと言えます。また、既に述べた ようにオープンソースのプログラムがネット上に多数コロがっており、 これらを利用する点でも前者が有利です。ただ、C#もVSの主力で、 需要は結構あります。プログラムとしては特定の言語でなければ ならないということはありません。但し、LSIを直接制御するような ドライバですと、機械語を部分的に記述できる言語が必要です。 しかし、これはプロジェクトの極一部にあるかないかですので、 初心の人は考えなくて良いでしょう。 方向性として、「会社で行う業務を少しでもラクにしたい」という のであれば、C言語とかではなく、Scriptを勉強される方が簡単で、 Webアプリケーションへの応用という点でも有利だと思います。また、 「プロのSEを目指す」場合は、需要の多いJavaあたりがお勧めです。 但し、これは個人的な意見でして、業界/業種が多様な現在では 質問者さんの進みたい方向の業種によっては当てはまらないことも あります。参考までに・・・
お礼
やはりJavaのほうが需要はあるんですね。 ただ環境の整えやすさや、C言語を勉強することが決定しているということからも、 C#に決めました。 しかしながら、いろいろやってみると良い、という意見も戴きましたので、 ある程度上達したらJavaもイジってみようと思います。 仕事は組み込み系の開発に進むと思いますので、Scriptは必要に応じて勉強します。 二度もお答え戴いて、ありがとうございました。
- titokani
- ベストアンサー率19% (341/1726)
CとC++はかなり高い互換性があります。 CのプログラムをC++でコンパイルしても、97%くらいはそのままコンパイルできるでしょう。 なので、とっつきとしてはC++は悪くないです。(Cをマスターしていることが前提ですが) 本当にかゆいところに手が届くソフトを作るにも、C++のほうが有利です。 直接WinAPIをいじれるのは大きいです。便利なライブラリとかもC++で提供されていることが多いです。 ただ、かゆいところに手が届くというのは両刃の剣です。なんでもできるということは、難解なバグを生んでしまいやすいということでもあります。 そのため、バグのない、きちんとしたプログラムを仕上げるためには、それなりの習熟が必要です。 C#やJavaはその点、あまり習熟してなくても、それなりのプログラムを作ることが可能です。反面、高速で効率の良いプログラム、かゆいところに手が届くプログラムを書こうとするならば、むしろC++より知識、技術が要求されることもあります。 まあ、予算もあまりないということですから、VisualStudioのExpressEditionを使うのがいいと思います。これなら、C++とC#の両方が使えます。無料です。 このあたりの言語は、どれかを覚えてしまえば、その知識は他の言語ににも応用できますから、どれか1つと決めないで、いろいろとかじってみて、違いを実感してみるのもいいと思います。
お礼
>>CとC++はかなり高い互換性があります。 >>CのプログラムをC++でコンパイルしても、97%くらいはそのままコンパイルできるでしょう。 >>VisualStudioのExpressEditionを使うのがいいと思います。これなら、C++とC#の両方が使えます。無料です。 C言語の勉強は決定してますので、環境を整えやすいC#にすることにします。 ただ仰るとおり、一つに決めないで、JavaもC++も(C言語をしっかりやってから)イジってみることにします。 ありがとうございました。
- AKARI0418
- ベストアンサー率67% (112/166)
Mobile系はまた独自の世界観がありますよ。 JAVAから派生したCOCOAなどの新しい言語もありますから。 まだまだどの言語が優位かは微妙なところです。 補足ですが、C#にはMONOプロジェクトが存在し、iPhoneアプリも開発できますよ。 JAVAもクロスプラットフォームな言語ですから、同様でしょう。 やってみたいほうをやればよいくらいに考えてよいと思います、開発環境を整えやすいほうを選ぶべきです。 またはマイクロソフトは嫌いだからJAVAとか、書籍が多いからC#とか、SilverLight3って名前が素敵だからC#などなど・・・。 話は変わりますが、オブジェクト指向型の言語もフレームワークを主体とした言語に移行しつつあります。 要するに、膨大なライブラリーをオブジェクト指向でアプローチしていく開発になっています。 言語もその橋渡し的な使い方になってきました。 そのため、オブジェクト指向型の言語仕様は少なからず似ています、 JAVAとC#はどちらかを勉強すれば、少し勉強すれば両方使えます。 C言語のような言語(FORTRUNやCOBOL)などの手続き型の言語と言語を使用するあたって求められるものが違います。 これらの言語は、言語に組み込まれている関数を利用し、実際にその機能を効率よく実現するためのアルゴリズムを学ぶ必要があります。 たとえば最も高速なソートである、クイックソート。 検索を容易にするための2文探索木。 計算の高速化のためのBit演算。 さまざまなアルゴリズムやその仕組みを理解することが求められます。 一方オブジェクト指向であれば、UMLやデザインパターンなどのリファクタリングの知識を学んでください。複雑なアルゴリズムは隠蔽され、使い方を学ぶだけでよいからです。
お礼
C#はiPhoneアプリも開発できるんですか。 MONOプロジェクトを調べてみます。 >>そのため、オブジェクト指向型の言語仕様は少なからず似ています、 >>JAVAとC#はどちらかを勉強すれば、少し勉強すれば両方使えます。 好きなほうでいいんですね。 となると、とりあえずはWindowsだしC#かなぁ。 それと11月のセミナーの予習には、とりあえずアルゴリズムの勉強をしておきます。 ありがとうございました。
- nda23
- ベストアンサー率54% (777/1415)
先ず、C言語と、C++、C#、Javaは異質(文法ではなく、考え方)な 言語なので、「C言語をやったから、C++は何とかなるだろう。」 などと考えると大変なことになります。(勿論、C#やJavaも) Namery については内容が簡単なので、何でも作れます。ポイントは 対ユーザインターフェースで、これをどうするかだけでしょう。 個人的にはこのレベルの処理でしたらScriptを使う方が有用な気が します。(VBScript、JavaScriptのいずれも可:HTA) BatchDOO! こちらはフォーマット変換で、バイナリデータを扱うこと、 ファイルの操作と言う観点から見るとC言語の方が簡単なように見え ます。しかし、参考になるオープンソースを探すという点ではJavaが 有利です。こちらも対ユーザインターフェースの問題があります。 C言語でもWindowを持つプログラムが作れますので、GUIも可能です。 しかし、チョット大変です。私がWindowsプログラムを作り始めた頃、 つまり、15年くらい前には こういうこともやりましたが、VBなどを 使う方がズット楽です。やってみるのも一つの勉強にはなります。 そして、二度とやりたくなくなるでしょう。
お礼
C言語から派生していて、名前も似ているからって互換性があるってことじゃないんですね・・・ まったく別物だと認識を改めます。 すこし調べたらJavaScriptとJavaも関係ないと書いてあるし・・・ とりあえずC言語で作るのは止めときます・・・ こうなるとJavaかC#ということになりそうです。 ありがとうございました。 別件で、もし宜しかったら、Windowsソフト以外にも、携帯アプリなんかも作ることを前提に JavaとC#のどちらが汎用性があるか教えていただけますか? AndroidはJavaで、Windows MobileはC#みたいに書かれていたので選べないです。 宜しくお願いします。
お礼
なるほど。 どれでも作れることは作れるんですね・・・迷います。 文法的にはどれもC言語似ている部分が多くあると・・・ C++は難易度が高い・・・ となるとC#かJAVA。 とりあえずC#のフリーソフトをDLして試してみることにします。 ありがとうございました。