为什么要开源？
“开源“ 这个词在今天其实定义是很含糊的，从带着强烈意识形态诉求的 Free Software 运动，到由基金会管理，多个大公司协作的大型项目，到大公司内部孵化然后 “开源” 的项目，到以 Python, Ruby, JavaScript 等社区为代表涌现出的大量小团队甚至是个人维护的中小型项目。这些项目的相同点仅仅是它们都 “开放源码”，但开源 “项目” 其实远远不止这些开放的代码，这些不同类别的项目背后从动机，人员构成，发展状态到经济模型都有很大的不同，抛开这些不同把它们笼统地一并去解释，就好像把所有商业模式各不相同的 “公司” 放在一起去分析，很容易鸡同鸭讲。 涉及大公司的开源根本上都是商业利益驱动的，这个很多其他答案也都分析了，但我相信题主更好奇的是在 GitHub 出现之后涌现的个人/小团队开源现象。关于这一类，强烈推荐看下这本书，分析得非常透彻： 