为何软件产品要进行免费开源 或 免费使用

七年前,我在跟主管讨论我手头目前使用开源函式库来进行程序编辑时,老板问了一个问题:『为何他们愿意提供免费产品?』,当时我的回答只有一句:『因为有人帮我们付了钱,很大的一笔钱。』 我那时候在脑子里只想到了jQuery的情况,业界龙头YAHOO付钱买下此项前瞻基础建设,供全世界的人使用。 道理是很简单的,金主买下这项技术提供全世界的人使用,全世界的人使用这项技术,做出更加优质的网站产品,使更多人进入网际网路,更多人进入网际网路,就更多人需要使用搜寻引擎,YAHOO就能为此而赚钱,所以YAHOO当年付钱给 jQuery使其开源。 而且开源软件多半有规定,衍生的产品也必须要做到开源,或至少必须有一个版本是开源的,这里就说到我在使用的开源程序库 为何他必须要有一个GPL版本,而且截至此刻第七代的产品都依然有开源免费版,就是因为其底层使用到开源架构,依据其规定,他也必须提供至少一种的免费开源选项。
上述提到的雅虎收购jQuery跟我使用的产品有关,还有另外一种免费使用,就像是微软收购了IE之後让全世界於微软产品中免费使用,又是另外一种思路了,这是藉由提供免费产品来定义新的使用习惯,後续微软的很多网页服务器产品及网页语言都只考虑跟IE相容,完全没在理会APACHE的标准规范捏,这也为我们使用端完美诠释了没有开源的产品的缺点。 虽然後来慢慢被GOOGLE弯道超车了。在中国这类免费产品其实就把"利益"的部分完美展现,免费360的浏览器首页只能是360,免费金山浏览器只能是"好123",GOOGLE浏览器的预设搜寻及预设应用都是自家产品,这部分就是为了网路流量,还是能赚到钱的。
但,真的只是因为有一位金主曾经付钱,且其衍生的技术也必须开源,就能让免费产品大行其道吗? 我本着『只有利益能驱使人前进』的角度,重新分析当前世界中,开发商将产品做开源及免费使用的几种原因:

  1. 提升市场效益:厕所是拿来给人上的,软件是拿来给人用的,一个产品上市後,要有人用了才能拥有市场份额。
  2. 降低学习曲线:提供免费软件,能使更多人加入,学习、讨论、提交BUG清单。
  3. 降低客服成本:针对小型产品应用,交由外部人员自行学习後担任顾问,免去原厂培养大量客服人员的经费。
  4. 赚取顾问费用:针对大型产品应用、及新创顾问团队,原开发商可以赚取课程及产品包的费用。
  5. 赚取进阶费用:针对进阶产品应用,可以额外包装产品线收费,我使用的工具就有手机板、甘特图 及 档案管理这几种我想要的东西是要收费版才有的。
  6. 展示个人技术:就以小型个人产品的部分,开源可以展示自己能做到什麽事,有利於後续求职或寻求合作关系。
  7. 降低维护成本:产品的小BUG会被其他人修复,对方可以主动提交到主产品上,或自行产生分支继续发展,等到稳定之後主产品仍然有机会把分支修复的结果,提交到主产品上,长期下来各版本的稳定度\支持度都会有所提升。
  8. 去中心化效益:产品可以由大量社群群众做开发,使用的企业可以不受单一开发商所箝制。
  9. 集中开发火力:集中力量干大事,把顾问成本、客服成本大量透过开源,外包出去之後,开发商得以专心作主产品线的发展,而不用一天到晚养一群人重复回答重复的问题(要不要准备一台录音机?),弄到连技术总监都要跳下来回答,代理人怎麽设置,不需要吧。
  10. 缩减测试人力: 有一家"大型"开发商,在决定要走向开源、免费後,他在全球范围内成功大量裁撤测试团队。
    它们後来的产品都有免费使用条款,只要你愿意让他们将软件装在你的电脑上,成为每代产品的首批试验者。
  11. 小功能的开发:一些小工具小功能,供应商可以不必非得自己去做不可,一些人会将它开发出来,并且回馈给社群,像是jQqury为此还建立了插件库网站对吧!
  12. 扩大人力来源:对於使用的企业端来说,免费或开源产品可以有效扩大社群,遇到问题时,能回答您的人变多了,而不用依赖单一供应商给您的答案:『不~行~,通通拿去做鸡精!』
  13. 展现产品自信:部分产品提供免费使用(有限制地)就是为了让您试用,上瘾了再跟您谈钱,跟吸毒一样啊。
  14. 维持安全价值:产品所有原始码皆公开,其所使用的产品也都是开源产品,且元件都受签证,这样的产品可以由大量的开发人员一遍遍一次次的检视来增加安全性,产品不太可能有严重的後门可以造成重大问题。
  15. 发展向外整合:产品原始码开源,可以使其他开发商找出方法来与您主动整合。
  16. 提供替代方案:透过开源软件的发展,提供替代方案,有时可以影响某些收费产品的售价 (WPS VS OFFICE VS OPEN OFFICE)
  17. 商业使用限制:部分产品有限制商业使用,但是条款上颇有劫富济贫的感觉,例如 VS COMMUNITY 的条款中就有规定在您公司赚到100万美元之前(或 公司开发人员超过250人),VS都是不用钱的。
  18. 多家企业维护:对於一些基础架构的开源产品,例如一种新的程序语言,就可能发生好多家公司聘用好多不同的人才一起共同维持这个新开源产品的发展。而雇用人员发展新产品的公司,也会将该项技术透入自家生产环境中使用。

对於用户来说:

  1. 免费软件超佛
  2. 开源产品安全
  3. 问题都有解答
  4. 开源可以修改
    爽啦~~

不过免费/开源软件使用前请务必详阅开源条件,看看自己能否接受,
再决定是否要使用喔,我目前遇到过的有以下几种:

  1. 完全免费开源\自由使用
  2. 达到一定条件之前可以免费使用
  3. 重制的代码需要公开(不会限制提供方式,但是当有人要索取时,您要可以提供。)
  4. 用於贩售时,需要额外付费给开发商。

这部份等我有深度研究各种不同LICENCE种类时,再跟大家分享罗

後记:
前五项是我自己想的,後面都是从参考资料中翻译整理出来的,看来我还太嫩,我朋友前东家的软件产品遇到的困境就是使用者太少,明明产品很好用,跟竞争对手相比,处处都超越对方,但就是没有广大的使用群众,造成我朋友老板曾经问过我朋友:『我要怎们找到懂这项产品的人才?』 嗯,对,人才是很难找,但是你可以把人送回原厂进行大班教育训练啊,唉... 不说了,之後我们再找时间跟大家说一下商业软件(Close-Source) 如何解决别人对你的疑虑。 我朋友家用的BPM真的是 唉... 很多人用啊 又怎样? 没有文件啊...有屁用... 市场上到处都充斥着用最嘴巴描述工作经历的人... 来了才跟你说:『我~不~会~』 你这策略真的有用吗? 最後,你从人力市场上找到的人力,还不是花了一整年才摸透这套系统可以上工,能完成的项目却又因为购买时只看品牌,不问功能不做验证,最终就是买到又慢功能又缺胳膊少腿的系统。

参考资料:
https://www.quora.com/Why-do-people-make-open-source-software


<<:  Day16-Class

>>:  Dungeon Mizarka 004

Day 33 | 常见 Livewire 问题:解决 Livewire.on() 没有作用的问题

这个问题其实在 Day8 的文章有稍微提到过,但大多数人看文件时都大致看一下而会忽略一些小细节,包含...

URLSession 介绍 Day 15

今天来介绍使用API会用到NSURLSession 其实NSURLSession 与 URLSess...

[C]如何写一个 makefile

func1.h #ifndef _FUNC1_H_ #define _FUNC1_H_ void f...

【前端效能优化】WebP - 较小容量的图片格式选择

常见的图片格式有 GIF:常用来做动态图片 JPEG:适合 Banner、风景等大图片 PNG:透明...

如何设计SQL 表格来提升查询非过往历史资料的效能?

个人正在写一个场地租借系统, 提前开放2周给人预约, 租借的过期纪录要保留起来作系统或规则改善研究,...