开源的恶果,程序员正在「自掘坟墓」
大家好,我是校长。
最近开源社区里发生了一件大事,在 IT 圈引起了轰动,那就是:faker.js 开源项目的作者删除了该项目的所有代码。
01
事情是这样的
作为一个著名的 nodejs 工具库,Faker.js 是作者 Marak 耗时十余年完成的,Faker.js 可以制造非常多不同类型的假数据,用于开发调试。他的工作成果为一些大公司创造了非常多价值(包含 Google 在内),大公司却并未为此付给他一分钱薪水。
Marak 曾在 2020 年 10 月 25 日的时候在推特发帖声称自己在公寓火灾中丢失了所有东西,几乎无家可归。
虽然这一举动收获了不少网友的热心捐款,但最终 Marak 还是选择删除了所有的代码。
可能 Marak 自从遭遇了火灾,损失惨重,而又想到自己的开源项目这么受欢迎,却不能给我带来任何收益而愤怒无比。其实,在删除之前 Marak 也有一系列的谜之操作,就是往自己的开源项目里注入各种无关的代码,甚至是乱改自己的开源项目,导致使用最新版本 faker.js 的开发者都受到了影响,甚至都跑出了 bug 。最后,大家发现只要退回到之前的版本,就没有问题。
当然了,最后,想回退到之前的版本也回退不了了,因为 Marak 最终还是一气之下删除了这个库的所有的代码。
02
各有各的看法
这件事一时之间,引起了大家的广泛讨论。开源社区一部分开发者表示理解,另一部分则直接「口吐芬芳」。
信息安全专家 VessOnSecurity 称这种行为是「不负责任」,如果你对企业免费使用你的免费代码有意见,就不要发布免费代码。通过破坏你自己被开发者广泛使用的项目,你不仅伤害了大企业,也伤害了所有在使用它的人。
但是有人则认为:将代码发布到他们自己的库中,不需要对任何事情负责。如果你不同意我的观点,那么请阅读许可证中的实际法律条文,它没有给出任何保证。如果是不负责任的,那又怎样,他们不需要负责任。
开源协议上是有规定的:一旦开源项目有问题,是使用者负责,而非开源者负责任。
也有网友说:faker.js 作者破坏他们自己的软件包的反应,恰好也说明了有多少企业开发者认为他们在道德上有权使用开源开发者的无偿劳动,而不用做出任何回报。
对于这件事,大家是怎么看的呢?其实,大家可以聊一聊自己的看法。
03
开源是技术人的自媒体
有人说:开源是技术人的自媒体。
简单来讲就是:程序员通过自己打造开源项目就相当于在展示自己的技术能力,在打造自己的技术影响力,通过开源项目即使开源作者得不到任何金钱报酬,但是却给他带来了名声和地位。
所以,很多人都乐于开源的目的就是希望通过开源,有利于提升自己的声望,可以让自己找到更好的工作。
但是,faker.js 开源作者免费维护项目数十年,拥有上万 star,上亿次下载使用,Marak 好像并未因此受益,并没有得到更多的报酬,如果 Marak 现在拥有一份很好的工作,也不至于恼羞成怒去删库吧?
其实,这个世界就是这样残酷,这就像是有的人做自媒体成功了,赚到钱了,有的人确实也有做自媒体的实力,默默写了上百篇有价值的文章,依然也赚不到钱,所以,有实力并不一定代表可以利用它赚到钱。
因为商业的世界里,并不是有技术就能赚钱的,必须得有商业思维。
其实,在我看来,技术人的开源世界,更像是满足了自己的生活之后,用来搞自己业余爱好的行为。如果一个人在满足不了自己肚子的前提下,搞开源注定是走不远的。用爱发电的前提是自己得有足够的电,否则,你看,为什么这么多的开源项目都烂尾了?为什么久而久之都不维护了呢?
大部分开源的人,其实还是没有赚到足够的钱,以致于自己不得已去专心赚钱,没有时间再去维护开源项目。
纯用情怀搞开源,不现实,也不长远。
大部分饿着肚子搞开源的作者其实都有自己的其他目的。
关于开源,我昨天看到半佛仙人的文章,可谓思考的很有深度。
04
开源是在自掘坟墓
半佛老师用了非常长的一篇文章,论述了他关于对程序员开源的看法,我就不赘述了,我就总结一下吧。
半佛老师文章的观点其实就两点:
开源给程序员创造了更大的蛋糕,但是,开源者并没有分到蛋糕;
开源项目降低了程序员门槛,让更多的人进来瓜分蛋糕,以致于自己被竞争下去了,就像是自掘坟墓。
我简单说一下:开源确实给整个行业带来了很大的价值,因为开源的存在,让整个互联网开发更加高效,更加方便,让互联网行业蛋糕越做越大,但是,整个行业在蛋糕做大的同时,却没有分给开源者更多的蛋糕,反而是开源的存在,让开发变得更加简单,很多复杂的效果,很多复杂的项目都有现成的开源库,大家直接引用就可以啦,并不需要再自己动脑了,方便高效,以致于,程序员行业门槛别的越来越多,吸引了更多的人来瓜分蛋糕,让自己的蛋糕却越分越少。
包括像 Google 这样的大厂,也在使用很多开源项目,自己方便的同时,收获了巨大的市场蛋糕,却没有给开源者任何收益。
这就会让开源者很郁闷,我开源了项目,你们拿去赚钱,你们白嫖,我却还在饿着肚子。
从商业的角度来看,你看看哪家公司不都在为自己建立护城河,技术垄断,知识垄断,专利需要版权费,书籍有版权费。换句话讲:技术有垄断,知识有版权,大家都在靠垄断和版权赚钱。
而程序员在开源技术的时候,是去打破垄断的,但是却没有赚到钱。
半佛说:
程序员的代码像什么?其实像软件,像游戏,只要有源文件,盗版随意复制,人人都能用。所以那些付费软件和游戏,和防贼一样保护知识产权,实在是传播成本和应用成本太低太低了。而程序员的代码开源,同样的性质,却恨不得免费给全世界,这时候,没有人有付费成本。付费的前提,要么是给了钱有好服务。要么是不给钱有代价。而【开源】恰恰好两不沾。
这话,这么一看确实很有道理。
这个问题确实很值得深思,开源可能正在成为开源者的痛苦。
我想问大家一句:你会为开源付费吗?什么?付费了就不叫开源了?
05
如何让开源者体面的赚到钱?
其实,我也在思考,开源这件事对于大家来讲都有好处,其实,开源是在创造更大的蛋糕,是在正和博弈,并不是说开源无法创造更大的价值,也不是说蛋糕就是固定的,你分的多了,我就必须分的少。
当所有人正在做大蛋糕的时候,虽然涌入的人也多,但是蛋糕也在变大,按道理,技术更好的人,其实分到的蛋糕并不是一定都在变小。
如何让开源作者体面的赚到钱,而又不影响开源呢?
我看到微博上@Easy 大神出了几个注意,有的还挺不错的。
我感觉众筹可能不太靠谱,毕竟用户都不知道项目会怎么样呢?先众筹,万一项目不靠谱,有点浪费时间,而且可能开发者们项目正着急用呢,等开源了,时间可能需要一段时间,等不及啊。
其实,第一点还挺靠谱的,开源代码,服务收费。就像是现在的很多软件一样,基础版免费,高级功能收费。
比如:我把代码开源了,你有本事,你自己下载开源代码,去引用,可能会浪费时间和精力。但是,我在此基础上提供更便利的服务,比如:直接在线引用,提供更多的服务,提供视频教程,提供代码讲解等等。
其实,我在思考一个问题:在既不破坏开源的前提下, 能否将羊毛出在猪身上呢?也就是:我免费开源给所有的开发者,但是,开发者可以交钱,我可以通过其他第三方来赚钱呢?
你看,像 Faker.js 上万人 star ,上亿次下载使用,平台能够在开源项目下提供广告位呢?让开源者可以赚广告商的钱,其实,有价值的,好的开源项目,每天的浏览量挺大的。
现在 GitHub 提供了捐赠功能,就跟微信公众号的打赏一样,这是一种变现方式,根据自己的能力,自觉去打赏。
是不是 GitHub 官方平台,可以从商业的角度来讲,整个 GitHub 平台可以接广告呢?接的广告,挣的钱,可以按照开源项目每天的浏览量,给开源者进行广告分成呢?毕竟 GitHub 是全世界最大的开源社区,每天至少得有几百万人在使用。
你看看现在的内容平台几乎都是这么干的,内容创作者在平台创作分享,用户免费看,平台接广告创造收益,然后拿出一部分来给创作者分成。
GitHub 其实也可以这么干。
对此,大家是怎么看的?
推荐阅读
推荐阅读