開源在國外現在是火的一塌糊涂,Linux、Eclipse、Hibernate、Spring、Python、Ruby、 MySQL等等或大或小的開源產品的發展大大推動了軟件開發這個行業的高速發展,apache、sourceforge等開源社區中也是百花齊放,開源產品的開發者、推動者、推廣者也得到了各自想得到的回報,更不用說使用這些開源產品進行開發的用戶得到的開發效率的提升。反觀國內開源的發展則相對滯后很多:違背Linux開源協議進行商業化Linux開發的廠家被開源社區罵的狗血噴頭;屈指可數的幾個開源愛好者組織的開源團隊在個人的意志與信念的堅守下苦苦支撐著,很多因為種種原因中途夭折;商業公司對開源社區的幾次推廣行動也胎死腹中,比如CSDN的開源社區、Apusic的Operamasks;更有甚者打著開源的旗號卻從事著根本與開源不搭邊的事情。國內大部分人對開源更是有著很深的誤解:“你憑什么叫人家開源,不是想看看Windows的代碼嗎?”、“人家商業公司做出來的產品是你們幾個技術瘋子做出來的東西能比的嗎?”、“把別人寫好的東西拿來抄一抄改一改我的任務完成了,錢到手了,開源真好”、“我做的項目用了很多開源的東西,很牛吧!”。
我認為開源對于整個軟件行業有如下幾個作用:使用開源產品搭建出的產品有更好的安全性和可控性;開源的產品能得到開發社區的廣泛支持,從而使得產品能夠成熟的更快;使用開源產品搭建出的產品有更好的安全性和可控性;開發、學習開源產品能夠提升開發人員的技術水平。
對于第一個作用這里不做過多解釋,相信大部分人都能理解。
開源產品是在全世界所有技術牛人的手下開發出來的,并且有千萬雙眼睛盯著它,眾多的使用者可以完善它,這使得開源產品的成熟速度也十分驚人,Linux、Eclipse的成熟是典型的證明。各種開源產品層出不窮,相似功能的產品有幾十種甚至上百種,一個開源產品如果想要在這些產品中脫穎而出,不僅需要強大的技術做支撐,更需要非常強的商業化推廣,否則做出來的產品只能成為少數技術人員把玩的玩物。如果沒有IBM對Eclipse 的巨額投入,Eclipse會發展成現在的規模嗎?這些開源項目的后面通常都是有一個非常強大的開源基金會在做支撐。遺憾的是,目前國內還沒有一家公司能夠進行對開源社區如此大的投入,因此國內大部分的開源團隊都是在自己開發著自己的開源產品,放到網站上供他人下載,然后夢想著自己的開源產品能夠有會像Hibernate、Struts一樣成為風靡全球的產品,但是如果沒有強大的商業推廣的話這肯定是一場白日夢。