我开我的源,与你何干?

作者 | Phodal

责编 | 胡巍巍

Ant Design 事件之时,作为看热度的吃瓜群体。我偶尔也会随意地皮一下,虽然没有这么大胆。

过程中,大抵发现一些人呐,对于开源的态度并不是那么友善——仿佛作为一个开源贡献者,这些都是我等的义务,应尽的天职一样。

我在最初也并没有那么友好,经贺老提醒之后,我发现自己的态度似乎也是不太对。但是,这种利用道德上的压迫感,让人觉得甚是不爽,便想写一篇文章顺带吐槽一番。

开源,并不意味着免费

我们开源了一个软件,并不意味着你可以免费使用。我们花了几天、几个月、几年的时间,打造出来的开源软件,就好像自己的孩子一样。我们会为之搭配一个满足自己利益的协议,它可以是 GPL、Apache,也可以是 WTF 协议。它还可以针对个人免费,但是商业使用收费的软件。你可以直接看到项目的代码,并不意味着你直接商用。

这个基本的原则,也是许多大公司所不懂的,腾讯的 QQ 语音 FFmpeg 耻辱名单事件,华为的 ServiceComb 抄袭事件,小米的 Linux 内核不开源事件……。

而即使是我给予了你免费使用这个库、软件的权利,也不代表我会向你免费提供支持服务。收费软件,收费的其实并不只是软件本身,还有相当一部分是服务的费用。而帮助你使用这个开源软件,也是服务的一部分。在大部分的情况下,这个服务可以由作者自愿提供的,但是不代表它是免费的。

选择开源,能帮你省掉大量的时间和金钱,但是这些并不意味着开源是免费的。开源反而是最贵的,没有人会 7x24 地为你提供售后服务,没有人会向你保证软件背后没有漏洞,没有人会向你提供新功能的支持——你需要自己承担这一切的风险。

开源,是权利而非义务

从 StackOverflow/Google 复制了一堆代码,作为一种回应,我写有一个对应的博客,上面有一系列的博客;我从 GitHub 上复制代码,作为一种回应,我编写了大量的开源软件。

但是这些都只是我的权利,我可以选择不开源这些软件——随着时间的流逝,让它们在我的电脑上腐烂。而不是将代码提交到网上、GitHub,再除去一些条件限制、环境限制、专利限制等相关的代码,配套上相应的 README、使用文档、Demo,以让其他/她人可以顺利地使用它们。

然而,从法律、道理上来说,我并没有义务这样做。我可以只上传代码到 GitHub 上,你爱用不用。开源是一种权利,我可以使用这个权利,也可以放弃这个权利。不过,对于这个权利不得不提及的一点是,在工作时间、使用公司设备开发的开源软件,从原则上来说,并不属于个人。公司有权利,收回以这种形式开发的开源软件。

“贡献的没有几个,嫌弃的却有一堆”。在 GitHub 上遇到一个问题,帮助某开发者解决了问题。每次都会写 comment 希望他/她能把解决方案放到 issue 里,可多数时候并不会得到解决方案。明明它对于别人是有帮助的,却有人总也不会去做。如果是你,那你还谈论什么开源的权利与义务?

若是不开源,亏欠的是那些开源的人。开源吧,又对那些不开源的人太好了。

开源,不是我们的工作

对于绝大部分的开源工作者来说,开源并不是他/她的日常工作。作为一个 Geek,我们都向往一个更好的世界,一个我们愿意为之奋斗的世界——虚拟世界。

我们愿意在这个世界里,创造美好、引以为傲的事物。我们喜欢创造,喜欢和热爱创造的人一起工作,我们喜欢分享,愿意分享东西给喜欢分享的人。

所以呀,解决你的问题,不是我的工作。哪怕你十万火急,我也没有理由、义务去帮助你。白天,我也需要忙于工作,我也有一堆的问题希望有人能帮我解决。

可这些问题,往往只能由自己来解决。在工作的时间里,帮助你解决你的问题,对我来说太难了。

我有自己的工作,我需要解决工作中的问题。回到家里,还需要吃饭,还需要刷动漫,还需要洗澡,还需要浪漫的时间,这样一来,所剩的时间就更少了。

有限的时间,我还想投入到自己的爱好中,投入到写作中,投入到绘画中。哪怕是不能为我带来收入,但是我很开心。

可我们还是会抽出时间,去解决 GitHub 上的问题。这些问题我们有自己的优先级分类:

  • 出 bug 了。修好它,是你应该做的,也是我应该做的。但是什么时候修好,就得看时间。

  • 新的功能。我可以考虑,但是也可以不考虑。

  • 使用不当。可以适时考虑,帮你解决。

  • 与项目结合有问题。若是你能找到了问题,还有相应的答案,还可以协同解决。若是找不到问题,我也没有源码、分析不出问题,你只能听天由命了。

  • 不按文档使用。不好意思,请再把文档看一遍,再来提问。

可总有人,会去烦作者,说为什么不回答他/她的问题。有时候,还会配上各种难听的话。若是这样的事情多了,怕是作者本人也会放弃开源。

正因为如此,我讨厌在 IM 上添加好友,讨厌邮箱、社交媒体以外的联系方式。我有我的工作,我有我的生活。

开源,不是道德绑架

谈及开源来说,我怕得是一个 “自私” 的人。我有自己的生活,出于生活考虑,我拒绝造基础的轮子,如 UI 组件库、模式库等等。

所有的这些基础设施,都在无时无刻地蚕食生活的角角落落。任何一点鸡毛蒜皮的小问题,都会在 issue 列表中出现:

  • 明明是你不看 README,却在说文档上没写清楚。

  • 明明是你不看示例代码,却在说项目没有 DEMO。

  • 明明写的是给 Angular 用的框架,却在说在 Vue 上不能使用。

  • 明明是你的能力不足,却在说框架有问题,不能工作。

  • 明明是你的能力不足,却在说作者不帮助你。

开心了,我就给解决方案;不开心或者工作累的时候,打开 GitHub issue 的想法都没有。

总有人会以道理的高点,来谴责一个开源软件的作者,直到这个作者关闭了 issues,关闭了项目。甚至是到各种社交媒体上,对这个作者进行轰炸。

而点开这个人 GitHub 上的头像,都是一个个 contributions 空白的人,在道德上和别人说义务。

拜托,只有有道德的人,才有资格谈义务。不走向开源的人,哪里有什么资格,和开源人的谈开源的义务。

和坏人讲道理,哪是在电影里才有的情节。主角们有主角光环,而键盘侠才是有主角光环的人,而开源软件作者,才是所谓的 “坏人”。键盘侠是个超级英雄,他/她们来无影,去无踪,却又存在于世界的任何一个角落。

他/她们可以以任何的角度来抨击一个人,哪怕是一个完美的人,他/她们也会以这个人太完美为理由进行抨击。

没有人强求你为开源做贡献。你也不应该强求其它人为开源做贡献。

不开源,不足以谈开源

当今世界最可怕的是,总有些自媒体,总有人会拼拼凑凑写出一些可怕的文章——拥有大量的阅读,带领一堆吃瓜的群体,开始了舆论的批评。

这种文章吧,说是抄袭,倒也不是那么赤裸裸,说是洗稿吧,倒也没有稿可洗。而这些乱七八糟的文章,却在不断地为开源世界带来骂名。

就我而言,写一篇像本文一样的技术文章,需要一天。而抄袭,却只需要 10 分钟。

不开源的人,不足以谈论开源。不开源的人,怎么可能知道开源的世界是怎样的。不开源的人,怎么会知道开源世界没有英雄。

不开源的人,一切的信息来源,都是道听途说的。即是道听途说的,哪来的准确性,又有什么资格谈论古今呢?

开源软件,谋利太难了,谋名还是可以。以开源为名为自己的开源软件宣传,这种行为无可厚非。可要是以开源为名,去宣传一个非开源的组织,怕就是在谋取私利。

可总有人借开源之名,宣传自己。虽说我是半吊子——经常造坑到一半,但是至少能拿出一系列的作品。

两者间的区别在于,开源贡献者,会为自己的软件作宣传。开源利用者,则是以组织名和开源来为自己背书,却拿不出作品。

不走向开源,你怎么知道开源是怎样的?不开源,你哪来的资格谈开源?!……

结论

有些人是该批评,有些人是该醒一醒了。

作者简介:黄峰达(Phodal),ThoughtWorks 软件开发工程师,CSDN 博客专家。长期活跃于 GitHub,专注于物联网和前端领域。出版著作《自己动手设计物联网》《全栈应用开发:精益实践》以及《微前端的那些事儿》、《Serverless 架构应用开发指南》等六本电子书,并译有《物联网实战指南》等两本书。

声明:本文系作者投稿,版权归作者所有。

【END】


CSDN 开源开发者交流群

立即扫小编的微信二维码加入吧!

加好友时请备注#开源+公司+职位#

如无备注,不会通过哦

 热 文 推 荐 

☞ “苹果正在走下神坛” | 畅言

☞ ofo 回应甩卖办公桌;华为与袁隆平合作;罗永浩 1 亿股权遭冻结 | 极客头条

☞我如何用 21 天在 GitHub 上获取 6300 个 Star?

☞ 1年丢失140亿!你是区块链的受害者吗?|年度安全事件回顾

☞ 华为 36 岁工程师猝死,曾 22 月无休:比挣钱更重要的是活着

☞ 细数阿里达摩院2019年的十个Flag

☞ Google AI骗过了Google,工程师竟无计可施?

☞ 趣挨踢 | 关于遗留代码的那些事儿

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

开源,不是一种道德绑架相关推荐

  1. 开源,并不意味着免费、开源,不是道德绑架

    为什么80%的码农都做不了架构师?>>>    我开我的源,与你何干? Ant Design 事件之时,作为看热度的吃瓜群体.我偶尔也会随意地皮一下,虽然没有这么大胆.过程中,大抵发 ...

  2. 远离盛行道德绑架的团队

    "道德绑架"是指人们以道德的名义,利用过高的甚至不切实际的标准要求.胁迫或攻击别人并左右其行为的一种现象.经常体现为:我想占你的便宜,你不给,所以我觉得你的道德有问题." ...

  3. 道德绑架?抹杀激情?听我的,别再给孩子买运动手环了

    全文共3477字,预计学习时长10分钟 图源:Unsplash 不管是华为.苹果抑或是小米,这几年的侧重点除了手机,电脑这些传统设备之外,手环手表也渐渐成为了重点对象. 前几日,华为手环4Pro降临, ...

  4. 由明星道德绑架引发的危机公关处理策略分析

    文 | 公关之家 作者:小5 引言:予人玫瑰,手有余香:不予玫瑰,必有麻烦. 最近,林志玲姐姐大婚的消息,刷爆了朋友圈.广大网友在赠送祝福的同时,也存在许多指责和谩骂的声音,更有甚者扬言要在大陆全面封 ...

  5. 雷军对待华为鸿蒙系统有什么看法,鸿蒙OS太诱人?魅族和雷军遭遇道德绑架,米粉回击:想用买华为去...

    自从华为发布鸿蒙OS 2.0正式版之后,第一批升级范围内的华为用户也都在第一时间踊跃升级,因此还一度把华为的服务器挤爆.随着鸿蒙OS的体验用户越来越多,相关的反馈也多了起来.整体而言已经相当完善,但多 ...

  6. 如何用人工智能破解罗一笑事件的“道德绑架”困局?

    除了关注"道德绑架"问题,我们还应该思考一下,怎样才能杜绝此类事件. 这几天,一篇病毒式的文章<罗一笑,你给我站住>刷爆了朋友圈,在今天更是达到了爆发点.然而,伴随着转 ...

  7. 开源人工智能算法一种新颖的超像素采样网络深层特征来估计任务特定的超像素

    开源人工智能算法一种新颖的超像素采样网络深层特征来估计任务特定的超像素摘要: 超像素提供图像数据的有效低/中级表示,这极大地减少了后续视觉任务的图像基元的数量. 现有的超像素算法无法区分,因此难以集成 ...

  8. 观李筱懿视频号有感:不要让所谓的大度变成对自己的道德绑架

    "哎,我们待会和他一起去聚会吧!" "啊,我不想和他聚会." "为什么?" "他背后说过我坏话,让我感到非常伤心." & ...

  9. 迪特里希·朋霍费尔:愚蠢是一种道德上的缺陷

    关于愚蠢 对于善来说,愚蠢是比恶意更加危险的敌人. 你可以抵抗恶意,你可以揭下它的面具,或者凭借力量来防止它.恶意总是包含着它自身毁灭的种子,因为它总是使人不舒服,假如不是更糟的话. 然而,面对愚蠢, ...

最新文章

  1. Logstash 推送告警到阿里钉钉(Dingtalk)
  2. jq获取after和before伪类的content值
  3. 一个电脑能装几块固态_装上固态SSD的电脑几个月后就卡慢?是因为你忽略了这一个细节...
  4. 插入排序算法C++代码实现
  5. cad能整体比例缩小吗_CAD中两个缩放的不同及其各自的应用
  6. WPF 类型“System.ComponentModel.ISupportInitialize”在未被引用的程序集中定义。
  7. louvain算法python_复杂网络任务6:Louvain社区发现算法的原理、细节和实现,作业,六,以及...
  8. Windows下C++将各种资源文件引入exe文件(即无需携带很多res资源包)
  9. IDEA(2018)连接MySQL数据库失败的解决方法(报错08001)
  10. 怎么把程序内部坐标转为屏幕坐标,如何将工作空间坐标转换为屏幕坐标?
  11. roseMirrorHA5.0 for WindowsServer2008R2配合sqlserver2012|Oracle 11g的安装和配置
  12. R语言堆叠占比柱状图_R语言执行单因素方差分析及多重比较
  13. windows下客户端连接上马上会断开连接_zookeeper系列客户端的骚操作amp; Curator使用...
  14. 基于Redis消息的订阅发布应用场景
  15. ubuntu 外置硬盘安装
  16. Marvelous Designer 服装设计与模拟
  17. 无法启动计算机上的服务msdtc,MSDTC服务无法启动解决方法
  18. python机械臂仿真_如何用ROS+Rviz+Arbotix控制器仿真为六自由度机械臂建模-工业电子-与非网...
  19. 气死电信 有时用联创宽带上网助手你登不上就改一下MAC地址挺灵 Windows xp 下修改mac地址
  20. 32位服务器系统安装教程,服务器系统数据库安装教程

热门文章

  1. 写出一下Java方法对应的签名_Java中的方法签名是否包含其返回类型?
  2. gcc/g++版本切换与降级
  3. 开花(在b数组中二分查找a数组元素)
  4. Ubuntu系统下环境变量那些事儿
  5. linux更换域名全站301,linux服务器wdcp面板做301域名重定向设置
  6. 《推荐系统笔记(十二)》聚类生成标签以及基于标签的TopN推荐
  7. Tensorflow实现数据分档操作
  8. Postman接口测试-安装与入门
  9. 量子点发光二极管显示器行业调研报告 - 市场现状分析与发展前景预测
  10. c语言10怎么打开文件,Lecture 10 C语言文件操作