こんにちは。
普段、C言語でマイコンプログラムを部活などで書いている者です。
マイコンとPCはプログラム書き込みの際や、ターミナルソフトとの通信の際にシリアル通信を使用していますが、パソコン側で、それ専用のシリアル通信を行う自作のソフトを作ってみたいと思っています。
たとえば、画面のスライダーを動かすと、(ほぼ)リアルタイムにサーボがそのスライダにあわせて動く、といったようなものや、マイコンからのデータを受信して、逐次グラフに表していく、というものを作りたいです。
まず、Windowsアプリケーションを書くには、C#かC++だと聞きました。
ネットで調べてみても、この二つの言語は大きく違うような印象を受け、
どちらの勉強を進めていいのかがよくわかりません。
Javaはまだ特にやったことはないです
マイコン通信用ソフトの作成などといった用途のアプリケーションを作りたいのですが、
どちらの言語を学習するのがよいでしょうか?
教えてください
また、開発環境を整えるのに必要な費用等、教えていただけるとうれしいです。
当方、高校二年生で、C言語の簡単な入門書レベルはおおむねわかります。
ほかに、HTML、CSSもわかりますが、それ以外はよくわかりません。
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
>>マイコン通信用ソフトの作成などといった用途のアプリケーションを作りたいのですが、
どちらの言語を学習するのがよいでしょうか?
PC側で動作するプログラムとしてC++も使うことは可能ですけど、ネットで参考になるサイトのサンプルは、C#あるいはVBが多いので、どっちを選ぶかとなるとC#のほうがいいと思います。
C#は、.NetFrameworkと共に、MSが割と自由に(大胆に?)仕様変更して、開発効率をアップしているように思います。
(たぶん、C++は、MSが勝手に仕様変更するのは難しいのではないでしょうか?)
>>また、開発環境を整えるのに必要な費用等、教えていただけるとうれしいです。
一部の制限はありますが、C#、C++の開発環境は、無償で入手可能です。
なお、Visual Studio Express 2010までは、XPで動作しますが、2012以降は、Win7以降が動作環境となっています。
No.2
- 回答日時:
私個人としては、C++の方が処理が速く、
リアルタイムを望むなら、こちらの方がいいと思います。
C#は、用意されている便利な関数や参考になるサイトが数多くあり、
メモリ関係も勝手に処理してくれるので、あまり気にせずに書くことができ、
初心者には便利な言語です。
フォームアプリケーションは、javaも含め、簡単に作成することができ、
ボタンからリッチテキストボックスやリストビューなど、
便利なコントロールが数多く用意されています。
とりあえず簡単に作ってみたい場合はこちらの方がいいと思います。
対してC++は、C言語に近くやや古い印象です。
フォームアプリケーションを実装しようとすると、
コードが膨大になり、ソース管理し難い印象です。
また、用意されている関数はことごとくポインタを要求するで、
ポインタを理解していないと、値渡しや参照渡しや実データで混乱すると思います。
しかし、ポインタやメモリアクセスは慣れると便利で、
マイコンプログラムや原始的なアセンブラに近い感覚や速度を実感すると思います。
どちらでもフォームアプリケーションやリアルタイムプログラミングは、
実装は可能だと思いますが、今後マイコン通信等の職に就くのであれば、
大変かと思いますが、C++でポインタに慣れていた方が良いと思います。
回答ありがとうございます。
C++のほうが処理が早いとのことですが、マイコンとの通信で気になるレベルなのでしょうか?
私は独学初心者ですので、やはり参考資料が多いというのは助かります。
ポインタは入門書レベルならだいたいわかると思いますが、あまり得意ではありません…
まずは、C#を勉強してみようかなという気持ちに傾いてきました笑
No.3
- 回答日時:
画面から操作を行うプログラムということですので、
C#の方が時間がそれほどかからないので良いのではないでしょうか。
C++の方が高速な部分はありますが、.NET Frameworkを使用するのであれば、
どちらも大差ないと考えます。
質問者さんは高校生ということですので、これから色々勉強していかれるのだと思います。
言語を習得することも大事ですが、効率の良いプログラムの設計方法も同時に学んでいく必要があります。
私が個人的にお勧めするのは、まずはC#で一通り作ってみて、
ウィンドウプログラミングがどのようなものか学び、
動くものができたら、制御の核になる部分をC++に置き換えて
.NET Frameworkを使用しないネイティブプログラミングで高速化を図るというものです。
きちんとプログラムの設計ができていないと、後でC++に置き換えるのは難しいので
オブジェクト指向、クラスの設計の勉強にもなります。
おそらく最初はプログラムを作っては壊すようになるでしょう。
ちなみにVisualStudio Expressは無料で使用できますので、お金はかかりません。
頑張ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アジャイル開発のタスクが定時...
-
アメリカでは基本設計、詳細設...
-
ACカップリングにはGNDは必ず必...
-
汎用コンピュータとPC系コン...
-
ARM coretex-M3というCPUについて
-
潜水艦はなぜ水圧で潰れないの?
-
笠と傘のちがいを教えてくださ...
-
「~時」と「~時に」の違いに...
-
日本が衰退した要因はなんだと...
-
小論文の添削を急ぎでお願いし...
-
鉄のbcc とfcc による物性の違...
-
死んだ人を蘇らせる科学技術っ...
-
今後の若返り技術により、女子...
-
クローン食品は現在市場にでま...
-
ロシアや中国やアメリカなどの...
-
ペットボトルのキャップアート
-
Googleの起源は
-
「目深にかざして」の意味
-
ナチスの科学は世界一だったの...
-
水産業について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アメリカでは基本設計、詳細設...
-
アジャイル開発のタスクが定時...
-
オフコンは現在どの程度使われ...
-
マイコンと接続するBluetoothモ...
-
ネットワークTAPについて教えて...
-
Windowsアプリケーション開発で...
-
copilotとはなんですか?
-
システムエンジニアとプログラ...
-
iPhoneアプリ開発について[Xcod...
-
C言語を用いたマイコンと計測機...
-
システム開発の全体像を学べる...
-
オブジェクト指向分析・設計(O...
-
OSI参照モデルの各層の役割がわ...
-
「システム開発」「アプリケー...
-
H8の開発環境について
-
delphiとHTML
-
初心者向けマイコンボード
-
mixiアプリの見積書の書き方
-
自動車のエンジンコントロール...
-
大学生が抱える問題とアプリ開...
おすすめ情報