在過去的時間里,基于Windows的開源軟件物數量實在太少了。在網上查找一些開發相關的網站,內容也不外乎抄來抄去那幾篇怎么做三角的Button啊,怎么做不規則的窗體啊,怎么把程序放到右下角的托盤中啊。當然不是Windows的程序員就是這種水平,當然也不是Windows程序員不團結,搞不出一個開源軟件。
在Windows上的開源項目的阻力來源于:1.OS的封閉;MS做了太多的東東,束縛了程序員的創造力;3.開發語言和工具太多太雜了,各種程序員之間無法順利的交流。Linux方面天生沒有這些桎梏,系統源碼開放,讓你可以追宗溯源;很多東東都是白手起家,你可以自由的發揮你的創意(在Windows下很難寫出Vi這么棒的編輯器);語言嘛,不用說了。Java的開源項目飛速增長的原因,也和上述條件有關。
現在不同了,.NET來了,機會來了。是讓我們團結起來發展Windows下的開源軟件的時候了??蛇@么做的意義是什么呢?首先是學習開源的精神,分享彼此的思想、成果,共同提高;其次,開發出我們自己愛戴的軟件,高速、穩定、方便、免費。比如像Apache,我們喜歡用ASP,但受不了IIS的脆弱,那讓我們也來做個跑ASP的Apache吧。有了這些軟件,就可以不再只受MS一家的限制了,多了其它的選擇。再次,光有.NET的類庫是不夠的,我們必須搞出一些類似于STL、boost、ATL等等專用庫,別一提起這些東東就都是國外人搞的。
為什么說機會來了呢。.NET屏蔽了OS一級,讓程序跑在一個虛擬環境,這樣,你的程序可以獲得類似Java的OS無關性(還不能完全無關,但已經夠了)。讓我們來在虛擬環境專心做好我們的軟件,讓MS去專心改善OS。在.NET中類庫和API都是統一的,無論你用什么語言開發,最多只是語言的區別,其它的障礙都不存在了?;诖?,在一個開源項目里用不同的語言寫不同的模塊變得很簡單。各種語言的程序員可以像少數民族大團結一樣一起做一個項目。
我總覺得Linux下的本地開源項目和Windows下的本地開源項目勝過Java。Java的OS無關性也等于無視OS的特點(Java程序員別生氣,從辯證角度來說共性和個性本來就是矛盾的,這不是你的問題)。所以我大力提倡Windows下的開源項目,讓我們把Windows下的軟件做得更好、更穩定(易用方面還是有優勢的)。
原文轉自:http://www.anti-gravitydesign.com