桿死根活的COM:逝者不死,必將再起,其勢更猛

jopen 10年前發布 | 7K 次閱讀 COM

        英文原文:COM is dead, Long live COM.

        COM 全稱為 Component Object Model,即組件對象模型,是微軟在 1993 年推出的用于軟件組件的二進制接口標準,它被用于在大范圍的編程語言類型中啟動進程間的通信(inter-process communication)以及動態對象的創建。

        COM 的本質是以語言無關的方式實現對象,這種方式能夠用于不同的創建環境中,甚至可以跨越機器的限制。對于創作良好的組件,COM 允許在不知道內部如何實現的情況下進行對象重用,它促使組件實施者提供與實現相分離的定義良好的接口。

        在 .Net 出現之前,微軟對 COM 編程非常推崇。從 1995 年到 2002 年,有許多的書籍和網絡資源都在談論 COM,COM+ 和 DCOM。但是,自從微軟決定確立 C# 為其推薦語言后,許多微軟的追隨者們便放棄了 COM,他們表達出一種訊息:“C#才是最好的。”

        舉個例子,如果你在亞馬遜網站上搜索 COM 書籍,其中絕大多數是來自于 2000 年,只有極少數晚于這個時間。

桿死根活的COM:逝者不死,必將再起,其勢更猛

        然而,具有諷刺意味的是,當 COM 如日中天的時候,微軟決定使用新技術 .Net 來取代 COM,而這個時間就開始于 2000 年。

        但即使是 2000 年以后,在微軟徹底放棄 COM 之后,仍然有許多的項目選擇使用它。大約到 2005 年,C#2 問世的時候,COM 的日子就算到頭了。

        下圖是來自于 google trend 上關于“組件對象模型”感興趣度隨時間推移變化的圖表:

桿死根活的COM:逝者不死,必將再起,其勢更猛

        我們可以看到 COM 目前已經幾近死亡。

        轉機出現在 2011 年,微軟宣布基于 COM 的 WinRT 將會作出一些修改。然后在這一年里,我們開始討論 C++ 的復興,而新的 C++ 就是這個框架內最好的語言。

        最終,COM 沒有徹底的死去,它在進入一個復蘇的階段,而這會是一次成功的復蘇。

        為什么微軟會決定重新啟用 COM?

        COM 的復興更多是來自于 C++ 的復興。當微軟選擇將回歸到C++,并將其作為 WinRT 平臺“最好的住戶”時,他們需要一門技術來定義來自于 .Net 語言的組件并使用它們。為什么微軟會選擇重新啟用 COM?那是因為 COM 技術在多年以前就已經由微軟的開發團隊使用和驗證了,雖然 COM 過去有很多的缺點,但是微軟已經決定在 WinRT 上解決其中的大部分問題。

        為什么微軟會選擇回歸到C++?

        這個問題的答案只有微軟自己才能解答。或許是因為他們決定使用由他們自己主導的相同技術來發展多個平臺(個人電腦、平板電腦和手機)。在開發資源上,平板電腦和手機相比個人電腦來說更少,因此選擇 C++ 作為 WinRT 框架的基本語言是最佳的選擇。

        故事還在繼續…

        這不是故事的結局,隨著 .Net 框架的開源、OmniSharp 和 mono 社區合作確定將 .Net 運用于主要平臺(PC, Mac, Android…) 等消息的宣布,不久的將來會產生很多的變化。

        轉載請注明“文章轉載自:慧都控件網”和原文地址 http://www.evget.com/article/2014/12/2/21886.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!