开源技术(Open Source)大家应该都不陌生。首先请同学们思考一个问题,为什么会有开源技术产生呢?
这个问题恐怕说来话长了。一开始的时候可能是一些人出于对软件的热爱而把自己的作品公开出去,并且逐渐形成了一种风气,开源社区也慢慢诞生了。这时开源的作者们主要还是依靠本职工作生存,开源只是自己的业余爱好。后来就出现了一些开源基金会,比如Apache这样的组织,他们对很多开源项目提供了资助。然后也产生了一些商业的开源公司,比如Redhat,他们依靠对开源软件提供商业服务而获取利润。
随着开源技术的发展,一些大公司也逐渐参与了进来。这些商业公司往往一开始对开源技术是拒绝的。本来我的软件是要卖钱的,你把源码都公开了,别人还会为你的软件付费吗?但是开源的浪潮是如此的汹涌猛烈,以致于那些老牌的大公司们也不得不转过身来拥抱开源技术了。一方面他们在自己的产品中也大量使用开源技术,另一方面他们也开源了很多自己的产品。
开源技术为什么会这么火呢?我觉得主要还是因为它的开放性,给参与其中的个人和公司带来了巨大的影响力。软件在开源之后使用它的人会越来越多,这反过来又对这个软件的发展起了巨大的促进作用。在这样的正反馈循环之下,软件也就变得越来越好。
现在开源软件已经无处不在,我们的日常开发也都是建立在开源框架的基础之上了。那么我们应该如何选择开源框架呢?我觉得需要考虑以下几点:
- 上手容易程度
- 社区活跃度
- 生态系统完整性
- 大厂的支持背书
首先这个框架得容易学习和使用。如果学习曲线太陡,那么学习的成本就很高,把太多时间投入到这里可能不太值得。
社区的活跃度是非常重要的,活跃的社区才能不断的反馈问题并促使框架不断改进。反之的话可能遇到了问题都没有地方去问。
生态系统指的是和这个框架配合的周边产品的成熟度和丰富程度。毕竟一个东西哪怕再好用,它也不能完成所有的需求,总是需要和其它产品配合使用的。不过如果这个框架真的很流行,那么自然会有很多人去贡献周边的功能,一般说来生态系统也都不成问题。
大厂的支持这点倒也不是必要的。很多个人的开源项目也做得非常棒,但个人往往是出于自己的兴趣爱好,一旦兴趣不再或者是工作生活上的其它原因,可能不能保证对项目的持续更新。如果有大的公司支持的话,可能会相对稳定一些。
总之,开源对软件的发展起了不可估量的作用。没有开源的话也不会有今天的互联网的存在。开放,自由,共享,协作,这些开源的精神和理念都是值得我们学习的。
网友评论