GitHub的本意是旨在成为一种开放的软件协作平台,但它目前已成为一个巨大的综合性的平台,其作用远远超过单纯地开源代码。它现在在艺术家、建筑商、业主等许多领域使用。
芝加哥市最近宣布:“当建立新的自行车道时,当道路正在施工时,当兴建新的建筑时,任何人都可以更改数据。”人们在GitHub上管理家庭装修项目。去年,甚至有人在GitHub上公开了德国的所有法律。当然,GitHub仍然主要被程序员和开发人员所使用。
随着曾经的用户转变为生产者,他们正在重新塑造开源的文化。
不会集中革命
当大多数人听到“开源”,他们认为它是*的、分布式的、平等的:每个人建设的东西放在一起,供其他人使用。
但是,实际上并没有这样。大多数开源软件已经被专业开发人员创建和维护,他们与其他很像他们的开发人员互动。
在GitHub之前,我花了很多时间思考和讨论管理开源项目的最佳方式,因为协调一个开源项目的成本是很重要的。事实上,当一个项目做的很好,并且增长成为一个足够大的社区时,项目比分裂成小项目成长更有意义。但一个软件项目越大和越复杂,越难以做出贡献。所以,各种各样的成员的任务都是管理和生产项目,这往往导致一个项目之间生产和消费的裂痕。
GitHub通过更分散的开源解决这个问题。
使用GitHub的工作流程是非常个人的。开发人员和设计人员直接对他们所开发的内容负责,只要他们已经准备好了就可以随时发布。
这个工作流程很有用:它鼓励个人解决问题。这也给所有用户提供了一个新的开源文化的认同;GitHub实际上是互联网上对等生产的头号身份供应商。
我参与开源项目已超过10年,但不同的是,我不是这些项目的“会员”——我只是一个“用户”,一个贡献很小的用户。我和项目维护者之间仅在我使用的各种小项目上,每周发生有限的几次交流。
甚至更多的时候,它发生为另一种情况:我从未看过有人给我已经发布的小项目发送任何代码。
*的权利下放
GitHub的第一个版本做了一件很好的事:他们使你的代码更容易被发布。这对于许多重大项目来说足够了,包括Ruby on Rails,几乎可以立即移动到GitHub上。
但接下来发生的事情更有趣:人们开始在GitHub上发布一切。推送代码变得几乎成为了例行程序,就像发微博。通过降低进入壁垒,使其更容易协调和促进开源,GitHub对普通用户扩大了对等生产。
今天,一个巨大前景是,简单易懂的软件都可以被过去没有必要的深度技术知识参与大型开源项目阶层的人所访问。
这种生产者、贡献者、消费者之间的模糊关系自然值更小、项目更容易理解。例如,在2012年9月,GitHub上推动“变更集合”活跃用户中,有半数的人只推送不到5个变更集合,有22%(约44000人)每月只推送一个单一的变更。
这个业余化的开源软件有一些明显的好处。
使事情变得更容易使用
开源软件的一个长期问题是完美兼容。糟糕的文档、网站设计和可用性一般来说一直表现不佳,尤其是与许多专有同行相比。
但现在,随着贡献门槛的降低,非技术用户看到这些领域是容易提高他们依赖软件的地方。(这意味着神秘的错误消息这样的小事件得到更多的人性化解决,并且微小的一行CSS的变化,就可让网站正确的呈现在古老的浏览器和手机上)。
在新的开源时代,人们希望使用技术而不必成为这方面的一个专家。易用性比以往更受重视。
防止过渡设计
工程师喜欢寻找更多的方法来解决问题,以及更聪明的解决方案。当这些解决方案的消费者与工程师志同道合时,这也是挺好的,他们很高兴用巧妙的方法来解决老问题。
但业余爱好者不一样,他们对于解决方案的看法是:一旦一个问题解决了,他们将很少回头重新审视它。并且因为业余爱好者只能构建最理解的解决方案,它迫使开发人员创建简单的解决方案,使困难的问题很容易理解。
支持更广泛的生态系统
在Node.js,我积极参与,定义了足够的简单模式,人们可以编写独立的小库并随意进行推送。每个在生态系统中贡献的人都可以使用这个值,不用任何协调。这是完全相反的大型垂直堆栈,其有着大量的工具和功能(如像ember, Dojo, and YUI那样的集成插件系统),这是在专有的环境中取得成功所需要的。
但在开放的环境中,如GitHub上的Node.js,我们看到更小的API尺寸,可以轻松利用生态系统中值的其余部分,而不用协调(例如回调在jQuery上的API或节点的标准回调模式)。开发人员与库之间的协调越少,我们可以创造的价值越大。
GitHub已经被新一代的人们授权进行协作、创造和生产。很多开发人员将对传统的文化规范的丢失表示哀叹,但未来已经掌握在新一代手中,并且已经在进行改变。
这不仅仅是一个工具:我们正在见证一个新文化的诞生。