私が理解できることから、C#は.NETアプリをコーディングする際の事実上の言語です。C ++で.NETアプリ(ASP.NET、WinPhone 7、GUIなど)をプログラミングすることをお勧めしますか?この道を進むことを選択した場合の落とし穴と欠点は何ですか?
共有いただきありがとうございます。
私が理解できることから、C#は.NETアプリをコーディングする際の事実上の言語です。C ++で.NETアプリ(ASP.NET、WinPhone 7、GUIなど)をプログラミングすることをお勧めしますか?この道を進むことを選択した場合の落とし穴と欠点は何ですか?
共有いただきありがとうございます。
回答:
C#/。Netに移行するまでC ++を使用していた長いプログラマーとして、.Net開発にC ++を使用しないことをお勧めします。実際には、実際のC ++を使用して.Netでプログラミングすることはできませんが、C ++ / CLIと呼ばれるMicrosoftの嫌悪感は、ISO C ++にはない醜さを伴います。読みやすさの観点からだけ言えば、C ++ / CLIはまったく考慮すべきではありません。_gc、gcnewなどを使用しますか。
また、実用的な目的では、C ++ / CLIを使用したコードサンプル、チュートリアル、ブログなどは多くありません。また、プログラマーがC ++ / CLIで作業することを知っているか、または進んで作業することもありません。.Net開発の自然言語ではありません。C#/ VB.Net / F#は、C ++ / CLIと比較して、新機能によりはるかに急速に変化し続けます。
.Netの本質は、新しい言語を何度も学習することなく、使い慣れた言語を使用してDotNetプラットフォームを使用できることです。これを見る1つの方法は、Javaピラミッドの反転としてです。Javaは、「単一言語、単一実行可能ファイル(IL)-多くのOS」として説明できます。ドットネットは、「多くの言語、1つの実行可能ファイル、1つのOS」です(もちろん、Monoがあるので、1つのOSのビットは正しくありませんが、Microsoftが考えていたものではないと思います:-P)。
はい、C#はDotNetの言語であることを意図していましたが、「唯一」ではありませんでした。マイクロソフトはおそらく、すぐにではなくても、長期的にC ++プログラマーがC#に移行することを望んでいたでしょう。しかし、それは起こっていないようです。C ++は依然として3番目に人気のある言語です。言語に関する親しみやすさと、アプリケーションをC ++からC#に移植するために必要な努力により、ほとんどの開発者は気が進まなくなりました。結局、壊れていないものを修正するのはなぜですか?マイクロソフトがC ++ / CLIを思いついたのはそのためです。これは、新しい言語を学ぶ必要なしにDotNetワゴンでC ++プログラマーを獲得する素晴らしい方法です。C ++ / CLIに慣れるのにほとんど時間がかかりませんでした。私が見た唯一の欠点は、マネージクラスの新しいポインター表記が、C ++のポインターについて理解が不十分なユーザーを混乱させる可能性があることでした。でも私には影響しなかった。