有人可以描述在为Windows开发时,C或C++程序员相对于.Net编程有什么优势吗?

最佳答案

有一种说法是,每个足够复杂的C应用程序最终都会最终重新实现C++的各个部分。 C++程序和高级语言也是如此。通过学习C和C++,可以帮助您更深入地了解.Net的实际工作原理以及设计师为何做出选择,从而间接地使您成为一名更好的程序员。

程序员对自己底层的理解才是最好的。 .Net在将许多机器体系结构问题视而不见的过程中做得非常好,但这并不完美。在抽象层中仍然存在泄漏,对较低层问题的理解将帮助您在.Net层做出正确的决策。

这些问题的简短不完整 list 包括:

  • 与 native 代码(尤其是Windows API
  • )互操作
  • CPU缓存一致性(如果您不相信我,请在PDC '09上的PLINQ演示文稿中搜索Google幻灯片)
  • 值类型性能与引用类型性能(在.Net世界中牢牢 Root ,但是学习C/C++会使堆栈和堆分配之间的区别在某些方面更加明显)。
  • 内核调度问题(即为什么剥离1000个线程是个坏主意)
  • 通过以非垃圾收集语言编写一些内存管理方案,也可以最好地了解垃圾收集器。
  • 10-07 19:19
    查看更多