机器之心报道

编辑:蛋酱

科技公司CEO:「最重要的是,我们有了很多钱可以支付顶级律师的费用。」

打工人的生活,向来是不容易的。开发者 Radon,最近遇到了一点和前雇主之间的麻烦。

Radon Rosborough 是一名 2020 年刚刚本科毕业的新人,目前在加州金融科技公司 Plaid 担任软件工程师。在全职工作之余,他也会维护一些开源项目。

大学期间,和很多同学一样,Radon 曾在暑假找到一家科技公司实习。Replit 是一家制作在线应用程序的公司,用户可以用它以不同的编程语言在线运行代码。

欢迎新人:一切发生之前,Replit 还向全世界隆重介绍过前来实习的 Radon。

这种业务不是什么新鲜事,和所有「run python online」的应用差不多道理,不过 Replit 还提供一些额外的功能,比如分享工作、安装第三方包和托管 Web 应用程序等。

从那家公司实习结束后,Radon 出于个人兴趣自己搭建了一个类似的在线编程应用页面,并作为开源项目维护。但两年后,当 Radon 与前公司 Replit 分享了自己的项目,却招来了一系列的麻烦。

相比于个人开发者的薄弱力量,对方显得十分强势。在一封来自 Replit CEO 的邮件中,有这样的内容:「我认为你应该把它下架并停止工作。如果到了周一还没有下架,我将与律师联系。…… 两年前实习时,我们还是一家小公司。…… 幸运的是,我们现在规模更大了,最重要的是我们有了很多钱可以支付顶级律师的费用。」

最终他选择了下架自己的项目,但他还是想讨论出一个结果:自己真的错了吗?

欢乐的实习生涯过后,事情却变成了这样。

以下是 Radon 博客的陈述内容:

2019 年的夏天,我在 Replit 工作,这在我之前的博客中也有介绍(https://web.archive.org/web/20210504051428/https://blog.replit.com/upm)。

我喜欢 Replit 的地方是它支持许多不同的编程语言。这让我思索:一个网站可以塞进多少种编程语言?

为了搞清楚这个问题,我把自己的可以在线运行代码的 Web 应用程序放在一起,大约一天后,做出了一些有用的东西。为什么这么快搞定?事实证明只需要 30 行代码就可以实现让人们在 Web 应用程序中运行 Python。

嗯,这可能就是这么多在线运行 Python 网站出现的原因......

之后,我开始尽可能多地添加编程语言。整个过程大概如项目版本历史的中所示:

最终以 216 种语言结束,其中包括从 Replit 而来的 38 种语言,以及从 Yusuke Endoh 开源项目「Quine Relay」来的 100 种语言。你可能会问我,为什么要花这么多时间做一个没人会使用的 Web 应用程序?只能说,这算是 2020 年最奇怪的爱好吧。

两年后,我和 Replit 分享了项目

某天,我收到了 Replit 的一封电子邮件,通知我他们发布了一项新功能。我认为这是向他们分享我开源项目的好时机,也许他们可以从我的工作中汲取灵感:

起初,我得到了积极的回应。但半小时后,Replit 突然指责我不道德并窃取了他们的设计:

他们说,我在开源项目中使用的想法是「内部设计决定」的,但这些都是已经对 Replit 的博客公开发布。我知道这个是因为我实习期间一直负责写其中的一些博客文章。而且我的项目并不是一个 Replit 克隆版,实际上,谷歌搜索「run python online」结果前几页上的任何其他网站对比,大部分看起来完全一样:

但我想我可能错过了一些东西,所以询问了细节:

但 Replit 拒绝提供任何关于「我做错的细节」,只是重申了他们之前的陈述,并用起诉来威胁我:

后来,Replit 给我发了另一封电子邮件,告诉我他们上个月刚刚从投资者那里获得了 2000 万美元投资,而且他不怕用钱来对付我。而有问题的「我」只是他们以前的实习生之一,一年前刚大学毕业,没有任何手段。

关于这封邮件,我想指出两点:

关于「commits like this」——这实际上是一种误导。我的项目中只有一个提交提到了 Replit,就是我编写的第三天,当时刚刚添加了 Replit 支持的所有 38 种语言;

关于我是一个「要求苛刻」的实习生——我实际上不理解这是什么意思,特别是最初 Replit 还试图招揽我(见第一封电子邮件的截图)。但我不会管它,因为它与当前的问题并不真正相关。

后来我下架了自己的项目,并向 Replit 致歉。我想可能电子邮件会影响一些东西的表达,所以我要求通话:

Replit 忽略了这封电子邮件,所以我又给他们发了一封跟进邮件。这封得到了回应,但不是我希望的回应:

为了避免 Replit 不明白我对这种情况的不满,我在接下来的几周内发送了三封后续电子邮件进行解释,所有这些都被忽略了。换句话说,Replit 始终坚持威胁我:如果我重新发布开源项目,那么他们会聘请「顶级律师」起诉我。

Replit 是对的吗?

总结一下,Eplit 声称我的开源项目是:

Replit 的复制品;

基于他们的商业秘密(「内部设计决策」);

不道德的搭建。

关于前两个问题,我要解释的是:

我的项目与 Replit 项目的相似之处,并不比其他 15 个商业项目更甚,任何人都可以通过搜索在 Google 上找到这些项目对比一下;

我的项目和 Replit 之间的每个相似之处,都可以通过查看 GitHub 存储库和 Replit 线上发布的博客文章来对比 ,这显然不是什么商业秘密。

接下俩只需要解决第三个问题:我的行为在道德上合理吗?

我想分析以下几个因素:

Riju 是完全非商业性的。与 Replit 不同,我没有从任何来源寻求资金——广告、捐赠、筹款、订阅等等。我对经营企业没有兴趣,也从来不希望 Riju 变得太受欢迎,因为我是支付服务器费用的人;

Riju 并没有从 Replit 窃取用户。根据我的分析数据,2 月份 Riju 有 38 次访问,其中一半可能是我自己,与此同时,Replit 拥有超过 700 万用户。Riju 与 Replit 竞争显然没有任何意义;

Riju 也不是作为 Replit 的竞争对手而建立的。由于该架构仅限于在单个服务器上运行,因此任何人都可以通过输入一个 fork 炸弹来关闭整个系统——我的一个朋友这样做了,只是为了看看会发生什么(结果是系统崩溃了)。如果我要设计一个产品来与 Replit 竞争,我当然不会选择只能扩展到玩具项目大小的架构;

Replit 的核心价值主张不是让你在线运行代码(您可以在许多地方免费执行此操作),而是它们在运行代码之上提供的功能。Riju 缺乏所有这些功能,包括用户帐户、保存工作、共享工作、发布 web 应用程序、论坛、 GitHub 集成等;

在开发 Riju 时,我对 Replit 没有恶意,也没有试图隐藏任何东西。Riju 从未打算成为产品,它旨在成为一件个人作品,仅此而已。我不是商人。我只是一个开发者,喜欢为了好玩而构建奇怪的东西。

我有一个单独的帖子,其中包含所有技术细节:https://intuitiveexplanations.com/tech/replit/evidence

Replit 的行为暴露了他们的虚伪。在 Replit 给我的电子邮件中,他们的威胁是基于我过去曾为他们工作过的事实。但是,我认为这种逻辑是烟雾弹。要了解原因,让我们来看看 Replit CEO Amjad 在通过电子邮件威胁我后发布的一些推文:

Amjad 后来删除了这些推文,因为引起了争议。

我还想重申,Replit 要联合「顶级律师」威胁的人是一个没有资本、没有商业野心的毕业生。如果有来自某家企业的人冒犯了 Replit,我不敢想象他们会受到什么样的对待。

一边是刚刚毕业的本科生,一边是刚拿到大额融资的创业公司,斗争结果应该是显而易见的:Radon 下架了自己的开源项目,如果一个 CEO 威胁要找律师解决问题,指责你的行为,让你觉得内疚,这种行为极大概率是会奏效的。

但正如网友们评论所说:像 Replit 这样有钱的公司居然被实习生的周末项目吓到了,真是一件有趣的事情。如果你的护城河这么低,几天之内就可以被人复制,这个开源项目应该并不是他们最该担心的问题了。

迁移学习发展现状及案例探究

6月15日,机器之心最新一期线上分享邀请到本书作者、微软亚洲研究院研究员王晋东带来分享,介绍迁移学习的最新研究现状,带领大家从琳琅满目的研究工作中,找寻最本质的方法。

相关文章