《开源思索集》一当我谈开源时,我谈些什么?-阿里云开发者社区

开发者社区> 异步社区> 正文

《开源思索集》一当我谈开源时,我谈些什么?

简介:
+关注继续查看

本节书摘来异步社区《开源思索集》一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

当我谈开源时,我谈些什么?

开源思索集
这本来是一篇打算投稿给《程序员》杂志的稿子,可惜他们用不上了。于是我就打算发在这里,欢迎大家多多批评。

关于开源,我有很多的感想,但是在一篇文章之中,我可以谈些什么呢?在与程序员杂志的编辑杨爽聊天时,我虽尚未理清自己的思路,却想到了一个听起来不错的标题《当谈开源时,我谈些什么》。因为像这样一个看起来完全开放的标题,似乎什么都可以往里面装,简直可以随便涂涂就写出一篇形散神不散的散文了。

一、关于创新

那么,到底应该如何看待开源呢?近日我在读的一本书:美国的Steven Weber写的《开源的成功之路》,其中说到一个非常重要的世界观的区别:关于人类的动机,具体到编写软件上,究竟是为了挣钱,还是像真正的艺术家一样就是为了创作和尝试?在比尔盖茨看来,盗版的行为,偷窃软件,让程序员免费干活,最终都会抑制创新。而在开源黑客看来,发布软件却不发布代码,限制了合作的范围,也阻断了别人可能的改进和进一步的创新。看起来,两边都说的很有道理,而且有趣的是,都在拿创新说事儿。究竟什么样的激励,才能激发更多、更好的创新呢?是金钱,还是纯粹的爱好、乐趣和荣誉感呢?

公平一点说,如果没有软件版权、专利法、代码编译与加密技术,软件产业可能远远没有现在那么庞大,也难以养活像现在那么多的程序员。也许只会剩下一部分真正热爱编程,有没有钱都要编点什么的人了。但是,我更想从另一个角度来提问:“这个世界上,最重要、最伟大、最具有影响力的创新,有多少是金钱激励出来的呢?”

再提一个问题来问咱们程序员自己:“选择程序员这样一个职业,是因为它能够有一份足够体面的薪水?还是因为它让我有机会创造一些改变世界的东西呢?”最能够激励创新的,难道不是创新本身吗?在《失控》中我读到过一段话,曾令我激动万分。研究人工生命的最高远的动机是“目前,普通的计算机程序可能有一千行长,能运行几分钟。而制造人工生命的目的是要找到一种计算机代码,它只有几行长,却能运行一千年”。如果我们能够创造出这样的代码,那简直就是一个程序员最高的追求。

所以,在谈开源的时候,我想谈的第一点,是关于创新。究竟什么样的模式,才能更好地激发创新?

二、关于生活方式

除了《开源的成功之路》,还有一本书也很值得一读,那就是Steven Levy写的《黑客——计算机革命的英雄》。豆瓣上有一位Pope写书评,非常精当:“这本书并不是很有吸引力,因为每翻过几页,就恨不得撇开书,抡起胳膊大干一场。”是的,那些黑客英雄的故事,令我们读来大呼过瘾。那样的生活、那样热血的日子,真是令人神往!

在《黑客》第二章,以非常概括的方式介绍了“黑客伦理”:任何人与任何规则,都无法阻断人类的好奇心;没有权威,凭实力说话;你可以在计算机上创造出艺术与美;计算机可以让你的生活更美好……

如果你看了以后,也深有同感,那么成为一个黑客就是你自然的选择。成为一个黑客,就是选择一种生活方式,选择无尽的探索与创造;选择用键盘书写代码,来改变这个世界;选择向全世界展示自己的成果;选择和全世界的聪明头脑联接在一起。而对于黑客来说,无法看到源代码,无法了解事情是如何运作的,无法掌握与控制那些系统,这简直就是一种难以想象的罪恶。

所以,在谈开源的时候,我想谈的第二点,是关于生活方式,以及选择这种生活方式时,背后的信仰。

三、关于现状

这篇文章,我是用简体中文写的,面向的目标读者是国内的开发者。无法否认的一点是:现状的确不容乐观!

曾经我在CSDN接受过一次书面采访,CSDN的记者提了很多问题,整篇文章的标题是《拥抱开源从中受益》。但是,下面的跟贴评论,实在是令人丧气:收入可怜,没有属于自己的居所,开毛源;开源在咱们的社会主义初级阶段根本行不通。搞技术的都是穷人,开个狗屁的源;估计开源在中国,就是有钱,有房,有车,有老婆,有孩子,还没什么具体的事情干的人,无聊了然后去弄弄的东西……

这是现状之一。

在国内,我看到很多人自称屌丝。而程序员,则自嘲为码农。自我贬低,自我嘲讽,自怜自艾,自诩为苦逼。放眼望去,人家全是高富帅,官二代。唯独自己是看不到未来,买不起房的矮穷挫。

这是现状之二。

这个世界上有两种奇怪的逻辑(而且在国内都很常见),一种是“国外有一个好东西,咱们克隆一个吧”;另一种是“已经有一个很好的了,我们为什么还要做一个”。这两种逻辑背后,其实掩藏着同一种不自信,那就是:“我们不可能有创新,不可能做出更好的东西来,不可能后来居上!”这是何等的可悲!

这是现状之三。

做开源的人,往往非常孤独。一个开源项目,默默的诞生,默默的改进,然后默默的停止,最后默默的消失。这样的孤独感,很多开源人都体会过。国内的开源人,还有一些特别的体会:被人质问“做这个干啥,又不能挣钱”;被人贬低“国产的东西,会有好东西”;被人反问“你们不是做免费软件的吗?怎么还要收服务费”。

这是现状之四。

所以,在谈开源的时候,我无法绕过现状不谈。

四、关于良性循环

有一种常见的思维方式,就是分析复杂现象背后的因果关系。通常我们会发现一个循环依赖的因果链。既可以用于解释现状,也可以用来指导破局之法。简单的分析国内的开源领域,我们也可以发现这样的循环。因为缺乏足够多、足够好的开源爱好者,自然无法做出更多优质的开源产品;因为缺乏优质的国内开源项目,大多数开源产品的使用者,都习惯于在国外的开源社区寻找项目;因为大家的眼光都放在外面,作为受益者的个人用户与企业用户,也难以兴起回馈社区、捐赠开发者的念头;因为国内的开源人难以得到足够的赞助和支持,自然不会有很多人热心的投入开源。这样,开源人、开源产品、开源用户的循环依赖,就成了一个死结。

当然,如果乐观一点来看问题,我们也可以说:要建立一个良性循环的开源生态圈,既可以从任何一个要素入手,也不妨大家齐努力,从多个方向下手。日拱一卒、不期速成。逐步推动,总会有所进展。

如果要分一个轻重缓急,那么我认为给国内开源,找到更多的生力军,也许是可以优先考虑的做法。一方面要让更多的程序员意识到,即使不挣钱,做开源也是有收益的。我想引用微博上的两段话,来说明我的观点:@姜宁willem“知识改变命运,想通过开源项目获取知识,只要你愿意,地球上没有人能阻挡你。 在这里不拼爹,不拼公司背景,拼的是对技术追求的那颗心。 通过开源项目能实现个人价值,只是在国内这样的成功案例不多”, @Freeman小屋“相对于在闭源公司的工作,开源社区的工作决不会让你成为nobody,每一次代码提交,每一次回答问题,都是对你自身reputation的积累,并且你的工作都有track,想想找工作的时候你只要说我是某社区的谁就能拿offer了。而且,我特别希望在校的大学生,能够意识到这一点,在完全没有经济压力、思想又最为活跃的阶段,多多参与开源,绝对是有益无害,一本万利的好事情”。

其次,则是帮助国内现有的、优秀的开源项目,找到用户,找到参与者,找到加盟者。让他们能够更好的发展起来,成为国内开源项目的榜样。诞生一个一个的成功故事,使得做开源,也变得越来越有吸引力。这方面的工作,我想CSDN、《程序员》杂志这样的社区与媒体平台,也许可以做得更多。如果能够出现国外那样的成熟的开源基金会,以某种公开、公平的方式,赞助各种开源项目。以及帮助那些顶级的开源项目,更好的走向商业化的方向。总之,可以做的事情非常多。

当然,帮助众多的、不知名的开源项目,能够出现、能够发展,则是开源托管平台这样的服务应该努力做的事情了。在知乎,有一个问题“GitCafe 这样的代码托管网站在国内的前景如何”,我的回答是:“我在盛大创新院工作,我们团队,正在做一个叫做 www.teamhost.org 的开源托管服务。说起来,还是GitCafe的竞争对手。在我看来,中国的开源社区,不是太多,而是太少太少。应该有至少10~20家,努力的、优秀的、互相良性竞争的开源托管服务社区,大家一起来做开源服务,不但竞争,而且合作。不但努力争夺用户,而且共同把开源的爱好者服务得更好。这样,中国的开源才能发展起来,而且发展得越来越好”。

再其次,才是说服更多的企业,赞助开源。毕竟商业公司,不容易看到太虚幻的利益,只有实实在在的好处才能够有说服力。当然,这个事情总是困难的。所以,对于这种困难的事情,说得太多意义不大,倒不如各自努力去做。

就此搁笔。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
SSIO的更新       在SSIO上增加了UDP通讯方式,可以到Github上下载源代码。在原来的项目中,远端的设备与中心站的数据交互并没有使用过UDP方式。这种短连接的通讯链路,不容易维护,主要体现在:(1)持续的数据交互能力。
764 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9485 0
ETH geth私链搭建linux安装(以太坊是一个用于分散式应用程序的全球性开源平台)
在以太坊上,您可以编写代码来控制数字值,完全按照编程方式运行并且可以在世界任何地方访问
828 0
Kubernetes 弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
前言 容器技术的发展让软件交付和运维变得更加标准化、轻量化、自动化。这使得动态调整负载的容量变成一件非常简单的事情。在 Kubernetes 中,通常只需要修改对应的 replicas 数目即可完成。
8427 0
【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)
[连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍 [连载]《C#通讯(串口和网络)框架的设计与实现》-2.框架的总体设计   目       录 C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源... 1 1.      SSIO的特点 2.      SSIO概述 3.      SSIO与SIO的区别 4.      控制模式 5.      跨平台Windows和Linux   一.SSIO的特点 轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。
876 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13168 0
Netflix开源面向稀疏数据优化的轻量级神经网络库Vectorflow
在Netflix公司,我们的机器学习科学家在多个不同的领域处理着各种各样的问题:从根据你的爱好来定制电视和推荐电影,到优化编码算法。我们有一小部分问题涉及到处理极其稀疏的数据;手头问题的总维度数很容易就能达到数千万个特征,即使每次要看的可能只是少数的非零项。
4230 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载