社區討論:開源能否拯救.NET?

jopen 10年前發布 | 8K 次閱讀 .NET開源

  作者 李士窯 

  近日,微軟開源了 .NET,其目的是要將自己的生態核心從 Windows 轉向 Azure 云端,并建立起一個運行良好的生態圈(包括軟件、硬件)。同時,微軟還欲向 Android 平臺滲透并撼動 Java 服務器端開發的地位。另外,對于開發者而言,微軟開源了 .NET 也算是創建了一個 Java 平臺的開源替代平臺。微軟的愿景是美好的,但是能否撼動 Java 的地位,并建立起自己的良好生態圈還是個未知數,至少需要時間去驗證。

  首先,微軟已錯過了開源的最佳時機。Java 由 Sun Microsystems 公司于 1995 年 5 月推出,它還得到了 JCPApache 基金會、Oracle、IBM、Google、SAP 等眾多歷開源組織、公司以及非組織個人的支持,并貢獻了大量的功能組件和開源項目。歷經將近 20 年的發展,Java 平臺已經穩坐服務器端開發的寶座,幾乎處于不可撼動的地位。而微軟于 2000 年才推出了與 Java 競爭的 .NET 平臺和 C# 編程語言,且局限在微軟操作系統體系下運行,還缺少第三方組織、公司的支持。微軟相關負責人表示,微軟將 .NET 開源的決定并不是心血來潮,而是醞釀了幾年的結果。可見,微軟的確錯過了開源的最佳時機。

  來自 RedHat 的 Arun Gupta 評論到:

微軟開源 .NET 的意圖是好的,不過,.NET 要真正成為 Java 的一種替代或威脅,仍然需要好幾年的時間。

</blockquote>

  其次,良好生態圈的形成不是一件簡單的事情,開源 .NET 只是建立生態圈的第一步。任何開源項目要想取得成功,構建一個開源社區是非常關鍵的一個條件,但是構建一個開源社區不是一朝一夕的事情。尤其在接受外部貢 獻代碼方面,微軟還規定了兩個原則,第一個是路線圖原則,該規則規定所有項目都應專注于各自的領域,為保持其專注性和動向,大部分工作都要符合產品的路線 圖。第二個是代碼質量原則,該規則規定外部人員所提交代碼的質量應該達到微軟員工的同等水平(包括正確的設計、架構、足夠的測試覆蓋等),并遵循微軟的編 碼風格。這兩個原則盡管保證了軟件的質量,但是同時也約束了貢獻者,也許會把一些貢獻者拒之門外。

  來自內存網格公司 Hazelcast 的市場部和開發關系部副總裁 Miko Matsumura 評論到:

  微軟的開源舉措只是在正確方向邁出了第一步,要想完全得到社區的支持,還需要很長的路要走,畢竟 Java 已經開源了八年。

  第三方公司的支持也是建立生態圈的關鍵條件,Google、IBM、SAP、RedHat 等大公司和眾多中小公司多數以 Java 為主要開發語言,很多新系統以及歷史遺留系統也是由 Java 編寫,如果要他們轉向 .NET 的可能性不大,或者需要很長的時間。

  最后,Linux 已贏得了服務器市場的優勢地位,而 .NET 要取代 Java 作為 Linux 服務端開發語言,還有一些問題需要解決和驗證。首先是網絡庫方面,.NET 的網絡庫基于 IOCP,而 Linux 基于 epoll,移植后性能效果如何很難確定。其次是數據庫方面,此前,.NET 的數據庫大多是配合 SQL Server 使用,要改成MySQL、PostgreSQL 等開源數據庫,ADO 和 MySQL、PostgreSQL 等在 Linux 下的性能如何有待驗證,以及和 Redis、Memcached 等 NoSQL 數據庫等的兼容性也不確定。

  多年以來,由于 .NET 依附于 Windows 平臺,無法與 Java 在跨平臺環境中進行競爭。再加上近年來隨著移動互聯網和云計算的蓬勃發展,微軟在開發者社區的人氣一路走低,最近開始流行的 Linux 服務器上的容器化云計算開發技術,微軟也開始落伍了。

  微軟宣布開源 .NET 的舉措能否挽回已落后的局面,就只能拭目以待了。


  感謝郭蕾對本文的審校。

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