开源软件如何赚钱,普通开发者如何面对开源趋势

卖软件 V.S. 卖服务:Windows虽然免费了,但是并没有完全开源;众人拾柴火焰高;中国的开源软件现状;开发者应积极参与开源项目;小结

对于绝大多数it从业人员来说,开源(open Source)是个绕不过去的话题。开源意味着任何人可以免费地访问,下载,修改源代码,甚至进一步将其用作商业用途。开源往往与免费划等号。有趣的是,虽然免费,但是那些资本驱动的商业巨头们却纷纷投入巨资进行开源软件的开发。那么,开源软件到底是如何赚钱?普通开发者又如何面对开源的大趋势呢?

卖软件 V.S. 卖服务

由于国内版权保护相对落后,中国人似乎不太习惯付费使用商业软件。从windows操作系统到adobe全家桶,从matlab科研利器到各类工业设计软件,中文互联网上曾充斥大量“破解版”。人们习惯了购买硬件,然后在网上找一些破解软件。实际上,像microsoft、oracle、adobe等一些老牌商业软件公司曾经红极一时,他们靠销售软件许可证(license)赚得盆满钵满。时至今日,一款windows 7家庭版在Amazon上标价为110美元,Windows 7专业版则要169美元。对于很多人来说,花1千块钱买一个软件似乎有些不可思议。但从另一个角度来讲,微软需要雇佣大量专职员工开发和维护它的操作系统,微软是一个拥有十几万员工的超大公司(2016年数据),给这么多员工开工资绝对是个不小的负担。员工开发的源代码是商业软件公司知识产权的重要组成部分。因此,为了应对这么庞大的成本,微软不太可能将员工辛辛苦苦开发的软件免费分享出去。

近几年,风向似乎变了,一向贪婪的微软似乎开始不相信“资本主义”了,开始搞起了“社会主义”,对外宣布大家可以“免费”升级到windows 10。不仅微软在大肆宣扬“免费”的概念,其他一些公司更进一步,不仅免费而且还开源。Google在智能手机兴起时就开源了安卓(Android)操作系统。将这些源代码发布到网上,任何人都可以免费下载、修改,然后继续商用,难道资本家不想赚钱了吗?

其实,是竞争更加激烈了,钱不那么好赚了,原来那种卖License的套路不那么好用了。移动互联网用户已经远超桌面电脑,很多事情原本需要在电脑上进行,现在手机也可以操作,如果继续抱残守缺,按照原来卖License的套路,微软很难再占领用户市场了。

Windows虽然免费了,但是并没有完全开源,也就是说其他人无法查看其源代码。相比之下,安卓是一款正儿八经的开源软件。10年前,智能手机还未普及,Google为了在苹果、黑莓、诺基亚等手机操作系统商之间的战争之中争得一席之位,将安卓开源了。因为免费,很多硬件厂商都采用了安卓系统,安卓提供了一个免费基础,省去了很大一部分底层工作。这些工作耗时耗力,还难以短时间获得收益。时至今日,智能手机界分为苹果和安卓两大阵营。除去苹果外,三星、华为、Oppo、Vivo、小米等所有主流手机厂商都基于安卓系统进行了二次开发。

看起来,google似乎在安卓上没捞到什么钱,实际上,谷歌的商业模式靠卖服务赚钱。安卓系统中最赚钱的服务之一是应用商店google Play。2019年的数据显示,Google Play营收293亿美元。在应用商店领域,Google虽远逊于苹果,但它占领了七成以上的手机操作系统市场,未来的增长潜力巨大。此外,Google的搜索、邮箱、地

google Play全球收入近年增长趋势 来源:statista.com

更有意思的是,google不仅开源了手机操作系统,而且还在人工智能和云计算领域开源了众多软件,比较著名的有深度学习框架tensorflow和云编排系统kubernetes,这两款软件目前已经成为人工智能和云计算领域绝对的王者。要知道,云计算领域原本的老大是amazon,其地位似乎不可撼动。面对云计算这块肥肉,google不能不眼红,但是amazon在虚拟化领域积累太强,google干脆照搬当年开源安卓的套路,把kubernetes这款容器云计算操作系统开源了,而且加大对kubernetes的宣传和布道。有google的背书,大大小小的软件公司疯一般地转向kubernetes,使用kubernetes改造升级自己的it系统,假如这些中小公司的kubernetes服务上云,首选很可能是google Cloud。Kubernetes虽然免费,但是Google Cloud的云服务是收费的啊!仔细分析会发现,在Kubernetes开源这件事上,除了Amazon,包括微软的Azure、阿里云等厂商都非常积极,因为他们都想借此机会撼动Amazon的霸主地位。同样,TensorFlow也是走一样的套路。人工智能时代,如果有一款软件可以一统天下,那么可以依赖这款软件卖培训、卖专属硬件、卖计算服务。卖服务已经植根于Google的DNA里了。

开源软件如何赚钱,普通开发者如何面对开源趋势

google开源项目有两千个之多 来源:opensource.google

其实,这种卖服务的商业模式就跟互联网时代的媒体行业一样。互联网媒体绝大多数的文章都免费发布到网上,赚取流量和粉丝,有了流量和粉丝,打个广告、带个私货甚至做了粉丝群,钱就这样被赚走了。

众人拾柴火焰高

俗话说,一人拾柴火不旺,众人拾柴火焰高。这句话正好可以应用在开源软件领域。一般地,公司内部在解决具体业务问题时发现一些场景具有很强的共性需求,需要一个组件来集中解决这一类问题,公司内部成立相应的开发团队,开发出软件的初代版本。初代软件本身存在不少Bug,很多功能也不尽完善,开源之后,全世界的开发者都可以加入进来,帮忙改Bug、提方案、做设计。本来软件只有公司内部有限的人来进行开发,开源之后将得到全世界开发者的支持。Google的TensorFlow开源之后,一度占尽深度学习领域的风头,而Facebook旗下的Torch却不温不火,被边缘化。随着Facebook将PyTorch开源,更多的人帮助其修改Bug,完善功能,PyTorch逐渐在学术圈流行起来,已经能和TensorFlow分庭抗礼。

实际上,开源软件的迭代开发并没有想象中那么自由,也不是为所欲为。和很多公司的组织架构一样,开源软件有一个管理决策层,决定着整个软件未来发展方向。下面以大数据领域著名的apache软件基金会(apache Software Foundation)为例。Apache基金会有一个董事会(Board),董事会监督和管理整个基金会,基金会下的每个Apache项目都有一个项目管理委员会(Project Management Committee,PMC),PMC负责具体项目的管理工作。与员工在公司晋升类似,开源软件开发者从最简单的问题做起,直到有足够影响力后,可以被提名为PMC成员。PMC有足够的权利决定资源投入到哪些方向上,因此他们在一定程度上可以决定开源软件的发展方向。很多商业公司非常重视开源软件基金会中的席位,这意味着商业公司在基金会里有更多的话语权。因为PMC可以在一定程度影响软件的发展,商业公司非常乐意在这些大型软件基金会中掌握更多话语权。这也是为什么很多大公司会重点培养开源软件工程师,鼓励他们在开源软件基金会发出自己的声音,甚至花重金捐助这些开源社区。

开源软件如何赚钱,普通开发者如何面对开源趋势

Kubernetes所在的CNCF基金会白金赞助商

仔细观察Kubernetes所在的CNCF基金会白金赞助商,不难发现,这些公司基本上是当前世界上顶级的云计算服务提供商。每家公司都希望在开源基金会中争取更大话语权,当然,这些公司也会得到一定的回馈。在这场全球的竞争中,没有任何一家公司足够自信,敢另起炉灶,否则很可能在快速的技术变革中被主流所淘汰。

这种大公司入局的开源软件模式有点像国家之间成立的各类国际组织,组织内的各个成员国虽然是竞争对手,但是为了共同的目的,求同存异,共同影响未来的趋势。

中国的开源软件现状

开源在一定程度上对大公司是有商业利益的,国内巨头已经重视在这方面的投入。

开源软件如何赚钱,普通开发者如何面对开源趋势

2019年4月中国互联网公司开源情况数据统计 来源:InfoQ

大前端(前端和移动开发)项目最多,因为前端代码一般不涉密,方便开源。阿里巴巴在各个维度上都位居国内首位。百度有 4 个是人工智能领域项目,在众多公司中别树一帜,包括 Paddle、Apollo 等都比较受欢迎。腾讯过去不太重视开源,但现在已经积极靠近各大开源基金会。华为虽然项目少,但基本全是基础设施领域的项目,如 ServiceComb、CarbonData、LiteOS 等。小米有几个操作系统相关的项目较受欢迎,在大数据领域贡献不小。但是,这些中国巨头在底层关键项目上和国外仍然有一定差距。

开发者应积极参与开源项目

全球化浪潮下的今天,开源软件没有国界。作为一名开发者个体,非常有必要关注开源软件领域。参与开源软件的开发,成为项目的主力,最大的收益人其实是开发者自己。

一方面,开源软件孵化于大公司,又经过专业委员会的管理和运作,从技术规范到管理模式都多多少少有大公司的影子。对于希望进一步提升自己的开发者,优秀的开源项目是一本实战教科书。比如,我最近一直在阅读apache Flink的源代码,从前期设计,到分支修改,到单元测试,到Code Review,再到代码合并,都有一定的流程和规范,即使注释也必须描述得非常清晰,以便其他开发者能够明白当初的设计意图。这些规范甚至比绝大多数公司都正规。开源项目的经历,对于开发者个人的技术和管理都是一次精进。

另一方面,好的开源项目是会说话的简历,能够代表一个人的综合实力。2019年,小米吸引了语音识别领域的大牛daniel Povey,他是语音识别领域著名开源项目Kaldi的创始人。当他离开约翰·霍普金斯大学寻求新的工作机会时,全世界的人工智能研发机构争相对他发出邀请。他拒绝了美国硅谷的Offer,希望来中国工作。在中国,他得到了清华北大、上海交大等一系列高校和巨头公司的邀请,后来加入了小米。同样,深度学习框架Caffe作者贾扬清曾先后在谷歌大脑、Facebook工作,年纪轻轻的他现在已经是阿里巴巴技术副总裁。当然,这些大牛毕竟凤毛麟角,但普通人通过参与开源项目,也可以打怪升级,逐步提升自己。开源软件PMC肯定能得到各大公司的追捧,即使是一个普通参与者,也能得到用人单位的认可。

小结

在开源浪潮中,商业IT巨头一直在引领时代,其他公司则拿来即用,必要时会购买大公司的开源软件服务。开发者参与开源项目能够增强自身竞争力,是个很好的提升自我的机会。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月25日 03:17:15
下一篇 2024年4月25日 03:19:23

相关推荐

  • linux开源许可,linux开源系统

    linux软件(开源操作系统的优秀软件资源) 因此,Linux操作系统拥有非常丰富的软件资源,包括办公软件、娱乐软件、编程工具、系统工具等等。本文将介绍一些优秀的Linux软件资源,并提供相关的操作步骤。 SUSE Linux Enterprise Server是由国际著名的Linux厂商Novell公司推出的企业版操作系统。SU SE Linux Ente…

    2024年5月18日
    3800
  • java开源,java开源商城

    java开源是什么意思(java是开源语言吗?) java开源指的是java语言的实现是开源的,所有开发人员、公司或者个人都可以免费使用,更改。与开源对应的是有些语言是不开源的,比如c,有turbo c,源代码不公开的,就不是开源的。 总结:java开源指的是用java编好软件后将源代码发布到网上,所有开发人员、公司或者个人都可以免费使用,更改。 java开…

    2024年5月17日
    3700
  • javaswing开源,java开源技术有哪些

    轻松从VB转向基于Swing的开发平台 1、常用数据库有DBOracle、SQL Server、MySQL等,你可以结合实际需要,选择一种数据库,并花大力气掌握其开发技术。 2、学费性价比高 一个好的Java培训机构肯定能给你带来1+12的效果,如果你在一个由专业的Java教师领导并由Java培训机构自己提供的平台上工作,你将获得比以往更多的投资。希望你早日…

    2024年5月16日
    3800
  • javaftp开源的简单介绍

    用java有一个ftp路径地址,需要把传送一些数据到ftp中怎样实现 此方法利用参数username和password登录到FTP服务器。使用过Intemet的用户应该知道,匿名FTP服务器的登录用户名为anonymous,密码一般用自己的电子邮件地址。 下面是FtpClient类所提供的一些控制命令。 在本地开发代码思路如下:通过FTPClient连接上f…

    2024年5月16日
    4100
  • java代码混淆开源,jar包代码混淆

    java有什么常用开源的框架(java开发主流框架是什么) 1、前台框架:jQuery Mvc框架:Struts、spring Mvc 核心框架:Spring orm框架:Hibernate、Spring JDBC、myBatis。 2、Java常用的框架:Hibernate、Spring、Struts、jQuery、Redis五种。 3、Struts是一个…

    2024年5月15日
    3600
  • java开发视频聊天室,视频聊天开源项目

    java搭建聊天室难不难?有没有接口可以直接接入的? 我本身无法判断难不难,但是实现聊天室功能需要比较丰富的编程知识和技能,包括网络编程、线程管理、数据结构等方面的知识,同时需要考虑安全性、稳定性等因素,因此相对来说还是比较有挑战性的。 我不会感受到难不难,但是一般来说,实现聊天室功能并不算太难。Java作为一门非常流行的编程语言,有很多相关的库和框架,可以…

    2024年5月15日
    4500
  • java视频处理开源,java 视频处理

    有没有基于java的开源网络视频会议系统 网络视频会议您可以用云见CeeCloud的。 据我所知没有。做纯Java的多媒体非JMF莫属。 给你看一下 http://openmeetings.apache.org/ apache开源的视频会议 openMeetings是一个多语言可定制的视频会议和协作系统。它支持音频、视频,能让你查看每个与会者的桌面。 远程视…

    2024年5月14日
    3400
  • java图像处理库,java图片处理开源框架

    java图片压缩库-java如何实现把一个大图片压缩到指定大小的图片且长宽比… 上面的方法有个问题,就是改变了图片的原始长宽。如果一个图的长宽足够大,压缩图片质量,糊一点但是内容看得清也是ok的嘛。 使用画布大小缩小图片,然后使用自由变换工具使图片平铺,最后保存即可,具体步骤如下:所需材料:PS。通过PS打开需要缩小尺寸的图片,点击工具栏“图像”…

    2024年5月14日
    4600
  • c语言开源ide,c语言开源软件

    可以编写c语言的软件有哪些? 可以编写c语言的软件有:Vim、C编译器、Dev-C、Code:Blocks、VisualStudio等。Vim Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。 c语言是一种面向过程、抽象化的通用程序设计语言,可以编写c语言的软件有Vim、C++编译器、De…

    2024年5月14日
    3400
  • java虚拟机源码,java虚拟机 开源

    怎么样才能写出安全的Java代码?不被黑客攻击? 1、以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码: 将java包装成exe特点:将jar包装成可执行文件,便于使用,但对java程序没有任何保护。不要以为生成了exe就和普通可执行文件效果一样了。 2、原则五:确保类不可克隆 Java提供一项功能,用于在需要时对自有类进行克隆。然而…

    2024年5月13日
    3100

发表回复

登录后才能评论



关注微信