InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

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

  • 2012-07-31
  • 本文字数:3399 字

    阅读完需:约 11 分钟

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

一、关于创新

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

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

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

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

二、关于生活方式

除了《开源的成功之路》,还有一本书,也很值得一读。Steven Levy 写的《黑客–计算机革命的英雄》。豆瓣上有一位 Pope 写书评,非常精当

这本书并不是很有吸引力,因为每翻过几页,就恨不得撇开书,抡起胳膊大干一场。 是的,那些黑客英雄的故事,令我们读来大呼过瘾,那样的生活、那样热血的日子,真是令人神往的日子!

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

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

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

三、关于现状

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

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

这是现状之一。

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

这是现状之二。

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

这是现状之三。

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

这是现状之四。

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

四、关于良性循环

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

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

如果要分一个轻重缓急,那么我认为给国内开源,找到更多的生力军,也许是可以优先考虑的做法。一方面要让更多的程序员意识到,即使不挣钱,做开源也是有收益的。我想引用微博上的两段话,来说明我的观点:

@姜宁 willem
知识改变命运,想通过开源项目获取知识,只要你愿意,地球上没有人能阻挡你。 在这里不拼爹,不拼公司背景,拼的是对技术追求的那颗心。 通过开源项目能实现个人价值,只是在国内这样的成功案例不多。

@Freeman 小屋
相对于在闭源公司的工作,开源社区的工作决不会让你成为 nobody,每一次代码提交,每一次回答问题,都是对你自身 reputation 的积累,并且你的工作都有 track,想想找工作的时候你只要说我是某社区的谁就能拿 offer 了。而且,我特别希望在校的大学生,能够意识到这一点,在完全没有经济压力、思想又最为活跃的阶段,多多参与开源,绝对是有益无害,一本万利的好事情。

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

当然,帮助众多的、不知名的开源项目,能够出现、能够发展,则是开源托管平台这样的服务,应该努力做的事情了。在知乎,我回答过一个问题《GitCafe 这样的代码托管网站在国内的前景如何?》

我在盛大创新院工作,我们团队,正在做一个叫做 www.teamhost.org 的开源托管服务。说起来,还是 GitCafe 的竞争对手。在我看来,中国的开源社区,不是太多,而是太少太少。应该有至少 10~20 家,努力的、优秀的、互相良性竞争的开源托管服务社区,大家一起来做开源服务,不但竞争,而且合作。不但努力争夺用户,而且共同把开源的爱好者服务得更好。这样,中国的开源才能发展起来,而且发展得越来越好。

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

就此搁笔。

投稿来源:当我谈开源时,我谈些什么?


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2012-07-31 00:004265

评论

发布
暂无评论
发现更多内容

Appuploader工具让ipa上传到App Store 的最新流程和步骤

如何为Spring和Mybatis增加可逆计算支持

canonical

Spring Boot mybatis 低代码 可逆计算 Nop平台

RLHF 技术:如何能更有效?又有何局限性?

Baihai IDP

人工智能 强化学习 白海科技 RLHF 大语言模型

Mac部署AIGC图片生成服务——基于stable-diffusion

珲少

开心档之CSS !important 规则

工赋开发者社区 | 面向CPS的制造执行系统(MES)实验平台验证

工赋开发者社区

活动回顾|火山引擎DataLeap分享:DataOps、数据治理、指标体系最佳实践(文中领取PPT)

字节跳动数据平台

数据中台 数据治理 抖音 DataOps 企业号 7 月 PK 榜

工赋开发者社区 | 复杂电子装备制造数字化工厂实现逻辑与实施步骤

工赋开发者社区

分享一些常用的开源博客社区网站

兮动人

博客 开源社区

大厂程序员的水平比非大厂高很多嘛?

程序员小毕

Java 程序员 面试 程序人生 架构师

从互联网到云时代,Apache RocketMQ 是如何演进的?

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

业务模块在你做之前,一定要多想呀?

Bonaparte

产品 产品经理 产品设计 产品思维 产品需求

Nodejs快速搭建简单的HTTP服务器详细教程。

百度搜索:蓝易云

node.js 云计算 Linux 运维 HTTP

2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题

阿里巴巴云原生

阿里云 Serverless 云原生

TypeScript 玩转类型操作之字符串处理能力

小乌龟快跑

typescript 面试 前端

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

福大大架构师每日一题

福大大架构师每日一题

Spring Boot学习路线1

小万哥

Java spring 后端 Sprint Boot Sprint Cloud

重塑思维模式,实践致富法则

少油少糖八分饱

读书笔记 分享 思维 搞钱 致富

基于中文金融知识的 LLaMA 系微调模型的智能问答系统

汀丶人工智能

人工智能 自然语言处理 知识图谱 LoRa NLP 大模型

容器化应用程序的配置管理策略与实践

DS小龙哥

7月月更

Linux系统安装MySQL详细教程

百度搜索:蓝易云

MySQL 云计算 Linux 运维 服务器

CSS !important 规则

雪奈椰子

iOS 应用上架流程详解

雪奈椰子

合并k个已排序的链表

向阳逐梦

探索Linux命名空间和控制组:实现资源隔离与管理的双重利器

柠檬汁Code(binbin0325)

Linux 容器 namespace 底层原理 Cgroups

懒得改变原始对象?JavaScript代理模式教你怎样一步步偷懒!

控心つcrazy

JavaScript 设计模式 代理模式 Proxy Design Pattern

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

汀丶人工智能

人工智能 自然语言处理 NLP 大模型 关系抽取 命名实体识别

使用Appuploader工具将IPA上传到App Store的最新流程和步骤

雪奈椰子

解决 go-zero 注册 etcd 出现 “Auto sync endpoints failed.” 的问题

非晓为骁

golang etcd go-zero etcd-client 服务注册发现

深入理解 HDFS(一):Block

冰心的小屋

hadoop hdfs 数据存储 文件分块 block

在 Go 语言单元测试中如何解决 MySQL 存储依赖问题

江湖十年

golang Web 后端 单元测试 测试 单元测试

  • 扫码添加小助手
    领取最新资料包
当我谈开源时,我谈些什么?_社区_庄表伟_InfoQ精选文章