C#在開源框架的數量和質量上有希望追上JAVA么?


沒戲了,因為C#的開源框架只有兩種:

第一種是微軟做的,沒前途

第二種不是微軟做的,質量低

------------------------------------------------

一般搞開源的人跟我證明說.net沒用的時候都是這麼講的


目前從趨勢上來說,.net仍然沒有希望,目前能看到一些好的苗頭,比如net framework的部分代碼公開,工具市場的建立(web installer),開源社區等,不過仍然不能改變其在大眾中封閉的形象,期間還有一些范二的行為,比如看到開源市場中一些比較好的,自己馬上動手實現一個,立馬把別人干趴下了,其在企業級的開發框架方面,也是無所不用其極的整合自己的產品,比如sharepoint,它在儘力促成一個目標:讓大部分程序員成為實實在在的碼農。可以想像是it領域的工業化生產,這似乎是一個產業成熟的標記,微軟在鼎盛的時期當然想干一些偉大的事情,不過它顯然低估了產業發展的遠景,從目前it產業瞬息萬變就能看出來,產業還遠沒有到工業化的程度。net的封裝一直是java開發者比較詬病的地方,甚至認為到了噁心的程度,很大程度上降低了開發人員的技術成就感。


最後回到主題,據我所知,servicestack是一個較好的開源框架,涵蓋面很廣,值得深入了解。


數量上目前C#沒希望,,,,

質量上目前Java沒希望,,,,

Java平台上的開源軟體覆蓋的廣度,數量方面.NET目前是沒有希望超越的,由於開源軟體的一些條款限制,.NET平台本來就有一部分代碼是不開源的(如CLR)。開源社區的一些顧慮,以及微軟在前幾年態度的不明朗,這些都不可能短期內有所改善。

例如評論中指出的NoSQL資料庫領域等,.NET開源項目在這方面基本是一片空白。

但是,.NET平台上開源軟體的質量卻領先於Java。

當然這有很大程度上是因為.NET平台開源軟體兩大主要構成:

一是微軟開發的或者微軟支持開發的,這一方面質量自當不用說。

二是其他開源平台(主要是Java)成熟項目的移植,一個項目被移植到.NET平台必然是已經發展的非常成熟,

這兩大主力軍確定了.NET平台開源軟體整體質量高於Java。

除此之外,.NET平台相對於Java平台還有幾大優勢:

一是微軟在一開始就給出了.NET平台框架系統的設計準則,命名指引等規範性文檔。整個.NET Framework的文檔體系性、完整性方面都非常完美。而Java則命運多舛,各大廠商相互角力,未能形成統一的風格。

二是龐大統一標準的.NET Framework為.NET程序員提供了一個非常好的示範,微軟還在不遺餘力的建設龐大的代碼庫和示例庫。

這幾優勢使得.NET平台上的軟體各種風格(尤其是API)趨於統一,加上幾乎是工業設計語言中的王者的C#語言,使得.NET平台上的軟體整體質量高於Java。

而Java由於歷史原因,語言和類庫方面都不如.NET有體系,目前的情況也使得在短期內根本看不到統一的希望,


雖然很不服氣,但是沒辦法。NUnit等從Java移植過來的Framework在美觀度上完爆Java。因為C#語言特性優美。但是C#本身開源氛圍弱於Java。大家在用開源框架時會有一種等待微軟出官方版的心態。比如ActiveRecord,NUnit,http://Spring.NET等。有了微軟官方替代後,社區迅速歇菜。而且這些框架移植自Java,本身就實現的比較慢,功能也不全。

於是C#世界大把Library,但是Framework少。


如果開源狂人們只抱著秀一秀而不是解決問題的態度,C#沒希望的。


C#領域微軟一家獨大。自產自銷。東西幾乎都只能用微軟的。其他的要麼玩具,要麼從Java移植過去。


開源信者都把MS視為殺父仇人,怎麼可能會幫他寫開源框架?


推薦閱讀:

如何系統掌握遊戲編程中3D圖形學相關的基礎?
你遇到過哪些代碼優雅的C#項目?
除了收費的軟體或者庫以外,如何解析doc格式word文件,C++或C#語言的?
使用 C# 開發 iOS 程序是一種怎樣的體驗?
值得看的C#的開源項目有哪些?

TAG:軟體 | Java | 開源 | C# |