因资金短缺,全职开发者自述:这款开源软件可能没有未来了!

dab07f3cd0019be63fa081b9a3293a45.gif

整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

参与开源、贡献开源,虽有一腔热血,但迫于现实的生存而放弃的开发者依然不在少数。

7 月 4 日,知名开源 JPEG 图像编解码器 libjpeg-turbo 发布公告,官宣 libjpeg-turbo 3.0 开源版本(https://sourceforge.net/projects/libjpeg-turbo/files/3.0.0/)的到来。然而,有些遗憾的是,libjpeg-turbo 的首席开发人员 DRC 在公告中写道,「可能永远不会有 libjpeg-turbo 3.1 了......我并不期望从开源开发中致富,但很多企业从我的工作中获得丰厚的利润,而我却被期望免费做这项工作,这也是不公平的」。

97e1ec554f48f93087d95a363d5d2b91.png

最终由于资金短缺,DRC 提前发出预警,libjpeg-turbo 功能的下一步开发可能会受到阻碍。

19a4dd3a0bc3af638c45cef2761abc8f.png

libjpeg-turbo 是什么?

根据其官网介绍,ibjpeg-turbo 是一种 JPEG 图像编解码器,它使用 SIMD 指令(MMX、SSE2、AVX2、Neon、AltiVec)来加速 x86、x86-64、Arm 和 PowerPC 系统上的基线 JPEG 压缩和解压缩,以及在 x86、x86-64、Arm 和 PowerPC 系统上加速 JPEG 压缩。

根据其官方评测,在此类系统上,在其他条件相同的情况下,libjpeg-turbo 的速度通常是 libjpeg 的 2-6 倍。在许多情况下,libjpeg-turbo 的性能可与专有高速 JPEG 编解码器相媲美。

一定程度上,libjpeg-turbo 实现了传统的 libjpeg API 以及功能较弱但更简单的 TurboJPEG API。libjpeg-turbo 还具有色彩空间扩展功能,允许其从 32 位和像素缓冲区(RGBX、XBGR 等)压缩/解压缩,以及拥有功能齐全的 Java 接口。

凭借开源的特性,libjpeg-turbo 取得了巨大的成功并得到了业界广泛使用,GitHub 上 Star 数为 3.3k。而据 DRC 透露,每天有数十亿人通过 Web 浏览器、操作系统和图像查看器/编辑器使用到 libjpeg-turbo 技术。

26cb16dc6f41786d73c0b6137933a65c.png

首席开发者 DRC 亲述:拆了东墙补西墙的开源经历

就是这一款受众颇广的项目,要不是其幕后开发者的坚持,最新 libjpeg-turbo 3.0 版都可能差一点“夭折”。

在原本计划中,libjpeg-turbo 3.0 本应该到来得更早一些。不过,根据开发者 DRC 的叙述,在发布过程中,这个项目遇到了不少的挑战,包括起初 libjpeg-turbo 3.0.0 的 Windows 安装程序未获得有效签名、Beta 版本错误的修复等,好在最终这些问题得以解决。

不过,DRC 也提醒道,“虽然我尽最大努力且可能以高的质量标准并使用行业最佳实践来维护这个项目,但我无法测试所有可能的使用场景。”

接下来,DRC 表示他会继续花时间修复 libjpeg-turbo 中的 Bug,并发布修复版本。

然而,其也坦言:未来可能不会再有 libjpeg-turbo 3.1 发行版,除非,这个开源项目可以获得更多的资金支持。

在公告中,DRC 也对该项目资金算了一笔账:

目前,libjpeg-turbo 项目资金仅能够提供每月约 8-10 小时的劳动报酬。

在完成 3.0 beta 版本后,就用尽了 2023 年项目的所有预算。

后续修复所有 3.0 Beta 版错误,预计耗尽 2024 年 9 月之前的全部预算。

如果资金得不到改善,那么 libjpeg-turbo 实际上就处于“ 维护模式”。这意味着至少在接下来的 15 个月内,不能考虑任何新功能(即使是次要功能),并且技术支持也将受到限制。

对于 DRC 本人而言,作为一名全职开源开发者,他日常主要以维护三个开源项目为生,包括使得任何 Linux 或 Unix远程显示软件都能够以完全硬件加速的方式运行 OpenGL 应用程序的开源程序包 VirtualGL、TurboVNC 和今天提到的 libjpeg-turbo。

相比 VirtualGL 和 TurboVNC 两个项目,DRC 参与 libjpeg-turbo 开源项目的贡献可谓是不赚钱还要往里面倒贴很多钱。

DRC 表示,其大部分收入主要来自 VirtualGL 和 TurboVNC 两个项目,然后他拿着这些收入与自己抽出来的时间再投入到 libjpeg-turbo 开发中。实际上,libjpeg-turbo 从 2010 年到 2018 年就耗费了几十万美元。后来,2018 年 libjpeg-turbo 2.0 的发布导致 DRC 早已负债累累时,他才不得不停止往里面砸钱。

这些开源项目为很多公司节省了数百万美元的劳动力和 IT 成本,但 DRC 称,他拿回家的工资比初入行的教师工资还低。

「我通过独立的开放源码开发所赚到的钱大约是我的技能对企业雇主的价值的 20-25%,多年来我拒绝了此类雇主的无数邀请,以便继续全职从事这些 OSS 项目。我并不期望从开源开发中致富,但很多组织从我的工作中获得丰厚的利润,而我却被期望免费做这项工作,这也是不公平的」,DRC 说道。

3b6c2177103a9e2346edc9e2fe75ac63.png

libjpeg-turbo 未来该如何继续?

在 2018 年 DRC 负债累累之后,这个项目之所以得以维持几年,是因为 libjpeg-turbo 获得了由 Cendio AB 和 Crimson Vista 公司、Google 的一些临时资助以及一些用户的临时捐款 。

不过,DRC 表示,目前的资金仅够支付项目的维护和支持费用。为了让 libjpeg-turbo 以任何有意义的方式向前发展,包括将项目本身扩大 JPEG 规范的覆盖范围、将 SIMD 覆盖范围扩大到新的算法或指令集或 CPU 架构、支持新平台、改进 API、强化安全性、提高模糊器覆盖率、增强构建系统、提高自动化程度等,都需要更多的通用资金支持。

在最坏的情况下(现在所处的情况),DRC 认为当前的资金只可能将项目维持一年多的生存时间。

DRC 表示,“具有讽刺意味的是,我维护的最受欢迎/无处不在的开源项目(比其他项目更难资助。也许 JPEG 编解码器还不够“性感”?也许人们认为这是理所当然的,因为它的复杂性隐藏在更高级别的接口和应用程序背后?尽管如此,开发这些更高级别接口和应用程序的组织不应将 libjpeg-turbo 视为理所当然,特别是当我最近预计免费修复的大多数问题都与安全相关时。”

关于 libjpeg-turbo 的未来,DRC 不是没想过除了接受捐赠之外的其他路,他甚至想过该项目如果能被一家既与操作系统无关,又与 CPU 无关(虽然不太现实)的组织收购,或许会对 libjpeg-turbo 的生存和开放性都有意义。

然而,当回看过去的 13 年里,其在 libjpeg-turbo 中建立了巨大的价值——包括它的声誉、它的普遍性和它的用户社区,DRC 陷入了矛盾之中,他又不太希望这种收购出现,毕竟 libjpeg-turbo 显然不是摇钱树。

迫于无奈之下,libjpeg-turbo 未来有三条路可走,一是在有充足资金资助下,libjpeg-turbo 更加全面地往前发展;二是被收购或者在可预见的未来将项目置于维护模式;三便是最糟糕的一种,基于现在这种情况持续下去,直接没有以后。

3f7a0f8c2680e878febbebba8d1a9725.png

用“爱”发电的开源开发者,路该怎么走?

令人唏嘘的是,DRC 的经历并不是开源社区中偶然存在的事件。

  • 2021 年底,一场基于 Java 的日志记录工具 Apache Log4j2 的高危漏洞席卷互联网,甚至将其背后的项目维护者推上了舆论之巅。Log4j2 维护者之一的 Volkan Yazıcı 在忍无可忍之下于 Twitter上吐槽,「Log4j2 维护者只有几个人,他们无偿、自愿地工作,没有人发工资,也没人提交代码修复问题,出了问题还要被一堆人在仓库里留言痛骂。」

322ecd6be894e3a97d21789e2af91bfd.png

  • 2022 年,开源库「faker.js」和「colors.js」的作者 Marak Squires 带来严重的“删库跑路”事件,留下的一句「恕我直言,我不想再用我的免费工作来支持财富 500 强(和其他小型公司),以此为契机,向我发送一份六位数的年度合同,或者 fork 项目并让其他人参与其中」,诉说自己心中的不满。

  • 2023 年 2 月,core-js 作者 Denis Pushkarev 发布长文写道,在放弃高薪工作,全职从事 core-js 的开源开发后发现,免费开源软件的底座已崩塌,更是直言 “开源 core-js 也许是我一生中最大的错误”。

据《2022-2023 中国开发者大调查》报告显示,63% 的开发者表示未曾在开源中获得收入,18% 的受访者称很少获得收入。

56a192cfc688394099d2c7fa5b7ae975.png

为此,该如何有效改善纯靠“用爱发电”的开源现状?

其实很多组织也意识到了问题所在,开始采取改善措施。如 CSDN 之前报道过的:

  • 瑞典流媒体巨头 Spotify 推出了 100,000 欧元(105,000 美元)的免费和开源软件基金,以支持小型“独立”项目维护者。

  • 开源后端服务初创公司 Appwrite 为开源项目维护者推出了一个专门的基金开源软件基金,该基金将在去年向开源维护者支付 50,000 美元。

当然,这些措施虽已实施,但是还需要整个行业以及更多的企业行动起来。而对于个人开发者而言,究竟该如何做?我们对此也询问了 ChatGPT,它汇总分享了以下几年主动出击的建议供参考:

  1. 开源赞助平台:开源项目可以通过开源赞助平台来获取资金支持。平台如GitHub Sponsors 和 Open Collective 等提供了直接向开源项目进行赞助的机制。开源维护者可以在项目中设立赞助计划,并向支持者提供一些额外的福利,如独家访问、技术支持或特殊的认可等。

  2. 顾问和咨询服务:开源开发者可以提供顾问和咨询服务,将他们在项目开发和维护方面的专业知识转化为收入来源。他们可以提供技术咨询、定制开发、培训等服务,以帮助其他组织或个人在特定领域中应用开源技术。

  3. 专业支持和维护服务:开源项目可以提供专业的支持和维护服务,以获得收入。这包括为企业提供定制开发、升级和维护等服务,以确保他们能够在生产环境中顺利使用开源软件。

  4. 产品和插件开发:开源开发者可以基于开源项目构建自己的产品或插件,并通过销售这些产品来获得收入。他们可以为特定行业或用户群体开发特定的解决方案,并提供定价模型,如许可证费用或订阅模式。

  5. 参与雇主赞助:开源开发者可以与雇主合作,以在工作时间内继续贡献开源项目。一些公司鼓励员工参与开源项目,并将其视为技术成长和品牌推广的机会。

  6. 开源基金会和组织:加入或与开源基金会和组织合作,这些组织通常有资金支持计划,旨在资助开源项目的开发和维护工作。这些基金会可以为开发者提供资金、资源和网络支持。

  7. 商业伙伴关系和赞助商:与企业建立商业伙伴关系,寻求赞助和合作机会。企业可能对与开源项目相关的领域有兴趣,愿意提供赞助、广告支持或合作伙伴关系,以促进他们的业务。

需要注意的是,开源项目的可持续性和成功并非仅靠单一的收入来源,而是需要综合多种方法和策略。开源开发者可以探索并结合适合自己项目和社区的多种收入模型,以确保项目的可持续发展并为自己带来收入。此外,社区和行业的支持也非常重要,包括各种赞助、奖励和认可措施,以鼓励和赞扬开源开发者的贡献。

参考:

https://groups.google.com/g/libjpeg-turbo-announce/c/YZ2wRgB0zIE/m/UOjrm9quBQAJ

https://www.phoronix.com/news/libjpeg-turbo-3.0-Released

推荐阅读:

▶阿里发布免费的全新可变字体;Stability AI CEO:5年内,人类程序员将不复存在;Perl 5.38发布|极客头条

▶代码恐怖故事:隐藏在复杂代码库中的恐怖秘密

▶Mac 上能跑国产系统了!深度 deepin 官宣:正式适配 M1 芯片

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

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

相关文章

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

“我本可以默默地停止这项工作,但我还是想给开源最后一次机会。” 整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 「阳光之下,必有黑暗」。 当互联网企业争相拥抱开源,当开源成为技术创新的重要途径时&#xff0…

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…