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

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

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

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 其实一直以来都有一个为开源的分支,里面含有对于静态分析逻辑的重大改进。从今以后,这一切都只能属于我私有,它们其中一些将会成为我未来产品立于不败之地的支柱。


作者:佚名

来源:51CTO