Dot-Net
.Net windows 程序員有什麼理由需要學習 C 或 C++ 了嗎?
有人可以描述 C 或 C++ 程序員在為 Windows 開發時比 .Net 程式有什麼優勢嗎?
有一種說法是,每個足夠複雜的 C 應用程序最終都會重新實現 C++ 的一部分。C++ 程序和高級語言也是如此。學習 C 和 C++ 將幫助您更深入地了解 .Net 的實際工作原理以及設計人員做出選擇的原因,從而間接使您成為更好的程序員。
程序員的好壞取決於他對他下面的層的理解。.Net 在抽像出很多機器架構問題方面做得很好,但它並不完美。抽象層仍然存在漏洞,了解較低級別的問題將幫助您在 .Net 層做出正確的決策。
這些問題的簡短且不完整的列表包括:
- 與本機程式碼互操作,尤其是與 Windows API
- CPU 記憶體一致性(如果您不相信我,請在 PDC ‘09 上搜尋 PLINQ 展示文稿中的幻燈片)
- 值類型性能與引用類型性能(這在 .Net 世界中已經站穩腳跟,但學習 C/C++ 會使堆棧和堆分配之間的差異在某些方面更加明確)。
- 核心調度問題(即為什麼剝離 1000 個執行緒是個壞主意)
- 理解垃圾收集器也最好通過用非垃圾收集語言編寫一些記憶體管理方案來實現。