目前有些C++語言,以犧牲靈活性的代價來提高效率。可是這些靈活性正是C/C++程序員所需要的,出於商業目的。某些商業公司實現的時候可能會添加一些其認為可行的或者更加好的特性。
對於C/C++用戶來說,最理想的解決方案無疑是在快速開發的同時又可以調用底層平台的所有功能。他們想要一種和最新的網絡標准保持同步並且能和已有的應用程序良好整合的環境。另外,一些C/C++開發人員還需要在必要的時候進行一些底層的編程。
微軟推出C++語言
C# (C sharp) 是微軟對這一問題的解決方案。C#是一種最新的、面向對象的編程語言。它使得程序員可以快速地編寫各種基於Microsoft .NET平台的應用程序,Microsoft .NET提供了一系列的工具和服務來最大程度地開發利用計算與通訊領域。
正是由於C#面向對象的卓越設計,使它成為構建各類組件的理想之選——無論是高級的商業對象還是系統級的應用程序。使用簡單的C++語言結構,這些組件可以方便的轉化為XML 網絡服務,從而使它們可以由任何語言在任何操作系統上通過Internet進行調用。
最重要的是,C#使得C++程序員可以高效的開發程序,而絕不損失C/C++原有的強大的功能。因為這種繼承關系,C#與C/C++具有極大的相似性,熟悉類似語言的開發者可以很快的轉向C#。
效率與安全性
新興的網絡經濟迫使商務企業必須更加迅速的應對競爭的威脅。開發者必須不斷縮短開發周期,不斷推出應用程序的新版本,而不僅僅是開發一個“標志性”的版本。 C++語言在設計時就考慮了這些問題。它使開發者用更少的代碼做更多的事,同時也不易出錯。
支持現有的網絡編程新標准
新的應用程序開發模型意味著越來越多地解決方案依賴於新出現的網絡標准,例如HTML,XML,SOAP等。現存的開發工具往往都是早於Internet出現的,或者是在我們所熟知的網絡還處於孕育期時出現的。所以,它們一般無法很好地支持最新的網絡技術。
C++語言程序員可以在Microsoft .NET平台上事半功倍的構建應用程序的擴展框架。C#包含了內置的特性,使任何組件可以輕松轉化為XML網絡服務,通過Internet被任何操作系統上運行的任何程序調用。
更突出的是,XML網絡服務框架可以使現有的XML網絡服務對程序員來說就和C#對象一樣。這樣,程序員就可以方便地使用他們已有的面向對象的編程技巧來開發利用現有的XML網絡服務。
還有一些精細的特性,使得C#成為一流的網絡編程工具。例如,XML正逐漸成為在網絡上傳輸結構化數據的標准。這種數據集合往往非常小。為提高性能,C#允許把XML數據直接映射到struct數據類型,而不是class。這樣對處理少量的數據非常有效。
消除大量程序錯誤
即使是專家級的C++程序員也常會犯一些最簡單的小錯誤——比如忘了初始化變量,但往往就是這些小錯誤帶來了難以預料的問題,有些甚至需要很長時間來尋找和解決。一旦一個程序作為產品來使用,就算最簡單的錯誤糾正起來也可能要付出極其昂貴的代價。
C++語言的現代化設計能夠消除很多常見的C++編程錯誤。 例如:
1. 資源回收減輕了程序員內存管理的負擔。
2. C#中變量由環境自動初始化。
3. 變量是類型安全的。 這樣,程序員編寫與維護那些解決復雜商業問題的程序就更方便了。 對版本的更新提供內在的支持降低了開發成本
更新軟件組件是一項很容易出錯的工作,因為代碼的修改可能無意間改變原有程序的語義。為協助開發者進行這項工作,C#為版本的更新提供內在的支持。例如,方法重載必須顯式聲明。
這樣可以防止編碼錯誤,保證版本更新的靈活性。還有一個相關的特性就是對接口和接口繼承的內在支持。這些特性使得C#可以開發復雜的框架並且隨著時間不斷發展更新它。 總體來說,這些特性使得開發程序項目的後續版本的過程更加健壯,從而減少後續版本的開發成本。 商業過程和軟件實現的更好對應
企業的商業計劃要付諸現實,必須在抽象的商業過程和實際的軟件實現之間建立緊密地對應。不過大多數語言都很難做到這點。例如,如今的程序員們一般使用代碼注釋來注明哪個類對應於某個抽象的商業對象。
C++語言允許類型定義的,擴展的元數據。這些元數據可以應用於任何對象。項目構建者可以定義領域特有的屬性並把他們應用於任何語言元素-類,接口等等。然後,開發人員可以編程檢查每個元素的屬性。這樣,很多工作都變得方便多了。
比如編寫一個小工具來自動檢查每個類或接口是否被正確定義為某個抽象商業對象的一部分,或者只是創建一份基於對象的領域特有屬性的報表。定制的元數據和程序代碼之間的緊密對應有助於加強程序的預期行為和實際實現的之間的對應關系