私はコーダーであり、ネイティブコードとマネージコードの両方の経験があります。PascalとCから始め、C ++に移行し、最終的にC#に移行しました。
去年かそこらで、私はほとんど独占的にC#でコーディングしてきましたが、私がC ++コーダーであったときに自然に来ていたものの多くを失いました。
数週間前、ネイティブC ++コードを書くために座ったとき、私はその複雑さ、癖、およびその特異性に徐々に慣れてきたので、いじくり回していました。サイズを渡さずに動的に割り当てられた配列を関数に渡すと、受信関数が配列の長さを知る方法がないことを完全に忘れていたと言うのはほとんど恥ずかしいです。
マネージドコードとアンマネージドコードを比較対照する無数の記事やドキュメントがあります。ネイティブコードは、最適化されていれば、マネージコードよりも大幅に高速かつ軽量に実行できることを知っています。一方、マネージコードには、ガベージコレクターと、CPU固有およびOS固有の実行時最適化があり、ネイティブコードをその費用で実行できます。
純粋に技術的な観点からは、明確な勝者はいません。
マネージコードは、コーディングと理解が非常に簡単であることは間違いありません。Win32 C ++とC#でシンプルなGUIを構築するために必要な行数の違いを見てください。
ネイティブコーディングの時代に戻って、私は主にスーパーコンピューターで実行される数学的シミュレーションを書きました。CLIいCLIがあり、ほとんどがアルゴリズムに焦点を合わせていました。現在、私はC#で記述して美しいGUIアプリケーションを作成していますが、母国語で同様の口径のものを作成しなければならない場合は失われます。QTなどのフレームワークを使用しても、C ++ / QTで何かを生成するには、C#の場合の2倍の時間がかかります。
大規模でフル機能のGUIアプリケーションをC / C ++で書いた人に会うたびに、a敬の念とjeのヒントを感じずにはいられません。
他の経験豊富なコーダーがマネージド言語とアンマネージド言語をどのように見ているのか興味があります。マネージコードはアマチュアっぽいと思いますか?ネイティブコーダーはよりハードコアだと思いますか?