为什么我的代码进入闭源状态

开发 前端
我做出了一个可能让很多人遗憾的决定。从今天开始,我曾经开源放在 GitHub 上的代码,除了教育性质的代码,全部进入私有状态。这些代码包括 PySonar2,RubySonar 等等。

我做出了一个可能让很多人遗憾的决定。从今天开始,我曾经开源放在 GitHub 上的代码,除了教育性质的代码,全部进入私有状态。这些代码包括 PySonar2,RubySonar 等等。从今以后,除非用于教育目的,我将不再开源任何代码。当然,你们已经下载的那些代码,仍然可以按照开源许可证免费使用,然而***的改进以及将来的新产品,将全部闭源。做出这个决定的大部分原因,是因为多次对人心的失望。

[[189090]]

PySonar2 一度处于开源状态,使用宽松的 BSD 和 Apache 版权。PySonar 的用户包括了 Google,Sourcegraph,还有其它几个我不能透露名字的做专业代码管理工具的公司。很多人崇尚 BSD 这样的宽松版权,因为这样可以***限度的传播代码。他们甚至把这作为了一种信仰,对于 GPL 这类严格限制商业用途的版权嗤之以鼻。甚至遮住眼睛对你说:“你的代码是 GPL 的,我不能看!看了之后写出一样的代码来,你会起诉我!” 然而多年的经历之后,我才发现 BSD 并不是好的开源版权,而 GPL 才是真正保护软件“自由”的。这个故事要从 Sourcegraph 讲起……

Sourcegraph 是一家做代码管理工具的公司。他们初期的系统,其实只是 PySonar 之上做了一个简单的 web 包装。把 PySonar 分析出来的信息倒到数据库里面,然后通过 web 方式显示给用户。PySonar 本身早就有一个演示程序,可以生成互动的 HTML,所以其实 Sourcegraph 能做的事情,我很容易就可以做到,只不过多一些杂活而已。Sourcegraph 并没有在 PySonar 之上增添很多的新东西,也无法做出 PySonar 这样的核心技术。但是因为我一直不在乎 Python 这语言,也没觉得这种工具有什么市场,所以一直没有动手开发一套完整的服务。不是不能做,而是没有动力去做。

BSD 的版权使得 Sourcegraph 的两个创始人可以完全免费,***制的使用 PySonar。这样的结果,使得我无法为 PySonar 收到任何的回报。后来 Sourcegraph 的两个人找到我,想招我进去,帮助他们制造 RubySonar 和改进 PySonar。这样就开始了经济的不平衡。Sourcegraph 使用了 PySonar,按理我不需要另外做什么,就应该有一定的回报。然而现在他们把我招进去作为员工,我必须要做点其它事情,才能得到回报,也就是说我反倒成为了他们的打工仔。几个月之后,我逐渐发现这两个人的肤浅和不尊重。***在得到了最重要的技术改进之后,两个创始人翻脸不认人,把我赶出了公司。

新的 PySonar2 里面已经没有了 Google 的代码。由于对人心的失望,我曾一度把 PySonar2 的版权改为 AGPL。这是 GPL 的增强版,它要求任何使用这些代码的人和公司,在对它做出改进之后,必须把改进的代码能让人下载。就算你在自己的服务器上运行这些代码,不把它作为产品提供给人,也一样需要让人能够下载到改进的代码。

把版权改为 AGPL 之后,出现了一个奇怪的事情。申请美国绿卡的时候,我找以前 Google 的上司要一封“工作经历证明”。这本应是一种公司应该无条件提供给任何前员工的文件,然而我的旧上司却对我说:“我可以给你这个证明,然而我想让你给我一个好处。你的 PySonar2 现在改成了 AGPL 版权,我们想用你的代码,却因为这个版权没法用。你能否把版权改为 BSD 一类的,这样很多人都可以用它?” 面对这样的无理要求,我很鄙视。所以干脆没要 Google 的工作经历证明,直接找其它公司开了证明。

又过了一段时间,我感觉 AGPL 似乎确实限制了 PySonar 的应用,所以又把版权给换成了 BSD,进而换成了 Apache,一种比 BSD 还要宽松的版权。刚换成 BSD,我就发现有一家代码工具公司 fork 了 PySonar,***的 commit 正好是改为 BSD 版权的时候。这个公司从来没联系过我,从来没感谢我,只是本地里在用 PySonar 来赚钱。曾经一直在用 PySonar 的另一家公司的创始人 Z,当天也发信来跟我说:“正在考虑给你版税呢,结果你就换成 BSD 了。哈哈哈!” 这是什么意思呢?本来都要付钱给你了,结果你换了 BSD,所以我就不给你钱了,就是这个意思。不过他***还是象征性的给了一千美元。

我一直把 Z 作为朋友。平时如果他报告点 PySonar 的 bug,我乐意免费给他改进。我给他介绍投资人,甚至给他介绍妹子…… 我并没有图他什么,并没有要求回报。我只是想积点德,将来总有好的后果吧。然而,前几天当我宣布离开美国的时候,我才发现我的好心,其实并没有好报。Z 发信息来,说看我想回国,所以想招我进他的公司。给我开了一个价,具体的数字我就不说了,不过这个工资,现在国内是个程序员都能拿到。我想给那点钱,给他当个顾问,关键时刻给点方向,隔几个月改改 PySonar 的代码也就算了,结果他要求我全职给他工作。嘲笑了他开得太低,结果得到的回答是:“你做出过什么真正的产品吗?” 是的,PySonar 不是真正的产品。你在外面做个包装界面,然后功劳都是你的了,我还得给你打工?哎,我再也不相信任何免费用我代码的人了。

这就是我用 BSD 版权发行有价值的代码的辛酸史。由于这个原因,从今天起,我的代码完全进入闭源状态。没有人再能免费得到 PySonar ***的改进,没有人再能看见我***的技术。另外,PySonar 其实一直以来都有一个为开源的分支,里面含有对于静态分析逻辑的重大改进。从今以后,这一切都只能属于我私有,它们其中一些将会成为我未来产品立于不败之地的支柱。

责任编辑:未丽燕 来源: 王垠
相关推荐

2022-06-22 10:13:05

开源驱动程序

2013-10-23 15:13:22

2012-07-11 11:05:16

编程

2014-07-29 11:35:34

2020-04-13 13:56:07

AI 论文开源

2014-08-20 16:37:51

2012-04-04 22:07:12

Android

2020-08-14 09:11:29

RedisQPS数据库

2020-07-17 14:06:36

Scrum敏捷团队

2012-02-28 09:11:51

语言Lua

2013-11-19 11:55:14

2011-06-08 10:29:37

开源闭源苹果

2016-06-14 09:48:19

框架

2017-10-23 12:42:42

2014-08-22 11:15:52

2020-05-13 09:03:14

Python开发代码

2019-08-28 10:53:35

JavaScriptOptional Ch代码

2021-04-12 05:58:43

进程内核机制

2014-09-22 10:06:07

2015-03-02 15:13:52

Apple Watch
点赞
收藏

51CTO技术栈公众号