質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

5回答

17011閲覧

組込み系言語はC++とjavaのどちらが良いですか?

TakumaN

総合スコア120

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2016/07/08 04:25

##質問内容
幅広いジャンルの家電プロダクトを作れるようになりたいです。
家電プロダクトを作るにはC++、またはjavaの言語を習得する必要があると聞いたのですが、どちらが良いのでしょうか?

調べてみたところ、C++はプロダクトに組み込むマイコンのリソースが少なくて済み、大量生産時に安上がりになるため、多くのメーカーで採用されているとありました。

では、個人が趣味で(または少量生産販売)する場合は、(C++に比べて)コード量が少なくてある程度何でもできるjavaの方が開発スピードの点から考えて適しているということでしょうか?

###補足
現在はRuby on Railsでウェブサービスを複数運営している。
今後はunityでC#を使い、ゲーム開発をする予定。(まだC#は使ったことないですが笑)

#ご回答よろしくお願いします!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

家電プロダクトを作るにはC++、またはjava(中略)どちらが良いのでしょうか?

組み込みならC/C++が定番です。
一部の情報家電ではJavaも使えますが。

大量生産時に安上がりになるため

その通りなんですが、イメージできるように言うと、
家電は何百万台、何千万台も出荷するものなので、
一台あたり数円、数十円高いだけで、全体だと何億円ものコスト増です。
開発の人件費の差より、ハードの差が大きくなります。

コスト面の問題だけでなく、タイミング制御がシビアな分野では、
Javaのガベコレすら邪魔で、メモリ管理を自前でやる必要があります。

そのように人間が機械に歩みよる世界です。だから機械に近いC/C++で書きます。

個人が趣味で

質問者の方が仕事で書く状況を想定していましたが、
もしかして趣味でラズパイをいじりたいとかでしたら、
逆に機械の方から人間に歩みよらせて、
Javaやそれ以外の言語で、書きやすく書く、好きに書くのもアリでしょう。

unityでC#を使い、ゲーム開発をする予定

それならどうせ使うのだから、
C、C++、C#のCファミリーを覚えてしまうのは、
系統的に分かりやすい選択だと思います。

その場合の学習法は、基本となるCから覚えるのがお勧めです。
言語を好きに選べる環境なら、後発のC#が一番書きやすいです。
C++は一番難しいので、最初はベターCで使いつつじょじょに覚えましょう。
あと組み込みメインなら、状態遷移図(表)の読み書きも覚えるのがお勧めです。

投稿2016/07/10 11:09

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

組込み系といっても具体的にどんなものをターゲットにしているのかによります。
本当に、OSなしでマイコンをじかにいじりたいのであれば、C/C+言語一択だと思います。
あらゆる開発環境で、C言語がスタンダードなので、C言語がわかればあらゆるマイコンをいじれるはずです。

OSありのものだと、内容によります。
たとえばAndroidはスマホだけと思われがちですが、スマホ以外のデバイスでも使えますので、組み込みといってもいいとおもいます。

C#をやる予定なのであれば、C++は覚えておいて損はないと思いますが、まずはC言語から始めるのがよろしいかと思います。

投稿2016/07/08 09:05

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

製品にOSが載っているかどうかとOSがどういうものかによっても左右されますね。
リモコンのようなものだと、1チップのCPUでC言語だと思います。厳しいタイミング制御が必要な所はもしかしたらアセンブラを使っているかもしれません。

OSもLinux系ならC/C++またはJavaでしょうね。
iTRONの様なOSの場合はC言語が一般的です。(内の会社は産業機械の制御をやってますが、iTRON+C言語です。)

JavaもC++も似たような言語なので、片方を習得すればもう片方の習得はさほど難しくはないと思います。

最近はスマートフォン対応とかも増えてますから、そうなるとAndroidならJavaまたはC/C++、iPhoneならObjective-C/Swiftになりますね。WEB系ならJavaがほとんどでしょうか。

投稿2016/07/08 08:24

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/07/08 08:31

Android,iOS,WindowsPhone の3つに対応できる Xamarin が勢いづいてます。 XamarinだとC#ですけど。
PineMatsu

2016/07/08 08:36

ああWindowsPhoneがありますね。あまりメジャーとはいえないけど。
guest

0

いわゆる情報家電(テレビとかSTBとか)レベルではC/C++が主流ではないでしょうか。私が過去に携わったSTB(メディアプレイヤー)もC/C++で作りました。

やはり、限られたメモリ搭載量で高いパフォーマンスを発揮するにはC/C++が最適です。C/C++ならその気になればメモリ使用量を完璧にコントロールできます。一方のJavaやC#は実行環境だけでもメモリを消費し、設計段階でメモリ使用量を把握することは難しく、ある程度メモリに余裕がないとパフォーマンスが出せません。

とはいえ、例えば今時のゲーム機の中身はほぼPCですし、携帯ゲーム機やリッチな家電の中身はほぼスマホで、数百メガバイトオーダーでメモリを搭載していたりしますから、システムの構築ではなくコンテンツの制作においてならJavaやC#も有効な選択肢に入ると思います。

今後はunityでC#を使い、ゲーム開発をする予定。(まだC#は使ったことないですが笑)

Unity大人気ですね。ゲーム開発においてはJavaよりはC#の方が有用性が高いように思います。

投稿2016/07/08 06:02

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

家電と言っても範囲は広いです。
冷蔵庫や洗濯機系のいわゆる白物家電の場合は、Javaを使うケースは極稀と思います。
TVやHDDレコーダのような情報家電の場合は、Javaも使われると思いますが、CやC++も使うでしょう。
Javaだけで構築されることはないと思います。

組み込み系メインならば、C++がお薦めです。

投稿2016/07/08 04:33

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakumaN

2016/07/08 04:39

早速のコメントありがとうございます!C++で作られることが多いということは理解できたのですが、なぜJavaはあまり使われないのでしょうか?Javaでは作ることすらできないということでしょうか?
episteme

2016/07/08 04:48

ちっちゃな家電マイコンにJava-VMやらruntimeやら詰め込まにゃならんやないですか。 潤沢なメモリとそこそこ速いCPU積めるスマホならともかくも。
Chironian

2016/07/08 06:37

epistemeさんのおっしゃる通りで、Javaは大量のメモリと高速なCPUを必要としますのでどうしても高価です。C++ならば、遥かに小さなCPUでも使い物になります。 特に価格競争が厳しく、かつ、別にJavaを使うメリットのない白物家電でJavaを使うケースはほとんどないと思います。 昔、東芝がネット家電を販売してました。もしかするとJavaが搭載されているかも? http://www.itmedia.co.jp/mobile/0202/05/n_toshiba.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問