明明闭源项目 “钱” 景无限,为什么程序员愿意在GitHub上开源?
今天给大家分享的是一位粉丝的提问,明明闭源项目 “钱” 景无限,为什么程序员愿意在GitHub上开源?
接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。
同学提问:
为什么程序员们愿意在github上开源自己的成果给别人免费使用和学习?明明很多项目闭源的话可以赚很多很多钱,为何大家还是无私奉献自己的劳动成果呢?而且很多项目的实现还很困难。
Yt回答:
首先程序员为什么会在github上面开源?开源其实是商业的一个环节,大家有没有了解过,大家认为这个开源就是代码免费的给别人用,你有没有想过,比如这个开源的版本后面还有一个商业版本的。但是其实你可以看到openresty,它也是开源的,但是openresty开源之后,比如说你在使用它的时候,你肯定会有些问题,然后他提供一些商业咨询,包括有些问题他也可以帮你解,但是这种是按他的小时或者按天直接收费的。他的开源的目的是为了更好的商业化,开源不是免费,开源是为了商业化,舍得舍得,先舍才有得。
比如说你自己做一方案,那你开源出来之后,你后面肯定会有些人找你用你的方案,特别是在企业能够很完美解决这种。但是在用的过程中肯定它会出问题,就是但凡是代码,但凡是人造出来的这种代码,别人在用的时候,可能第一个版本不出问题,他们换个场景用肯定会出问题。这种问题后面来说就是这套方案是你的,你就发现你是最了解他的。别人可能在解,可能两天三天,你可能在解,你只要别人给你讲这个问题,你听完之后就大概知道在什么点,这一部分很多的企业也是会认可你的这一点,这是第一种开源。
还有一种呢对于大厂的开源,你包括很多大厂,包括像阿里,包括腾讯,也会开源很多的方案出来。其实大厂的开源请注意啊,这一个开源它其实更多来说它是为了免费让大家用,其实在用的过程中间,它是把它的产品会做的更加稳定。你比如说一款产品,我们用七八个人去维护这一款开源项目,我把它开源出来之后,我后面可能只需要两个人维护它,为什么呢?因为后面很多的代码我不需要自己解了,我是有更多的人,大家都会去用它,并且用它的过程中间他也会有问题,我只需要去合并这些代码,别人解完之后,我合完之后就可以了。跟大家讲,其实很多大厂开源的这些核心方案也好,它是给到大家去用,用完之后可以给他测,测完之后他自己可以去节省人工成本,去维护这个方案,如果他不开源,他需要很多的人去维护,而且需要很多的人去测,但是我开源出来之后,很多的人,很多企业在用的时候,他就会对应来说就会给你提一些issue,提交一些问题,来基于它来解,而且有些人他会直接帮你解完,再合并到master上面。
为何大家都这么无私奉献自己的劳动成果,很多时候项目很难实现。那确实开源其实它也是一种精神存在,因为其实我认为做开发的人,这里有一部分自己的追求,更多来说在商业上面,它也是商业的一个环节,因为这种代码本身来说,如果不开源出来可能都没人用,除了公司自己内部用,他都没人用。你比如像unix,你比如像苹果的系统也好,包括windows系统也好,你会发现它没有开源出来,除了微软一家或者苹果它在用它的系统之外,你发现没有其他用。但是你发现Linux开源出来之后,那很多设备都会选择它,而且你发现Linux现在确实那是属于全球使用最多设备的操作系统,这是一个肯定毋庸置疑的结论啊。因为它真的来说很多企业都会用它,并且很多人也开源把代码再次提交到上面,它就形成了一种很强大的这样一个社区氛围。因为有些代码你可以不开源,你发现有些人都不会了解,都不知道你怎么用的。特别是软件代码,很多人来说在不同的环境上面,它的情况都不一样。在windows上面可能跑,在Linux上面跑它是另外一个问题。可能在Linux上面或者centos上面,或者Ubuntu上面跑,或者在Ubuntu不同的版本上面跑,或者芯片不一样,它跑的情况也不一样。我在arm上面或者mips上面,或者PowerPC上面,它跑的情况都不一样。这种只有去借助更多的人的力量才能够使它做的更好。
总结:
一、开源的核心逻辑:商业策略与生态构建
- 开源是商业化的前置环节:开源 ≠ 免费:开源本质是商业策略的一部分,通过免费代码吸引用户,后续通过技术支持、定制服务、企业版授权盈利(如OpenResty开源版免费,商业咨询按小时收费)。降低推广成本:开源项目能快速扩大用户基数,形成行业标准(如Linux成为全球最多设备使用的操作系统),后续通过生态垄断变现。
- 大厂开源的核心目的:降低维护成本:开源后借助社区力量修复问题(如阿里、腾讯开源项目依赖外部贡献者提交代码),减少内部人力投入(从10人维护→2人维护)。测试与优化:通过用户真实场景测试发现潜在问题(如多芯片架构适配),提升产品稳定性。
二、个人/社区开源的驱动力
- 技术影响力与个人品牌:开源项目成为开发者技术能力的背书,提升求职竞争力(如GitHub高星项目作者更易获得大厂Offer)。通过社区贡献建立行业声望(如Linux内核贡献者Linus Torvalds)。
- 协作与共享精神:跨场景验证:开源允许全球开发者针对不同环境(ARM/MIPS芯片、Windows/Linux系统)测试代码,解决单一团队无法覆盖的问题。知识共享:通过代码公开推动技术透明化(如Apache基金会项目),避免重复造轮子。
计算机相关专业就业求职学习路线/offer选择/职业规划建议
********* (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回
#计算机#解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)