WARNING: 这是一篇没有什么营养的博文。请酌情观看。

我的基友前几天GitHub的私有存储库到期了,于是他花了七美刀续了一个月,打算把私有库里的代码迁移出去。然而就在他续了没多久之后,GitHub的私有库免费了。

基友吐槽垃圾微软,当然了,这只是表面上的开一个玩笑,对于我和我的基友而言,这都是一件喜大普奔的事情。

但是有的人并不这么想,在知乎上,我看到了一些负面的言论:

如何看待 GitHub 宣布私有仓库(3人以下)免费开放?-匿名用户的回答

他做出了如下论断:

当年的Windows纵容国内盗版,(中间省略十几年),从结果看,导致国内大量用户不愿意购买正版。

现在的GitHub提供无限闭源仓库,(中间省略十几年),从结果看,很可能导致大量开发者不愿意开源。

其实我很讨厌类比,在我看来类比就是耍流氓,就是偷换概念。在我看来,国内盗版成风,所有游戏各种软件都有盗版。且不谈微软是否纵容盗版,也不谈是否是因为盗版windows导致用户不愿意购买正版,单看后半句,提供无限闭源仓库,为什么会导致大量开发者不愿意开源?我实在是无法强行联系其前因后果。

然后看评论区,我才知道他的思想有多么可笑:

我就说说我自己吧。当我还是个萌新的时候,也没啥你说的名气啊爱好啊贡献啊的追求,我就觉得profile上的绿方块挺好玩的,我觉得绿方块越多的人越厉害。为了填满时间线上的大部分绿块块,我愣是绞尽脑汁把自己写过的所有有点用途的程序啊作业啊竞赛啊加个README传了上去。现在私有仓库免费了,提交私有仓库反正也能拿绿块块,你猜我还会这么卖力做贡献吗:)

原来如此,开源就是为了拿绿块块,把所有东西上传上去,就算开源了,就算是为开源社区做贡献了。

诚然,我当初开始使用GitHub,也确实觉得铺满绿块很帅,很有成就感。但这绝对不意味着我觉得我在为开源社区做贡献。因为上面的代码,多半是对他人没有用的,没有什么实际意义的,也根本就没有想过要给别人看,那些代码仅仅是一个仓库一个备份而已。

当然了,这些也算是所谓的开源,但是这样的代码,没有fork,没有watch,只有一颗star还是自己点出来的代码,真的对开源社区做出了贡献吗?

我觉得完全没有。

我也这么干过,往GitHub上上传了一坨没有说明没有注释的作业的代码,这些代码可读性极差,还需要很多配置,我自己也都没有说明如何操作。换言之,就根本没打算让别人看懂、使用、学习或者维护。对于这样的代码,我实在是不好意思说自己为开源社区做出了什么贡献。

然而实际上,他其实也并不在乎什么贡献,他更在意东西比这些要肤浅的多:

1)作弊情况。你写个脚本每天往私有仓库交一堆乱码,轻轻松松一年365天全绿,也没人能够检查你的代码。为啥有人搞这个?比如可以面试混个好印象啊,私有仓库一开放,这个绿榜可信度也降低了,鬼知道你私自提交的是代码还是乱码。

2)更严重的是激励机制失效。开源是自愿行为,自愿行为是要有激励机制的。既然提交私有仓库都能拿绿块,原本设计、运行良好的“开源拿绿块”的激励机制,已经完全失效了。当然激励机制还有很多,比如名气提升、比如将你的名字加入贡献者名单等,但github的“绿块”机制我觉得是最形象具体的。

上面这些是他针对GitHub开放私有仓库提出的两个弊病,对此我虽无力吐槽,也要吐槽。

面试居然是看绿块不是看项目的?全绿就厉害?原本花钱买私有库也能拿绿块,为什么激励机制没有失效?真当大家付不起七美刀?学生免费私有库了解一下,换个邮箱就能无限续,只要你想,连七美刀都不用。

也许绿块是他开源最大的奋斗价值,但别以小人之心度君子之腹。也许有一小撮完全不开源的人混入其中,但大部分人想为开源社区做贡献是他自愿的,和私有库免不免费没有任何关系。

我其实也算是半个参与开源社区的人了,我也有项目挂在GitHub上,甚至还有一千多个Star,这些才是真正能够激励我开源的东西:我写了代码,有人使用,有人反馈,有人提意见,有人用它做了很酷的东西。当然了,也是有代价的。我也花了很多很多精力去维护它,因为它并不完美。

所以,我不会因为别人在私有仓库里刷了几个无意义的所谓“绿块”而感到不平衡,现在想想那个人真的很可笑,面向绿块编程我是还真是第一次见。他对开源一无所知,因此我也本不必和他争论,因为想要说服他本就是不可能的。只是我打心里看这种人极其不爽,明明是喜大普奔的事情,偏要说得弊大于利。并且,他的言论就透露出一种恶心感,他不断地攻击他人“阅读理解是负的吗?”、“语文是体育老师教的吗?”,让我意识到人的素质到底可以有多低下。