入狱 10 月、网暴不断,并挣扎在温饱线!超 90 亿次下载的开源项目,背后是这样的 9 年...

9141eee6213687f93742d7f1d0e9a373.gif

“我本可以默默地停止这项工作,但我还是想给开源最后一次机会。”

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

「阳光之下,必有黑暗」。

当互联网企业争相拥抱开源,当开源成为技术创新的重要途径时,“开源”一词逐渐被推上前所未有的高度——如此光鲜的背后,无数开源人却在艰难“求生”。

本周二,JavaScript 模块化标准库 core-js 的作者 Denis Pushkarev,在 GitHub 上发表了一篇万字长文《 So,what’s next?》,说尽了他这 9 年开源生涯的点点滴滴:入狱 10 个月、被不断网暴、积蓄用尽、无法给家人体面的生活等等。

文中,Denis Pushkarev 谈到:“我喜欢开源……但这也许是我一生中最大的错误。”

4ed5e211afa54e0007ea487893fbbd9a.png

0d825bc7b534d473d7bf94d5676fa204.png

下载量超过 90 亿次的 core-js

作为一个模块化的 JavaScript 标准库,core-js 可为最新的 ECMAScript 标准和建议提供支持,包含大约 5000 个不同复杂程度的 polyfill 模块,深受开发者欢迎。

据统计, GitHub 上超过 1900 万个代码库都在使用 core-js,它在 NPM 上的每周下载量超过 4300 万次——自 2014 年 Denis Pushkarev 将 core-js 作为开源项目发布以来,其总下载量已超过 90 亿次。

69c81a6a3a76f6cff80196e34a52f556.png

单看这一串数字,你可能无法直接感受 core-js 的应用范围到底有多广。为此,Denis Pushkarev 简单写了个脚本,以检测在 Alexa 全球顶级网站 TOP 1000 中 core-js 的使用情况。

结果显示,仅通过脚本的粗略检测,就发现有 52% 的网站在使用 core-js。在后续更精确的的手动检查中,Denis Pushkarev 更是表示 TOP 100 中就有 75-80 个网站使用了 core-js,其中包括腾讯、苹果、领英、NETFLIX 等。以下为部分示例:

e57e46e3bc2b8f1d1bf626ff4c063ae6.png

c08b768602fd9701464564c0201d6027.png

Denis Pushkarev 总结:“我可以肯定地说,大多流行网站都在使用 core-js。而且不仅仅是关于网站前端,几乎所有使用 JavaScript 的地方都有 core-js 的身影。”

但 Denis Pushkarev 盘点这些数据,并不是想炫耀他有多厉害,而是“为了展示一切都有多糟糕”。

c9c67e8126c58a6566e20c0ed73fed08.png

孤立无援,放弃高薪全职做开源

2014 年,当时 Denis Pushkarev 想让 JavaScript 开发者们更轻松,于是将 core-js 作为开源项目发布,但他将其形容为:“也许这是我一生中最大的错误”。

core-js 的出现,让开发者能够快速使用最新且有用的 JavaScript 功能,因此刚发布不久,其传播便呈指数级增长。出于对项目的负责,Denis Pushkarev 也由此开始了无止尽的维护工作。

与绝大多数的库不同,core-js 不是一个写完就可以丢在一边的项目,它与 Web 的状态绑定,要对 JavaScript 标准或提案的所有更新、所有 JavaScript 引擎的新版本以及相关 Bug 检测等及时同步。core-js 为此进行的演变和改进从未停止,导致维护工作的规模不断扩大。

然而,这对当时还有全职工作的 Denis Pushkarev 来说,有点兼顾不了了。

那段时间,Denis Pushkarev 尝试了很多方法,希望能找到其他维护者或固定的贡献者,但均以失败告终。最终,他放弃了那份高薪工作,选择全职从事开源,因为当时的他认为:“金钱不是第一要义。”

0d67d5223e5a674c0f81988532336fa8.png

筹集不到资金,入狱 10 个月

直到 2019 年 4 月,Denis Pushkarev 大约有一年半的时间都在全职做开源。在这期间他回到了俄罗斯,并主要通过一些短期合同赚取生活费,虽然没有高薪,好在生活还算体面。

但打破这种平静生活的转折来得很突然。2019 年 4 月,Denis Pushkarev 因驾驶摩托车撞人致一伤一亡,根据俄罗斯联邦法律,他要被判处有期徒刑 18 个月——这意味着,在此期间 core-js 将无人维护。

唯一不用入狱的办法,就是找一个好律师,与“受害者”方商量和解。据 Denis Pushkarev 回忆,当时他需要支付“受害者”亲属要求的 8 万美元索赔,以及一笔高昂的律师费。

“也许对于一个优秀的软件工程师来说,这笔钱并不多,但此前我在很长一段时间里,都在全职从事开源工作,没有人给我工资,我也为此几乎花光了所有的积蓄。”

为了筹集这笔钱,Denis Pushkarev 试了很多途径。他在 GitHub 和 NPM 的自述文件都提到:“core-js 没有公司支持,所以这个项目的未来取决于你。如果你对 core-js 感兴趣,请成为赞助者或支持者。”

02203faa18e2eb2317a4c008aa10b1b4.png

结果,一个月只收到了 57 美元。Denis Pushkarev 对此调侃道:“这就是确保整个网络兼容性的全职工资。”

显然,靠这种方式是凑不到 Denis Pushkarev 需要的钱的,于是他在 core-js 的 NPM 安装日志里加了几行字,除了希望开发者给予资助,也表示自己正在找一份合适的工作:

9095b72addc356f011f142e48fa6c4a4.png

早已预料到会有人不喜欢这种求助方式,Denis Pushkarev 也计划几周后就删掉这几行字,但他还是没想到“网暴”会来得如此迅猛且铺天盖地:每天他都会收到数百条恶意的信息、帖子和评论,声称他没有权利向他们寻求任何形式的帮助,求助请求也冒犯了他们,甚至想限制 Denis Pushkarev 对 core-js 软件库和软件包的访问,要求他把管理权限转移给其他人。

“可笑的是,他们根本不理解这个项目的规模有多大,社区里也根本没有人愿意维护它。”

筹集不到资金的 Denis Pushkarev 认罪了,在入狱之前他联系了很多开源开发者,希望对方能在他服刑期间帮助维护 core-js,但都被拒绝了。最后 Denis Pushkarev 只好找了他根本不搞开源的朋友,确保 core-js 不会出现重大问题即可。

于是,2020 年 1 月,Denis Pushkarev 入狱了,并在 10 个月之后提前出狱。

f4b19ce808dff6567bd3b5bca2d46a13.png

每月 400 美元,如何养家糊口?

出狱后,Denis Pushkarev 很快又继续全职做 core-js 更新和维护工作,主要收入来自 Tidelift 每月提供的 1000 美元,以及通过 Open Collective 和 Patreon 获得的 700 美元,即每月大约能收到 1700 美元。

可后来,由于俄乌局势紧张,Tidelift 向俄罗斯的跨境汇款受阻,Denis Pushkarev 失去了每月 1000 美元的收入,Open Collective 和 Patreon 上的捐款也逐月减少——据 Denis Pushkarev 估算,这个月他的收入可能只有 400 美元,但他花费在 core-js 上的时间几乎是每月 250 个小时。

更重要的是,Denis Pushkarev 已经不是“一人吃饱全家不饿”了:

  • “我有了一个家庭,并在一年多前成为了儿子的父亲。现在我必须为他提供体面的生活水平。”

  • “我的父母也已经到了需要我赡养他们的年龄。”

afdb7c70ae22015536260f2213f7c7db.png

在这种生存压力下,每月 400 美元的收入显然不足以支撑起一个家庭,Denis Pushkarev 收到了很多建议:“去上班吧,别在网上乞讨了”,“放弃做开源吧,这只是一种爱好,不能当饭吃”,“那些什么都不懂的程序员,每天只工作几小时,工资都是你的几倍”……

Denis Pushkarev 当然知道,甚至他也收到了很多公司的邀请,但是:“这些工作,让我不能兼顾开源的事情。”

5a070e860da8a82d6245b02217a141f7.png

“想给开源最后一次机会”

在这篇长文的最后,Denis Pushkarev 总结了他这 9 年开源生涯所遇到的种种:

  • 从 2014 年开始,他一直为大多数 Web 提供平台的前沿功能,确保没有兼容性问题,现在却挣扎在温饱线上。

  • core-js 帮助了很多 JavaScript 开发者,但他看到的不是感激之情,反而是各种充满恶意的辱骂。

  • 借助 core-js 赚取数百万美元的公司,并不理会他的资金请求。

  • 即便他只是在危急时刻想要寻求帮助,大多数人也只是忽视和厌恶。

  • 这些年来,没有任何标准开发人员跟他一起为 JavaScript 创造更美好的未来。

对于以上这些,Denis Pushkarev 说:“我喜欢开源,但我已经不知道这样做是为了谁或是为了什么了。”

恶意评论他可以忍,否则他早已放弃开源;缺乏跟标准开发人员的互动他也可以忍,毕竟目前还没有因此出过大错;唯一不能忍的,是没钱。Denis Pushkarev 抱怨道:“我已经受够了以牺牲我和家人的幸福为代价,来帮助无数公司了。我想要确保我家人的生活,想让我儿子有一个光明的未来。”

基于这些考虑,Denis Pushkarev 给出了四个解决方案:

第一,给予他适当的财务支持;第二,他找到一份可以兼顾开源维护的全职工作;第三,如果没有适当的支持,core-js 将转为商业项目;第四,如果不被需要,core-js 将慢慢“死亡”。

至于最终他将选择哪条路,就全部取决于开发者的反馈了。他表示:“免费开源软件的根基已经崩塌了。我本可以默默地停止这项工作,但我还是想给开源最后一次机会。”

73a4254d10c1d997b16ce4eece38a37b.png

引发网友热议

Denis Pushkarev 的这篇万字长文,引起了许多开发者的注意——他们再一次意识到,开源开发者的真实生存现状,哪怕这是一位拥有下载量超过 90 亿次的开源项目的作者。

  • “我赞成他直接放弃这个项目。既然让开发者及其公司赞助的想法已经失败了,那就停止所有的维护,看看会发生什么。”

  • “老实说,我认为他应该把 core-js 变成商业项目。既然人们看不起这个项目不愿赞助,那就干脆抽出来算了!”

  • “如果他把 core-js 变成商业项目,我会笑死的。一夜之间,至少有 50% 的主要网站将面临危机。”

  • “我觉得每个人都应该读读这个。这个人这么多年来所遭受的一切都很疯狂,而他仍然每天都按时上线维护项目。”

那么,对于 Denis Pushkarev 的遭遇,你又有什么感想呢?

参考链接:

  • https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md

  • https://www.reddit.com/r/programming/comments/111k9aq/corejs_maintainer_so_whats_next/

  • https://www.npmjs.com/package/core-js

 

07db5257c78a88cbfbe7dba35bb2a1ed.gif

 

f7d4361100f26e6bbec411d8df774911.png

☞曝腾讯 XR 团队全线解散;谷歌企业文化遭前员工痛批:没有使命感,官僚主义严重;内核开发者讨论移除安腾架构|极客头条
☞Google BigQuery 创始工程师:大数据已“死”
☞ChatGPT 数据集之谜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14557.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prompt工程师指南[应用篇]:Prompt应用、ChatGPT|Midjouney Prompt Engineering

1.ChatGPT Prompt Engineering 主题: 与 ChatGPT 对话 Python 笔记本 ChatGPT介绍 ChatGPT是OpenAI训练的一种新型模型,可以进行对话交互。该模型经过训练,可以按照提示中的指令,在对话上下文中提供适当的回应。ChatGPT 可以帮…

锁分实锤!B站三体动画评分只有…好文!拆解追溯GPT-3.5各项能力起源;餐饮店后厨AI解决方案PreciTaste… | ShowMeAI资讯日报

👀日报合辑 | 🎡AI应用与工具大全 | 🔔公众号资料下载 | 🍩韩信子 📢 分析了三体动画近万条评分数据,扒下B站最后一块遮羞布… https://www.bilibili.com/video/BV1JM411m7HU/ 命运多舛的《三体》动画终于…

提示工程师指南4-ChatGPT Prompt Engineering

ChatGPT Prompt Engineering 在这个部分,我们将介绍 ChatGPT 的最新提示工程技术,包括技巧、应用、限制、论文和额外的阅读材料。 主题: 与 ChatGPT 对话 Python 笔记本 请注意,本部分正在紧密开发中。 文章目录 ChatGPT Promp…

cmd输出中文乱码

解决cmd中文乱码问题 解决方法: 1. chcp 直接输入chcp命令,查看当前cmd的编码格式 活动代码页:936指GBK 2. 设置活动代码页为:UTF-8 编码格式 方法一:直接执行 chcp 65001 执行完后,使用 chcp 可查看当前…

chatgpt赋能python:Python转码详解:解决乱码问题

Python转码详解:解决乱码问题 在使用Python进行编程的过程中,经常会遇到乱码的问题。这种情况往往发生在不同操作系统和应用程序之间交互数据时。本文将介绍Python如何进行转码以解决乱码问题。 什么是转码? 当我们将文本从一个编码格式转…

chatgpt赋能python:Python中文字符乱码问题及解决方法

Python中文字符乱码问题及解决方法 Python作为一种高级编程语言,已经被广泛应用于数据分析、机器学习等领域,尤其是在处理中文文本方面具有很大的优势。然而,在实际使用中,我们有时会遇到一些令人头痛的问题,比如中文…

QMessageBox显示中文为乱码

如图,想要输出这些信息,但是展示为乱码 解决办法: 在cpp文件的最顶端加上#pragma execution_character_set("utf-8"),然后重新构建并运行就可以啦!

处理中文乱码和中文部分乱码

文章转自:http://book.51cto.com/art/201112/306309.htm 在网络操作中,关于中文乱码很多初学者都感到非常困难,如何解决乱码?不要没有目的胡乱转码,笔者访问了几个初学者,他们对于这个问题常用的方法就是一…

PHP界面显示中文乱码

在写一个表单提交的项目中&#xff0c;遇到了PHP界面输出无法显示中文界面。 后来查阅相关资料&#xff0c;得出解决途径。 代码如下&#xff1a; <!DOCTYPE html> <html> <head> <title>123</title> </head> <body><?php he…

中文乱码问题

解决中文乱码问题&#xff0c;出现于解压后中文文件名&#xff0c;中文应用程序即exe 常见的中文乱码及解决一. zip压缩包解压之后中文文件名称乱码1. 系统区域改成中文简体2. 用winar打开的时候&#xff0c;选择名称加密&#xff1a;简体中文 二. 中文应用程序&#xff08;以.…

零代码编程:用ChatGPT爬取网页数据遇到乱码怎么办?

今天用ChatGPT写了一段代码&#xff0c;爬取中文网站数据&#xff0c;提示词如下&#xff1a; 写一段Python程序&#xff0c;爬取网页数据并保存到excel表格。 具体步骤&#xff1a; 打开网站https://www.zhenfund.com/Case/?id3&#xff0c;解析源代码&#xff1b; 定位 …

解决各种中文乱码问题

tomcat出现中文乱码问题有以下几种情况&#xff1a; 1.通过cmd启动tomcat出现中文乱码&#xff08;tomcat日志输出编码与cmd编码不一致&#xff09; cmd启动tomcat出现中文乱码 乱码原因&#xff1a;这是由于windows下的cmd的默认编码是GBK编码&#xff0c;Tomcat控制台默认输…

Python 乱码原理及其解决办法

最近在爬虫过程中爬下来的HTML文件中出现了不认识的字符&#xff0c;也就是“乱码”&#xff08;之前也遇到了系统之间文件显示“乱码”的问题&#xff09;&#xff0c;花了点时间学习Python编码相关的问题&#xff0c;主要参考了以下几位的文章&#xff1a;Unicode编码底层描述…

别研究 ChatGPT 了,来看个国产好项目

今天我要给大家推荐一个近期荣获 GVP 称号的项目—— Eoapi&#xff0c;界面简洁的同时满足我的核心诉求。&#xff08;项目作者是我的朋友&#xff0c;大家都支持一下~&#xff09; 简单介绍 Eoapi 是纯国产的开源项目&#xff0c;可以说是 Postman 的好兄弟&#xff0c;该有…

Android小项目——新闻APP

前言&#xff1a; 在公司学习了一段时间Android知识&#xff0c;决定做一个小项目&#xff0c;目的是学会运用所学的基础知识&#xff0c;在这里记录一下开发历程&#xff0c;大家可以把它看成一款入门级练手的 Demo 应用吧~ 项目概述&#xff1a; 类型&#xff1a; 新闻APP&am…

【编程架构实践】关于技术栈和架构

目录 技术栈和架构 技术栈 1. 项目需求 2. 开发团队技能

提示工程七巧板:让ChatGPT发挥出最佳性能

机器有机器的作用&#xff0c;人有人的独特个性和价值。正因为如此&#xff0c;一方面&#xff0c;ChatGPT 等人工智能语言模型需要通过不断与人类的公共知识信息数据交互、汇聚&#xff0c;不断与人类进行对话&#xff0c;才能拥有越来越好的智能表现&#xff1b;另一方面&…

搭建DVWA渗透测试靶场

目录 一、虚拟机的介绍及安装 二、Windows镜像操作系统安装 三、Windows虚拟机的相关配置 四、DVWA靶场搭建 一、虚拟机的介绍及安装 1、双击运行安装文件&#xff0c;然后一直点下一步 2、我接受 3、勾选增强型&#xff0c;然后继续下一步 4、去掉更新及加入体验计划&a…

用 ChatGPT 实现综艺节目中的“你说我猜”游戏|征稿活动V6

引言&#xff1a;本文为 Cocos 第 6 期社区征稿活动参赛文章&#xff0c;作者「花叔爱折腾」。他用ChatGPT Cocos Creator 做了款 AI 对话的小游戏&#xff0c;以下为开发实录。 前言 在实现这个游戏前&#xff0c;我在思考&#xff0c;GPT 实现的是 AI 对话&#xff0c;我总在…