ここから本文です

C言語・C++・Java・Pythonについて 大学でC言語・C++・Java・Pythonを勉強したの...

koo********さん

2014/11/1618:53:53

C言語・C++・Java・Pythonについて
大学でC言語・C++・Java・Pythonを勉強したのですが、違いがよく分かりませんでした。

例えば、下の用途で使う場合には優位性はどのようになるのでしょうか?
1. 3Dゲームを作る
2. 巡回セールスマン問題関係
3. スマートフォン用のアプリを作る
4. word・excelみたいなソフトを作る
5. 制御関係(洗濯機とかレンジなどの)

それぞれの違いなども教えていただきたいです。
よろしくお願いします

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
374
回答数:
1
お礼:
500枚

違反報告

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

プロフィール画像

カテゴリマスター

man********さん

2014/11/1619:45:53

koodkdaさん
多様な目的毎の言語選択ね

>1. 3Dゲームを作る
まず”ゲーム・エンジン”をC++かJava等、3D表示できるデバイスドライバを業界標準API経由で呼び出すことができる言語で作って、
その”ゲーム・エンジン言語”を使う上位層でゲームのシナリオを書く。

>2. 巡回セールスマン問題関係
Pythonの豊富なアルゴリズム実装ライブラリを使う。

>3. スマートフォン用のアプリを作る
少々複雑なアプリを作っても、アプリ配信サイト経由で烏合の衆が品質の低いソフトか、意図的にスパイウェアを押し込もうとしても、致命的には悪いことが起きないJava。
iPhoneとAndroidなど、多種のスマートホンの何れでも動作しうるハイブリッド・アプリでも、Google社のGWTとCordvaいうフレームワークとを組み合わせれば、Java言語で記述できます。

>4. word・excelみたいなソフトを作る
excelの沢山のセルに計算式を貼り付けて再計算させると、画面の右下の進捗表示で、マルチコアを活かして並列処理している様子が解ります。
もし、ディスクトップ・ソフトや、Google Appサービスのようにブラウザ越しのWebアプリとして、マルチコアを活かして並列処理もできで、Windowsやmacの様々なフォントを使った文書表示や、円グラフなどを描画するソフトを、その言語仕様の標準機能範囲だけで実装するならJava言語しかないでしょう。

もし、Windowsとmacのディスクトップ・アプリに限定して、C++の標準規約を逸脱した機能も使うくらいなら、Microsoft社のC#を使うのも良いでしょう。
"標準規約を逸脱"するとどうなるかと言うと、2000年頃Microsoft社が提供していた「Windowsアプリを作るならC++言語とMFCというライブラリの組み合わせ」のように、「10年後の今、再コンパイルや改造がトテモ困難になっている」というハメに合うことを、覚悟する必要が生じます。

>5. 制御関係(洗濯機とかレンジなどの)
ボーイング777や、F-22戦闘機の大規模な制御ソフトウェアも記述できているAda言語が良いと思う人は、私一人ではないのだが、国内での適用実績でみると、C言語が多用されているらしい。

エアコン程度の大型&高価格な家電だと、C++言語で記述できる程度にリッチな開発環境が整えて、開発効率を高めているメーカも居るらしいが、組込み機器の中にC++のmain関数を呼び出す前のスタートアップ・ルーチンを組み込める程度の技術力が、まだ浸透していないので、止む無く、スタートアップ・ルーチンが簡単なC言語を使っている組織の方が多いのだと思います。
http://homepage1.nifty.com/x6/language/C/C.htm

  • man********さん

    2014/11/1620:25:05

    >2. 巡回セールスマン問題関係
    オット、解法が定まっていない上に、長時間走行問題の代表格だったので、ここはhaskelかRuby言語に訂正。

    適用アルゴリズムを試行錯誤してコードの正当性を検証するまでなら、haskel言語。
    Pythonと同程度に、基本的なデータ構造に対するアルゴリズムが実装されているRuby言語をJava VMの上で動作させるJrubyなら、Pythonの何倍も早く、実行結果を得ることができます。

    以下は、知恵袋での別のQ&Aで、同一課題を解くのに要したコード量と走行時間の比較です。

    ・haskelのコードで26行、走行時間は0.5秒。
     ://ideone.com/OYJ49u
    ・Rubyのコードで25行、走行時間は7.07秒
     ://ideone.com/nCc7hz
    ・Pythonのコードが32行、約114.83秒(参考)
     ://ideone.com/l2biWJ#

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

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

あわせて知りたい

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

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

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

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

閉じる

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

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

閉じる