C++について色々調べてるのですが個人的には難しいというより面白そうという感想をもちました。
何故、学習コストが高いとか複雑だからダメとかいう意見があるのでしょうか。
個人的には他の言語とたいして変わらないように感じたので最初から全てをC++で書けば実行速度をあげられて良いのではと思いました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
プログラミングにおいて最も時間のかかる作業はプログラムの間違い探し、デバッグです。一方、コンピュータの高速化は著しく性能の小さな差異は現実には大きなウェイトをもちません。
結局、プログラミングは所詮手段にすぎないものであり、複雑多機能なものよりも手軽なものの方が好まれるケースがあります。つまり場合によりけりであり、状況次第です。今や他の言語も充分実用化されており、互換性の問題で他の言語の方が優れることすらあります。
もっとも、C++が面白いということは大賛成です、実用性を度外視し、性能やソースの美しさに拘りたいというのは、プログラマの性です。
投稿2018/07/18 20:43
総合スコア4830
0
こんにちは。
何故、学習コストが高いとか複雑だからダメとかいう意見があるのでしょうか。
大量にプログラマを投入する必要があるプログラム開発において、学習コストの高い言語を使うのは間違いです。やはりC++の本当に難しい部分をばっさり切り捨てたJavaやC#の学習コストはC++に比べると遥かに低いので、そのような言語を使うべきでしょう。
また、GUI開発フレームワークの決定打がないのも痛いです。C++BuilderやQt等それなりに選択肢はあるのですが、メジャーではなく情報の流通量の不足は否めません。(ビジネス用途だと無償版はちょっと厳しい面もある。)
個人的には他の言語とたいして変わらないように感じたので最初から全てをC++で書けば実行速度をあげられて良いのではと思いました。
基本的な部分は大差ないと思います。しかし、以下のような有用だけど理解の困難な概念が結構あります。
- 参照
JavaやC#の参照はC++のポインタと事実上同じものです。逆に云うとC++の参照の概念は他の言語ではあまりみないです。意外にC++の参照の概念は難しいです。
そして、const参照と右辺値参照は更に更に難しいです。
しかし、これらの概念のおかげで「安全」かつ「高速」なプログラムを書きやすくなります。
安全性と高速性は相反する場合が多い(安全性を優先すると遅くなる)ので、この特長は非常に有用と思います。
- アクセス制御
C++のようなconstやfriendはJavaやC#にはないようです。
これらは有ってもよい筈ですが、Javaの言語設計時に使い方が難しいということで切り捨てられ、C#にも引き継がれたという話を聞いた記憶があります。(記憶違いだったらごめんなさい。)
- テンプレート
他の言語ではジェネリックと呼ぶことが多いようです。
C++のテンプレートはコンパイル時に型毎にコード化されます。
しかし、JavaやC#のジェネリックは実行時に型毎に分岐処理します。ですので速度がかなり遅いです。
JavaやC#にはテキストテンプレートがあるようです。こちらはコンパイル時にコード化されますが、どちらかというとC/C++のマクロを強力にしたイメージに近いと理解しています。
他にもいくつかありそうです。
これらを積極的に使ったプログラムをメンテナンスするためには、それらを少なくとも理解できるだけの才能のあるプログラマが必要です。しかし、全てのプログラマが理解できるというわけには行かないでしょう。感覚的には極一部のプログラマにしか対応できないような印象を受けます。
投稿2018/07/19 02:17
総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
ここの掲示板の同じ話題 を参考にされては?
投稿2018/07/18 20:29
総合スコア16415
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
人によると考えます。
別のもので比較すると’日本語は難しいですか?’とか’英語は難解?’と同意で、思考と表現力の違いも。
貴殿がパフォーマンスの面からC++の実行速度を指摘していますが、作り方によってはパフォーマンスにも差があります。
一番はハードの特性(どのように動かすか?最良な制御方法は?)を熟知して効率の良いソフトウエアを作成がパフォーマンスが良い。
またC++が難解と思われるの一般の口述言語との差。相手はCPUやGPUもしくはFPGA。それに命令をする。(プログラムで)。それで一番効率が良い方法。
多くのプログラム言語はプログラムする人間の思考過程にそって’ミスが少なく、時間を短縮して、再利用も含めたリソース作成’ですから。
投稿2018/07/18 20:10
総合スコア3747
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。