唐凤:开源吃掉全世界

jopen 10年前

本文来自台湾 iThome 电脑报695期封面故事:开源吃掉全世界,系对国际开源社区领导者、传奇人物唐凤的访谈,其中也谈到了对中国开源社区的一些观察,认为中国的线上开源社区很活跃,其中一个突出表现是翻译。

唐凤:开源吃掉全世界

可以跟我们介绍一下自己吗?过去的经历、背景,而又是什么机缘下,进入开源圈呢?

我这二十年来都在做 Web 相关的工作,简历可以参考 LinkedIn 页面

初次接触开源是在 1993 年左右,接触到 Peter Deutsch 等人开发的 Archie 检索系统,以及 1994 年 Annihilator 等人开发的 ES LPMud 系统。之后短暂参与 Gopher 超文本社区,但因开发团队(明尼苏达大学)要求收取权利金,所以转向 Tim Berners-Lee 新提出的 Web 架构,并参与相关的 Usenet 与 Perl CPAN 社区,之后一直持续到今天。

那您为什么会想一直参与开源社区呢?

其实当年还没有开源的概念(这个词出现在 1998 年),但已有作为其基础的黑客文化自由软件运动

当时因为自己对计算语言、人工智慧和网络社会很有兴趣,发现许多的工作者都在线上,相关的工具也往往都是开放的,所以会觉得作品跟大家分享是自然的事情,比较像一种生活方式。

20年是一段很长的时间,你的什么想法让您在这圈子待这么久?

开放的作品能触及到的人通常较多,而开源模式更是让愿意接力工作的人可以持续下去。

我想这是主要的想法:开站是一时的,开源是一辈子的。

一开始与现在的想法有什么改变吗?

想法没有改变,只是随着网络社会的普及,分享变得更容易了,也有更多人愿意参与。

参与开源社区的这段时间有遇过什么困难或是情绪难以接受的事,而萌生退出的念头过吗?

2006 年在巴西参加 CONISLI 年会时,因为对实作方式的取向不同,而从 Perl 6 社区退出,转向为开发 Haskell 语言。当时主要是想避免自己成为社区的瓶颈,现在看来是正确的决定,今年也将是 Perl 6Haskell 双双迈向主流应用的一年。

这一两年台湾Open Source社区活动开始兴盛,您认为原因是什么?

我想主流的开发平台(包括 Oracle Java 及 Microsoft .NET Core)全部开源化之后,软件开发社区与开源模式之间已经高度重叠,几乎没有差别了。操作系统更是以 Linux 与 BSD 为大宗,多年前的专属式授权系统也较为少见。

加上 GitHub 等社区网站的兴起,我想以开源方式做系统,这两年来已经为大部份IT工作者所接受。

GitHub在开源社区中扮演什么样的角色,有哪些因素使GitHub成为开源的汇集地?

GitHub 首先是借由易用的 Web 界面,普及了 Git 的分散治理模式,几乎完全取代了以 Subversion 为代表的集中模式。

此外,GitHub 将源码、修订、瑕疵回报等开发过程的产物定址成键连资料,进而将它们转化成社会物件,因此取得了类似新兴社区媒体的网络效应,使 Google GoMicrosoft .NET 团队都放弃了自家的源码平台,移转到 GitHub 上开发,以争取社区支持。

台湾Open Source过去跟现在有什么不一样?

之前主要由软件工作者参与,但随着创用 CC自造文化的开展,现在文字、硬件、音乐、影像、设计、教育、政治工作者,也都开始参与开放文化,Source 的范围愈来愈广阔了。

可以给我们一些有趣的例子说明开源范畴的扩大,不仅只限于软件开发上?

文字如 Wikimedia,硬件如 Arduino / Thingiverse,音乐如 Blend / SoundCloud,影像如 油Tube / Flickr,设计如 Behance,教育如 Khan Academy / OCW,科学如 arXiv,政治如 g0v 等。

国际跟台湾Open Source社区有无差异?

除了使用的语言之外,并没有显著差异。早年比较需要做翻译工作来连络社区,但现在自动翻译进步,参与者的英文大致都没有问题,因此国际连接的动能也很强。

开源跟社会运动间的关系?

开源是一种协作的具体方式,而自由软件运动则是希望人们主动争取这种分享、协作的自由,两者是相辅相成的。

您认为亚洲的国家中,台湾在开源的表现如何(或许有个排名)?

可能因为我是安那其,开源社区也比较没有国家的观念,所以很抱歉无法提供相应的认知。

(今年的 OKFN 政府开放资料普查是有各国排名的,也许是最接近的数据了。)

那日本以及韩国等先进国家是不是开源社区也很发达?

我在开源社区认识许多日本朋友,在地社区非常发达,也多次造访当地的友人。

我没有去过韩国参与社区活动,所以并不清楚在地的情况。

中国的开源风气似乎也很盛行?例如网路资源的翻译等。

正如你所说,简体中文的线上社区很活跃,尤其是翻译的协作能量很强。

是不是国家政权的压迫,在网路的开源社区成了另一个宣泄的出口,但同时也打压了实体开源社区?

从中国友人处了解到的在地开源社区,往往是以企业与国家经济政策为推动力量,和台湾的草根发展方式稍有不同,但倒是没有听说实体社区被打压的情况。

OpenStack、GitHub在近年窜红的原因为何?和过去开源运作方式有什么不一样的地方?

过去的项目运作模式,有像 IETF 那样任何贡献者都可以加入工作组的,但也有较为传统、科层式的。

GitHub 和 OpenStack 都是现代开源治理模式的好例子,前者是基础建设,后者则体现了具体的模式运作。

GitHub 和 OpenStack 对开源社区的发展有什么影响?

GitHub 及其他类似的开源平台(如 GitLab 等),让没有软件开发经验的新手,也能渐进熟悉各项项目协作工具(持续集成、交互审核、待办事项等)。这降低了文字、影像、模造、甚至是数学工作者的进入门槛,让更多人能进入开源社区。

我有使用 Rackspace 的 OpenStack 服务,也理解它使运算平台的提供者与使用者,能有效合作出开源的各式基础建设,但其实我平日较常参与的是较为轻量的 Docker 生态系,以及同样基于 Linux Container 架构的 Sandstorm 社区。这类的“容器”技术,大幅简化了开源系统的部署:无论架设开发环境、串接网路服务、甚至整套系统的升级(如 Ubuntu Snappy)等,都较以往方便许多。

这让社区开发者可以花更多心思在“应用接口优先(API First)”的架构设计上,在节省技术支持时间的同时,也使“参与者”成为“贡献者”变得更加容易。

而在整体IT层面与商业模式运作上会产生什么影响?

关于降低参与社区的门槛,并且持续将维运简化后,会产生的影响,这里引用 2014 年 4 月我在 RailsGirls.tw 讲座会后座谈的部份意见:

我认为程式教学和服务业,将会变得非常分散。在 20 年前,我们有所谓“结蛹期”的概念。这是黑客词典 Jargon Files 里的一个词。它说,基本上要成为一个专业的程式员或黑客,你必须花三、四年的时间沉迷于电脑当中,你会完全打乱你的睡眠模式,一次写 20 个小时的程式。然后,到了某个点,你就会顿悟。这其实很像禅宗的想法。 

一旦你到了那个点,所谓“零的转移、巫术的权势”,基本上你就成为一个巫师。一旦你成为巫师,正如松本行弘所说,所有关于性别、种族、年龄、国籍的差别都会消失。这就像《骇客任务》中 Neo 把一切都看成是绿色数字的一幕。到了那个阶段,没有东西能够影响你的客观判断。这也是一个非常禅宗的概念。

可是我认为这算是一个神话,主要是因为那个时候如果没有网路社区,要学习程式是非常困难的事。

现在有 RailsGirls 和类似的社区,我们就有了一个缓坡。你可以非常舒适地留在斜坡上的任何一点,还有很多人会在同一级阶梯上互相支持,不一定需要两三年的密集时间。用这种方 式,你可以学上五、六年 —— 你甚至可以一天睡 8 个小时也不会退步。我认为这会大幅改变市场,因为除了业余爱好者和专业人士之外,阶梯上的每一点还会有细分的市场,这样市场和社区都会变得大很多。

Open Source为什么对于这世界很重要?

目前这个充分IT化的世界,已经进入匮乏/分配/科层等交换模式难以为继的时代。此时开源社区提供了一个示范,由“向不特定人分享”开始,经过“集合众人贡献”的过程,使能够永续、接力与共享的创造得以发生。这里再次引用 2014 年 4 月座谈时的发言:

传统上,有三种为人熟悉的交换或市场营销行为。其中一种是内团体(In-group),就像我们同在一个家庭,或者是处于同一个“社区”里,当中有 分内团体(In-group)和外团体(Out-group)。家庭或是这些内团体的成员,他们会共享一切、交换一切,可是他们不会跟外人,比如说非我族 类(“外来人”)分享。这是其中一种交换模式。

第二种交换,就是我们在政府或者是其他层次结构中看到的,我们只会跟梯子上方或下方的人进行交换。比如说,我只会向我的经理报告,然后我的经理会跟他们的经理报告,再往下分配资源。这种交换是完全科层式的。

第三种就是我们跟任何有钱的人交换。我们向有钱的人提供服务或货品,然后我们用这笔钱再与别人交换,与其他向我们卖东西的营销者交换。基本上就是使用货币交换。以上是世界上三个主要的交换模式。

可是,以行销者的身份参与开放源码(像 Ruby 社区),你就能学会世界上第四种交换模式,也就是说,你可以自由地跟世界上任何人,为了任何目的而交换。这是一个非常革命性的想法:我不在乎你是否跟我来 自同一个族群;我不在乎你是不是台湾人。我不在乎你是不是老板或经理;我不在乎你有没有钱。我想向你提供我的服务,我就慷慨给你。

我们已经证明了,这种行销方式(像 Linda Liukas 的 Kickstarter 活动)比起前三种传统交换模型,能够更有效地在更短的时间内接触到更多的人。这将会是 21 世纪的潮流。参与开源社区,你会亲眼看到它如何运作,以及掌握它的运作方式。 

您认为充分IT化的世界为何会进入“匮乏/分配/科层等交换模式难以为继”的时代?

有了互联网,人们可以直接联系到任何一个人,而发行给十万人跟一百万人时,成本并不会增加。但 WWW 的特性除了发布之外,更重要的是交互链接:“每个人做出的超链接,都是慷慨无私的展现,邀请读者离开作者的页面,去看看其他人是怎样看世界的。”

旧有的文化交换模式,例如“制作大英百科全书很耗时,所以要卖很贵”(匮乏)、“学校没有那么多经费,大家要轮流到图书馆借百科全书”(分配)、“借阅规则要由校方制定”(科层)等等,与上述交互链接的文化相比,显然是苍白而缓慢的。

除了文化传播外,在公共领域里,对于习惯直接联系,并且在不设定特定用途的互联网上生活的行动者来说,旧有的参与和运动型态也难以沿用。这里可以引用 Manuel Castells 的观察

“从历史上来看,社会运动依赖特定通讯机制的存在:谣言、布道、手册和宣言,从讲台、出版界出发,透过种种可行的交流方式,在人与人之间流传。在我们的时代,多重模态的横向交流与数位网路,是史上最快、自主性、互动性、可重编程性及自我扩张性最高的交流方式。

从事社会运动之个体间的通讯机制,决定了社会运动本身的组织特性:通讯方式愈互动、愈能自我建构,组织的层级就愈少,而运动的参与度愈高。因此,数位时代的网路化社会运动,足以成为社会运动的一种新的型态。”

“向不特定人分享”是否能彻底解决这个问题?

新的分享模式总是和现有的交换模式并存,所以我想并不会有“彻底解决”的一天。

诚如 Julian Assange 所说:“这是自古以来就存在于投机者与合作者之间的斗争,所以我认为它不会消失。我想我们可以取得一些重大的进展,而取得这些进展、投身于奋斗的过程,对 人是有益的。所以这个过程,其实就是最终目的里的一部份。事实上,对人们有价值的并不是最后达成某个状态,而是让人们感觉值得投入奋斗的这个过程。”(出 处:施密特与亚桑杰的会谈纪录

是否有实例可以让我们更明白开源模式改善“匮乏/分配/科层等交换模式难以为继”?

以个人的经验来说,这里引用 2014 年 12 月 20 日的访谈

...所以我其实国一后来就没有再去上学了,那我觉得对我最大的影响就是觉得说,需要学什么的时候,可以都在网路上找到,因为刚好我13岁的时候,就是 Tim Berners-Lee 发明 World Wide Web 的时候。

(请问您13岁是西元几年,我们需要这个时间点,感谢:D  回答:生日是1981年04月18日,13岁是西元1994年。)

在那之前,我没有那个信心说,我要的一切在BBS、或FTP、或Gopher上都找得到,可是看到WWW社区的爆炸性的成长,我就发现说,我不管对什么有兴趣,像我对例如人工智慧有兴趣,我只要发一封email,我就可以给Douglas Hofstadter,实际做AI最前端的研究者,他就会回我信,这中间是没有时间差的,那我们中间做的任何成果可以发布在网站上给大家看到。所以我觉得这个对我的影响就是说:不需要经过中介,就可以接触到我感兴趣的东西。

换句话说,从 1994 年开始,旧有的交换模式对我个人来说,就已经难以为继了。

Open Source的发展有遇到什么困难吗?

早期主要是与工业时代的“软件制造”模式相互对抗,但随着“软件即服务”概念被广泛接受,现在在软件界推行开源模式已经没有特别困难之处。延伸到其他社区时,可能也会经过类似的过程。

软件即服务与开源模式之间的关系是什么呢?

在“软件制造”模式下,贩卖套装软件后的维护成本较低,而初次开发成本较高,所以会把软件视为资产。

反之,在订阅式的“软件即服务”模式下,几乎所有成本都花在回应订阅者和新环境带来的需求,也就是维护和支持工作上。此时任何未充份元件化的软件都是持续的技术负债,并非资产。

而若要促进软件元件化,并找人分摊维护、支持的工作,开源社区是目前所知最有效的模式。

Open Source人应该具备什么能力?

语文沟通、逻辑思维的能力是必要的,其他只要保持好奇心即可。

给想进入开源社区的新手一些建议吧?

想做到什么,就动手去做。真心想做一件事时,全宇宙的“没有人”都会来帮你的。

那新手的第一步应该从哪里开始呢?

把你的想法放到某个空间,让其他人可以看到,并且欢迎大家提出改进。

不用怕想法不完整,也不用觉得有瑕疵很丢脸。

诚如 Leonard Cohen 所说:“万事万物都有缺口,缺口就是光的入口。”

未来开源发展的趋势?

我想主要会靠“更多元化的参与者”、和“更跨领域的项目”,来触及生活的更多层面。

您认为“更多元化的参与者”、和“更跨领域的项目”运作模式和现在有什么不一样的地方?

在参与者方面,随着纪录、发布、版本追踪成为表现活动的一部份(例如这份访谈),只要有沟通或创作意愿,即使只有零星的时间也能进入社区协作,不再只是少数娴熟工具、时间充裕的创作者才能参与。

在跨领域方面,输入工具的普及(触控、声音、手势、情感讯号等)让愈来愈多的类比表意讯息进入数位世界,与之相应的协作空间操作门槛也持续下降,再沿着新的输出方式(立体印制、扩增实境、可程式化物质)进入生活。这样一来,开源项目的内容也将不受平面影音文字媒材的局限。

另外,有关生活更多层面,可以给我们一些例子吗,且和过去相比产生了什么变化?

从维基百科的分类来看,举凡公民科学研究论文协作空间创作内容电传通讯开放资料设计教育政府治理协同创新公民媒体开放硬件等社区,可以说全部都是受开放标准及开源运动影响,涉及的层面已远超出软件的范围,这是和过去最大的不同。

 

共笔人:唐凤、李建兴(记者)

与会人:王宏仁(主编)、胡玮佳(记者)

本文做了繁简体转换,对部分词汇用语进行了替换,有删节。 

原文:https://g0v.hackpad.com/iThome-Open-Source--7Ev6ApUzYtA