MSDN第9頻道又採訪了Visual C++類庫組的專案經理Nikola Dudar和Sarita Bafna,以及品質控制組的Marina Polishchuk。儘管Visual C++項目組已經轉移了工作重點,但是很少人注意到這一點。或許這些採訪可以協助你瞭解Visual C++項目組的工作。
為什麼C++仍舊重要?
- 非託管的應用程式有很大的代碼積累,而這些程式的升級工作仍舊在進行
- 效能是選擇C++的重要因素。舉例來說,遊戲和殺毒程式更適合用Unmanaged 程式碼來編寫。
- 多平台支援。雖然.Net號稱是跨平台的,但是如果要編寫真正的跨平台程式,開發的時候遵循C++標準還是很有必要的。
為什麼C++程式員仍舊重要?
- C++程式員理解整個機器的運作,他們知道怎麼寫垃圾收集機制,甚至可以寫機器代碼
- C++程式員可以很容易的學會其他語言——C++已經是最難學的語言之一了
- C++程式員並不只使用一種語言。如果有必要的話,他們會選擇彙編、C#或者Perl這樣更適合特定任務的語言。
為什麼Visual C++項目組轉移了工作重點?
- C++程式員對於轉到C#沒有抵觸心理,所以Visual C++項目組不認為有必要儘快實現Visual C#支援的所有特性,比如LINQ和WPF設計器
- C++程式員對於讓他們的非託管程式調用其他語言的Managed 程式碼比用C++來寫Managed 程式碼更有興趣
- 核心模組,例如IE和Windows外殼會更加頻繁地更新,而會有更多的Unmanaged 程式碼需要調用這些新的特性,為了這些特性,有必要在MFC中引入新的封裝類來節省C++程式員的時間
Orcas中Visual C++的新特性:
- Managed 程式碼互操作庫。可擴充的管理的資料類型和非管理的資料類型的轉換支援
- STL/CLR。使得Managed 程式碼可以利用舊的STL編寫的演算法
- Vista支援。對Vista中新的通用控制項和檔案對話方塊等介面元素的MFC封裝。
- DevExpess重構引擎——將包含DevExpess的Refactor! for C++。
Orcas之後的考慮
- 更新介面。有些Visual C++的代碼是針對20年之前的硬體環境設計的,已經不適合現在的需要。新的Phoenix編譯引擎使得重寫前台變得更加容易。
- 太多現有的代碼需要重構。新的Phoenix編譯引擎使得程式碼分析變得更加容易。
- C++標準。新的C++標準TR1可能會在Orcas下一版本開發時成為正式標準。
- 多核支援。需要編寫可以充分利用多CPU的代碼。第一個嘗試是LINQ。
結論
- MFC和Unmanaged 程式碼回來了
- 效能和多平台支援的重要性越來越低,Managed 程式碼仍舊具有很大的市場。
Visual C++項目組的其他動作
- ATL Server發布到了原始碼共用網站CodePlex。這包含CAtlRegExp,在.Net和第三方類庫(boost,TR1)的競爭下已經不再有必要維護一個單獨的條件運算式標準了