開(kāi)源技術(shù)(Open Source)大家應(yīng)該都不陌生。首先請(qǐng)同學(xué)們思考一個(gè)問(wèn)題丰泊,為什么會(huì)有開(kāi)源技術(shù)產(chǎn)生呢薯定?
這個(gè)問(wèn)題恐怕說(shuō)來(lái)話長(zhǎng)了。一開(kāi)始的時(shí)候可能是一些人出于對(duì)軟件的熱愛(ài)而把自己的作品公開(kāi)出去瞳购,并且逐漸形成了一種風(fēng)氣沉唠,開(kāi)源社區(qū)也慢慢誕生了。這時(shí)開(kāi)源的作者們主要還是依靠本職工作生存苛败,開(kāi)源只是自己的業(yè)余愛(ài)好满葛。后來(lái)就出現(xiàn)了一些開(kāi)源基金會(huì),比如Apache這樣的組織罢屈,他們對(duì)很多開(kāi)源項(xiàng)目提供了資助嘀韧。然后也產(chǎn)生了一些商業(yè)的開(kāi)源公司,比如Redhat缠捌,他們依靠對(duì)開(kāi)源軟件提供商業(yè)服務(wù)而獲取利潤(rùn)锄贷。
隨著開(kāi)源技術(shù)的發(fā)展译蒂,一些大公司也逐漸參與了進(jìn)來(lái)。這些商業(yè)公司往往一開(kāi)始對(duì)開(kāi)源技術(shù)是拒絕的谊却。本來(lái)我的軟件是要賣錢的柔昼,你把源碼都公開(kāi)了,別人還會(huì)為你的軟件付費(fèi)嗎炎辨?但是開(kāi)源的浪潮是如此的洶涌猛烈捕透,以致于那些老牌的大公司們也不得不轉(zhuǎn)過(guò)身來(lái)?yè)肀ч_(kāi)源技術(shù)了。一方面他們?cè)谧约旱漠a(chǎn)品中也大量使用開(kāi)源技術(shù)碴萧,另一方面他們也開(kāi)源了很多自己的產(chǎn)品乙嘀。
開(kāi)源技術(shù)為什么會(huì)這么火呢?我覺(jué)得主要還是因?yàn)樗拈_(kāi)放性破喻,給參與其中的個(gè)人和公司帶來(lái)了巨大的影響力虎谢。軟件在開(kāi)源之后使用它的人會(huì)越來(lái)越多,這反過(guò)來(lái)又對(duì)這個(gè)軟件的發(fā)展起了巨大的促進(jìn)作用曹质。在這樣的正反饋循環(huán)之下婴噩,軟件也就變得越來(lái)越好。
現(xiàn)在開(kāi)源軟件已經(jīng)無(wú)處不在羽德,我們的日常開(kāi)發(fā)也都是建立在開(kāi)源框架的基礎(chǔ)之上了讳推。那么我們應(yīng)該如何選擇開(kāi)源框架呢?我覺(jué)得需要考慮以下幾點(diǎn):
- 上手容易程度
- 社區(qū)活躍度
- 生態(tài)系統(tǒng)完整性
- 大廠的支持背書(shū)
首先這個(gè)框架得容易學(xué)習(xí)和使用玩般。如果學(xué)習(xí)曲線太陡银觅,那么學(xué)習(xí)的成本就很高,把太多時(shí)間投入到這里可能不太值得坏为。
社區(qū)的活躍度是非常重要的究驴,活躍的社區(qū)才能不斷的反饋問(wèn)題并促使框架不斷改進(jìn)。反之的話可能遇到了問(wèn)題都沒(méi)有地方去問(wèn)匀伏。
生態(tài)系統(tǒng)指的是和這個(gè)框架配合的周邊產(chǎn)品的成熟度和豐富程度洒忧。畢竟一個(gè)東西哪怕再好用,它也不能完成所有的需求够颠,總是需要和其它產(chǎn)品配合使用的熙侍。不過(guò)如果這個(gè)框架真的很流行,那么自然會(huì)有很多人去貢獻(xiàn)周邊的功能履磨,一般說(shuō)來(lái)生態(tài)系統(tǒng)也都不成問(wèn)題蛉抓。
大廠的支持這點(diǎn)倒也不是必要的。很多個(gè)人的開(kāi)源項(xiàng)目也做得非常棒剃诅,但個(gè)人往往是出于自己的興趣愛(ài)好巷送,一旦興趣不再或者是工作生活上的其它原因,可能不能保證對(duì)項(xiàng)目的持續(xù)更新矛辕。如果有大的公司支持的話笑跛,可能會(huì)相對(duì)穩(wěn)定一些付魔。
總之,開(kāi)源對(duì)軟件的發(fā)展起了不可估量的作用飞蹂。沒(méi)有開(kāi)源的話也不會(huì)有今天的互聯(lián)網(wǎng)的存在几苍。開(kāi)放,自由陈哑,共享妻坝,協(xié)作,這些開(kāi)源的精神和理念都是值得我們學(xué)習(xí)的芥颈。