不知道为什么最近流行吐槽 Oracle 在 2023 年做的一项计费方式调整: java-se-subscription[1],标题党们用了如下的词:”价格暴涨“,”成本翻 5 倍“, ”说冤种谁是冤种“,”想钱想疯了“。恍惚间我以为有人终于开始吐槽英伟达老黄了呢。等我研究了一遍条款,我真是对国内的开发者市场的论调感到无比悲哀。我们先看看条款吧。
一.Oracle Java SE Universal Subscription 具体是怎么样的?
Oracle Java SE Subscription Pricing
Subscription Metric
|
Volume
|
Monthly Subscription Price (USD)
|
Employee for Java SE Universal Subscription
|
1-999
|
$15.00
|
Employee for Java SE Universal Subscription
|
1,000-2,999
|
$12.00
|
Employee for Java SE Universal Subscription
|
3,000-9,999
|
$10.50
|
Employee for Java SE Universal Subscription
|
10,000-19,999
|
$8.25
|
Employee for Java SE Universal Subscription
|
20,000-29,999
|
$6.75
|
Employee for Java SE Universal Subscription
|
30,000-39,999
|
$5.70
|
Employee for Java SE Universal Subscription
|
40,000-49,999
|
$5.25
|
Employee for Java SE Universal Subscription
|
50,000+
|
Contact for Details
|
包含什么
1.性能包,按照 Oracle 的 benchmark,java 17 可能 比 java 8 性能高 5%-40%。
2.GraalVM,java 领域最近几年最值得期待的高性能 JVM,适合于容器和云时代的 JVM。
3.24x7x365 全天候的原厂 Java 支持。
ISV 有独立的条款
如果你是一个基于 JAVA 交付软件的公司,那么你的定价不在这个 体系里要单独联系 Oracle 的销售。
If you embed Java SE in a device or application, and/or distribute “shrink wrapped” software, please contact sales[2] for more information on our ISV products under a “Binary License and Redistribution Agreement”.
二.先讲基本法
自古以来,商业的基本逻辑是自愿买卖,卖方评估市场与自身的投入开发,买方根据自己的需求程度以及市场情况还价,定价是否合理取决于双方的供求而非道德。在座的各位作为社会人,想必都在或多或少的销售自己的时间、劳动力或者商品,你希望你的买家不顾你的开价,只按照他的心理价位找你们强买吗?
三.软件是什么?一般怎么收费
软件应该是非现代人无法理解的东西,它没有实体,它的复制和分发简单轻松到仿佛没有成本一样,让人产生了盗版无罪的错觉。但实际上每一款软件的研发都如药物研制一样,是投入了常人难以想象的成本开发出来的资产,其价值远远高于大部分的房地产投资。
冷知识:代码写完了才能收钱,而且要一直收钱
曾经有个企业级软件的 ceo 的朋友圈有个让我哭笑不得的笑话:你们代码都写完了,为什么还要收钱?
对于我这个一生在做软件的人来说,当时简直就是晴天霹雳,有一种马上就想去投身房地产的冲动,从来没有人问 ”房子都盖完了,为什么还要收钱?“
原因如下:
1.代码不写完,怎么交付,怎么收钱?
2.程序员写代码就是为了赚钱。
3.代码不是一次性工作,要持续花钱维护的。
第二个冷知识:就算是写开源的独立程序员也需要吃饭
开源软件也是由人来编写,这些人也有生存需求和物质需求。往往开源是他们打开市场的营销方式,最终总是要通过用户付费来完成商业闭环的。
现代软件的玩法
现代软件一般采用给客户定价的方式来收费,也就是说,个人用户一个价,个人用户里的学生用户可能是免费的,企业用户按照规模和付费能力来定价。虽然他们用的可能是同样的产品,但是因为软件在这些企业的产生的价值是不同的。如果有开源或者免费版,它也是一种市场行为。
所以,如果你用了一些开源或者免费的软件,但没有付费,这是来自开发者因为某些原因的馈赠,并不是开发者必须履行的义务,得到馈赠应该感恩,无法继续获得馈赠也不应该骂娘。毕竟谁也不欠谁不是。
四.我们先看下这个价格政策到底贵不贵
OpenJDK 也是 Oracle 开发的
这可能也是个冷知识。但是 OpenJDK 真的是 Oracle 的同一个 team 开发的,里面有大量和 Oracle JDK 一样的代码,所以不愿意买付费版的企业可以使用 OpenJDK。OpenJDK 是遵守 GPL 协议的,但是有很多 except,也就是说你 import JDK 带的标准库,但是你的代码还是不需要开源。Oracle 还挺 Nice 的,不是么?
那么 Oracle 为什么还敢给 Java SE 涨价呢?
如果 Oracle 没有信心通过提供足够强大的企业版工具帮你节省大于付费成本,他会涨价么?你觉得世界上最懂 OpenJDK 和 Oracle JAVA SE 的人是你我,还是 Oracle?
企业真的付费会怎么样?
中国最有名的用 JAVA 的企业是阿里巴巴,虽然阿里肯定用了 50000 个核以上所以不适用于上面的 pricelist,但是就算阿里付费,20w 员工,每个人一个月 5 刀,也就是 100W 美金一个月,对于阿里来说,真的是个问题么?阿里的市值比 Oracle 还更大呢。
每个人就算 15刀 一个月,一年也就是 180 刀而已,还不到 1 瓶茅台的钱,考虑到一个 JAVA 程序员的年薪大概率大于 20万人民币,真的付不起么?就算你花 50万养的 JAVA ”高手“,能比 Oracle 原厂的支持水平高么?
五.Oracle 收的多不多?
Oracle 2009 年收购了 Sun 花了 74 亿美金,里面的主要资产就是 JAVA。而 2018 年之前,Oracle 对 JAVA 的收费方式就是永久授权和年度支持费,从 2018 开始,转成订阅费用,才显著改变了现金流,从 2023 年开始问世将近 30 年的 JAVA 才成了 Oracle 的现金牛业务,可以长线投资这么久,这么有耐心的企业不多。并不是所有企业都有耐心坚持 30 年的投入,才开始真正赚点钱的。我觉得比还没有建完房子就开始收卖房款的房地产要“耐心”一个数量级,比没有交活就收预付款的 JAVA 外包企业大气很多。
“为众人抱薪者,不可使其冻毙于风雪”,如果真的 JAVA 掐脖子了,或者消失了,靠 JAVA 吃饭的企业和开发者们,你们咋办?
为什么不按照程序员数收钱
你觉得如果这么收钱,国内公司还有程序员么?全世界就 500 万 JAVA 程序员,用这个方法收费,全世界有多少我不知道,但是中国应该一个也没有了。
Oracle 为什么要这么调整收费策略?
1.by core → by employee
其实我觉得按照 core 收钱对于 Oracle 来说更有利,但是这里的问题是,到底用了多少个 core 企业说假话不容易甄别,员工数是有政府机关来保证正确性的。我们中国公司 100 个人买 10 个 license 的事可就太多了,雪崩下哪有无辜的雪花啊。
2.云带来了“弹性”
如果你还不知道什么是“弹性”可以去看这篇:朋友,你真的知道如何利用“弹性”么?。弹性下服务跑在容器里甚至 cloud function 里,core 数是动态变化的,你让 Oracle 怎么收费,按你最大值收还是最小值收?
3.GraalVM
这个 JVM 是我觉得最近几年 JAVA 世界里最大的惊喜,JVM 也可以跑在容器里了。让 JAVA 焕发第二春,走入云时代。
六.会引起什么业界变化
拥抱云计算和弹性
因为计费方式变了,不再是 price by core,所以放心大胆的伸缩吧。
利好 SaaS 公司
SaaS 的交付方式决定了你就算服务于 100万个客户,他们一共有 5000 万人,你也只需要付你的 100 个程序员的 JAVA SE Subscription 费用。客户非要把你的工作用 100个人再干一遍,就会考虑还有 100 个 JAVA SE Subscription 的费用,就更加不值了。
利好码农
你是 10 倍程序员也只用 1 个月 15 刀,你比菜鸡又多了 135 刀 / 月的成本优势。如果你发现你的公司连一个月 15 刀都不愿意交,也要用 OpenJDK,你应该知道提高性能对公司来说毫无意义,因为你不可能用一个月 15 刀把你的程序优化到 GraalVM 的水平。你在雇主心里连这点钱都不值。趁着程序能跑,你快跑。
七.对国内同行的启示
1.从免费慢慢涨价在国内可能是不行的
王者荣耀一套皮肤 300-800 人民币,茅台一瓶 2500 以上,但是一个月 15 刀,最低至 5 刀的 JAVA SE 还是有人嫌贵,不是说 To B 比 To C 赚钱么?
2.免费获的客,可能就打算白嫖你一生
业界大部分 JAVA 开发者的一生衣食无忧都来自 JAVA,甚至一家生计都系于 JAVA,但是当他们看到一年收费不到一瓶酒钱的 JAVA 的时候,基本都是痛心疾首的呼吁甚至是谩骂。然后转头就说我反正 Java 1.8 或者 OpenJDK 用到死,或者我就用 openjdk 了。 然后还会补充一句,oracle 会查你的员工数。这算不算盗贼公开交流零元购心得体会?作为软件开发者,我的心久久难以平复,当我想到他们也是软件开发者的时候,就更难以平复。
3.卷死同行再收钱也是痴心妄想
总有些企业家觉得可以和 To C 一样,卷死同行,然后坐收整个市场。但是谁能做到 JAVA 的影响力和不可替代性?
4.市场上不全都是”理性人”(可能一个也没有)
前面的讨论里读者应该可以轻松看出,对于大部分企业来说,缴纳订阅费,从成本上应该更划算,无论是用新的 JVM 减少服务器数量,或者是用 GraalVM 提高弹性,都可以降低成本,考虑大部分公司的服务器比员工多多了,所以不可能你服务器的节省 cover 不了那点订阅费。但是实际一群 title 很高的所谓”技术高手“没有一个从这个角度去思考问题。大家就盯着那每月一顿午餐钱面红耳赤。你敢信他们理性么?所以基于”理性人“假定的所有商业设计和市场行为,真的会如你所愿的发生么?
八.开源软件行业已经被逼到什么程度了?
前一阵子 ElasticSearch ,MongoDB,Redis 都改了协议,就算开源一开始是个人爱好,但是大部分项目成立公司后都是有了明确的商业企图。
本来大家是君子协定,如果你不赚钱就不用交钱,都去找“狗大户”要钱,所以我们的用法律协议限制好“狗大户”就行了。谁知道互联网时代开始,GPL 形同虚设,所有的“狗大户”(Google/Amazon)都用 WWW 交付服务了。然后开源软件们就只好主打一个不开放企业级功能,安装部署费劲来让“狗大户”打赏一点幸苦钱;本来传统行业的“狗大户”总可以打点秋风吧,天有不测风云,AWS 竟然创造性的把开源放到云上直接提供服务了,把传统大户直接截胡。
所以你看,大部分开源软件适配云的功能都选择尽量不在开源代码里交付,而是在私有仓库。就是为了给自己留点客户。开源软件和国内头部的互联网公司的合作,严格来说都是赔本赚吆喝。聪明的厂商已经放弃互联网行业了。
九.给程序员的启示
如果最伟大的技术产品都不能挣钱,你的工作产出就一定能挣钱么?程序员消费的东西基本都是程序员生产的,程序员使用盗版或者鼓励自己服务的公司使用盗版其实都是底层互害。最后大家在付钱这个事上不作为的结果就是导致这个行业彻底消亡。通过劳动获取收入是劳动者的权利,而不是耻辱;通过销售商品获取收入对于商业机构也是一样。
过去的 20 年里,中国程序员的收入是由广告和游戏行业买单的(现在还是),所以我们有了世界最大的游戏公司和几家超级成功的互联网公司。如果我们也想拥有同样强大的软件行业,甚至是有创造力的软件行业,可能一切要从大家都合理付费开始。需求才能产生供给,而供给无法产生需求。
参考资料
[1]java-se-subscription: https://www.oracle.com/cn/java/java-se-subscription/
[2]contact sales: https://www.oracle.com/hk/corporate/contact/global.html