作为一个C++专家,这真的一直困扰着我。我一直很喜欢微软大约十年前提出的“语言无关框架”的想法。他们为什么放弃了这个想法?有人知道背后的原因吗?
原因之一是C++支持实际上是两种语言的结合——本地和CLI变体。Visual C++团队承认这种额外的开发负担是MSBuild集成落后于其他语言的原因。
另一个原因与编译期间代码生成有关,这在C#构建中进行以支持绑定“魔法”。我发现即使在F#中,你也不会轻易得到它。
我也很不爽,如果他们支持的话,我们就能更容易、更便宜地将我们的 C++ 代码迁移到新的 GUI,而不是在 C# 中基本上重写所有内容。这让我们在经济衰退时付出了巨大的代价。
我想这样做的原因可能是因为 C# 很受欢迎(并且不像 C++ 那么跨平台),所以他们决定保持最低限度的开发工作。
你可以使用托管C++来进行WPF开发。
原因是现在几乎所有的新应用程序编程都是使用JavaScript、Java、VB.NET或C#等GC语言完成的。重点是提高质量,降低技能要求,而C++对开发人员的要求过高,公司希望员工在第一天就能写出无错代码。
C++主要用于维护现有应用程序或需要极高性能的场景。设备驱动程序和操作系统仍然经常使用C++编写,但即使这也在改变(Coyotos是Cbit,E#,Cosmos/Mosa是C#,Singularity/Midori是C#)。