开源项目到底归谁管?
致敬为免费提供开源软件而辛苦劳作的开发人员。
作者 | JOEL M. MOSKOWITZ
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
当你购买利浦Hue的智能灯或iPhone之类的产品时,你可能会认为编写代码的人获得了报酬。对于直接编写产品软件的人来说确实如此,然而每个技术公司还需要依赖无数的免费代码,比如从GitHub和GitLab等网站上的“开源”项目获得免费代码。
通常,这些开发人员也很乐意免费工作。他们通过编写开源软件提高自己的技术力,从社区中获取反馈,或者免费提供创新来帮助行业发展。Google维护了数百个开源项目,据其称开源“推进并鼓励技术的协作与开发,以解决现实问题。
但是,当数百万人使用的软件仅由一个社区或一个人维护,而且这些人都是免费的义工,那么有时就会出现意外情况。2014年,灾难性的“心脏出血”bug瓦解了数亿个网站的安全性,背后是一个名为OpenSSL开源库中的一个问题引发的,该库虽然有数以百万计的人在使用,但负责更新和修改代码的只有一个专职开发人员,试问我们又怎能奢望他不会犯错呢?有时,开发人员会感到厌倦而放弃他们的项目,而这些项目也会在不经意地遭到破坏。
我们不能要求免费工作的程序员排查问题,或继续维护由于某种原因而失去兴趣的软件,尽管有些公司还是会尝试。另一方面,没有得到适当维护的项目会导致整个技术生态系统变得脆弱。因此,有些开源程序员要求各个公司付费,不是为了获得他们的代码,而是为了获得他们的支持服务。
Daniel Stenberg就是这样的一名程序员。他创建了cURL,这是世界上最受欢迎的开源项目之一。
开发人员可以利用cURL在两个系统之间传输信息,通常某个API的服务需要从另一个系统请求数据或从另一个系统发送数据。根据Stenberg的说法,数十亿部智能手机,“数亿”台电视和至少1亿部智能汽车,以及基本上你每天接触的所有现代联网设备和服务都使用了cURL。鉴于Stenberg在志愿者社区的协助下负责了绝大部分维护工作,因此说cURL的使用规模实在令人震惊。但是,在诸多依赖他的代码的公司中,很少有公司意识到这是他的代码。
居住在瑞典斯德哥尔摩附近的Stenberg于1998年创建了cURL,至今仍免费维护该项目,尽管他最近在一家名为wolfSSL的公司工作,现在该公司付钱让他“尽可能全职”地为公司工作。有时,依靠特定开源软件的公司会雇用项目的创建者来构建这些项目,因此wolfSSL要求Stenberg不仅要维护cURL,而且还与他签署了提供cURL个人支持的服务合同。
Stenberg从未没想到cURL的知名度会如此之高。实际上,自从这款软件诞生以来,过了很多年才得到了广泛使用。由于这些代码无需任何商业许可即可免费使用,因此各个公司在使用的时候都没有告诉他。他发现自己创建的软件越来越流行,是因为有人告诉他在软件的“关于”窗口或其他文档中看到了他的名字。他表示:“这是一个循序渐进的过程,我都没有预料到。”
Stenberg说,在创建了cURL的前20年中,他只是利用业余时间管理这个项目,同时还在从事其他“真正的软件开发工作”来维持生计。该项目的维护工作量巨大:他花费了数千小时来提升cURL、修复bug和改进代码。cURL的GitHub存储库中总共有25,000个“提交”和更新,其中有14,000个来自Stenberg。其他开发人员贡献的代码都没有超过2,586个提交。
cURL幸存了下来,归功于一系列赞助商,他们赞助了该项目的托管和其他费用(尽管Stenberg说没有大型公司参与其中),以及Stenberg等开发人员免费贡献了自己的时间。Stenberg说,他相信开放源代码的存在很重要,而且他从未后悔开放cURL的源代码。然而,令他感到失望的是,如果出现问题,各个公司则要求他提供帮助。
去年,一家海外的公司由于cURL的问题而不得不暂停了将固件升级部署到数百万台设备后,慌慌张张地联系到他。Stenberg说:“我不得不给他们解释,我无法在短时间内前往他们的国家来帮助他们解决这个问题……,因为cURL只是我的业余工作,我有一份全职工作。”
因为他非常在乎这个项目,所以他找了一个朋友来帮助。他的朋友前往那个国家,帮忙解决了这个问题。
Stenberg认为,为了向提供这种服务的开源程序员支付报酬,各个大公司都应该向开发人员支付与代码库相关的支持服务的费用,这是对他们付出的时间的补偿,同时也有助于确保这些项目的长期维护。Stenberg希望通过在wolfSSL的工作,说服苹果等公司付费换取专门的支持,但这条路任重而道远。
支持合同的价格不菲,通常在数千美元之间,支付费用后就可以使用项目,而且在出现问题时也可以获得专门的支持。但是,需要此类服务的公司(尤其是使用cURL的公司)通常都资金雄厚或影响广泛。
目前尚不清楚这些公司是否会对这种合同感兴趣。以前曾有一家公司要求Stenberg飞往另一个国家帮助他们解决问题,当Stenberg提出支持服务费用时,他们拒绝了。
这让Stenberg感到万分失望。他说:“当发现人们在利用我们,却没有在获得利益的同时做出相应的贡献,我感到很恼火。”但他仍然认为支持服务合同是维护开源的长期途径:“这些程序员理应得到回报,而不仅仅是通过策展人或大型开源项目/公司提供绝大部分的资金支持。”
开源社区中的许多人反对收取金钱的想法,这仍然是一个有争议的话题。开源社区中的一些人认为,金钱换不来“自由”,但现实是,为自由而辛苦劳作的人们也是普通人,他们也要吃饭和养家糊口。
如今,如果有开发人员或公司发送电子邮件给Stenberg寻求帮助时,他会说:“我的态度已经转变,像您这种情况,可以考虑一下支付支持合同的费用。”
当我问Stenberg是否还会维持cURL(已经20年了)时,他说他不打算放弃,这个项目已经成为他生活的一部分。
“当然,我也希望能够获得报酬。”他补充道。
原文:https://onezero.medium.com/the-internet-relies-on-people-working-for-free-a79104a68bcc
本文为 CSDN 翻译,转载请注明来源出处。
开源项目到底归谁管?相关推荐
- 写开源项目到底究竟有多赚钱?
精品连载丨安卓 App 逆向课程之三 frida 注入 Okhttp 抓包上篇 选自calebporzio 机器之心编译 参与:张倩.蛋酱 如果提到靠打赏生活的人,我们首先想到的会是主播.但现实情况是 ...
- 开发者故意破坏自己的开源项目,开源商业化之路如何走?
科技云报道原创. 开源 or 不开源,一直以来都是一个争议性的话题. 但不可否认的是,在过去的一两年,开源在全球呈高速发展趋势,越来越成为跨越国界和语言的共识. 据GitHub官方数据显示,2021年 ...
- 30 天精通 Git 版本管理,这个开源项目超给力
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 今天给大家推荐的这个开源项目超级赞,超级好. 如果你对 Git 版本控制不熟悉?那福利来了. 这个开源项目到底有多 ...
- 贡献开源项目没那么简单,你要负责到底
贡献开源项目不是一件简单的事,不是说上传项目到Github或类似的网站,就万事大吉了,更不能认为你的项目代码现在已经开源了.还有很多事情要跟进完善.也就是说你要对这个项目负责到底. 从长远角度来看,开 ...
- 联通研究院霍龙社博士深度解析“AI项目到底适不适合开源”
近年来,AI开源逐渐成为众多开发者谈论的核心,但也出现了不少"AI不适合开源"的声音,那么,AI项目到底适不适合开源呢? 为了解答这个专业问题,9月19日,OpenI启智社区特邀联 ...
- ChatGPT推荐的开源项目,到底靠不靠谱?
今天我们让ChatGPT推荐一些开源项目,看看这些项目到底靠不靠谱? 首先,我们需要明确一个概念,那就是什么是开源项目.开源项目是指代码开放.可自由使用.修改和分发的软件项目.开源项目的优点显而易见, ...
- flutter 富文本编辑器选择图片模糊_Flutter 到底香不香?看完这几个开源项目再做决定...
Flutter 自 2015 年推出以来,凭借着其极高的开发交付效率,优秀的多平台能力,以及强大的 UI 表现力,受到了许多开发者们的推崇.虽然 Flutter 的确仍旧存在一些问题,但依然是不少开发 ...
- GitHub 到底怎么找优秀的开源项目?有些资源自己找就可以了 | 非常实用技巧 | 效率起飞
文章目录 原来 GitHub 也有朋友圈 多向优秀的人学习,我们也会走的更远 这里含有资源大全,甚至可以读个大学了 用好 GitHub,效率起飞 最后的最后 大家好,我是 Chocolate. 说到 ...
- 中国互联网公司开源项目调研报告
近年来,开源技术得到越来越多的重视,微软收购GitHub.IBM收购红帽,都表明了开源的价值.国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目.但是,它们到底做得如何呢?为此InfoQ统计了 ...
最新文章
- mysql修复坏表的方法
- 手机腾讯视频android版插件,小程序1.6.5版更新,终于支持腾讯视频插件了
- 数据库死锁查询及处理
- mysql数据库、表、索引、触发器
- DataFrame/Series获取列名以及更改列名(转)
- Z.ExtensionMethods 一个强大的开源扩展库
- 【转】IsCallBack属性和IsPostBack属性有什么区别?
- List 按照中文姓名升序排列
- ffmpeg函数介绍
- 使用 concurrently 并行地运行多个命令(同时跑前端和后端的服务)
- Windows11快捷键大全 win11常用快捷键介绍
- 异步请求(多种方式)
- nginx匹配规则详解
- 服务器c盘哪些文件可以删除吗,小编教你c盘里哪些文件可以删除
- HotSpot的新生代三区划分好在哪?
- 保监会就交强险费率浮动征询专家意见 凸显3焦点
- 明治维新VS洋务运动-同途殊归的变革by高铭君儿
- Matlab实现鼠标拖动显示轮廓线
- 清朝官场三百年之抢班夺权
- 微信小程序学习之路(一)
热门文章
- 在VC中使用Delphi构造公共对话框
- [论文阅读] Learning Without Forgetting
- 利用Python K-means实现简单图像聚类
- 发生无法识别的错误_车牌识别系统的核心部件抓拍摄像机怎么安装?
- linux创建软连接记录
- 百度强化学习之Policy learning
- 论文《Learning Spatial Fusion for Single-Shot Object Detection》解读
- python赋值语句的一般格式为_Python语言有什么奇技淫巧?
- python中for循环和while循环的区别_Python中for循环语句和while循环语句有何不同
- 新冠肺炎疫情数学模型的一点想法