This book is an attempt to identify, and expand upon, what it means to be online today, told through the story of open source, where individual developers write code consumed by millions. Rather than maximizing participation, their work is defined by the opposite: the need to filter and curate a high volume of interactions. I try to explain why this came about and how platforms shifted the focus from online communities to solo creators.
本书试图确定并扩展今天上网的意义,通过开放源码的故事讲述,个人开发者编写的代码被数百万人消费。他们的工作不是最大限度的参与,而是由相反的定义:需要过滤和策划大量的互动。我试图解释为什么会出现这种情况,以及平台如何将重点从在线社区转移到单独的创造者身上。
As I explore this topic, I’ll focus primarily on developers who use GitHub.* This is not to diminish the value of open source that is developed outside of GitHub, nor is it meant to imply that open source can only ever be developed on a single platform, or that opportunities to migrate elsewhere should not exist. I’m also mostly writing about the experience of individuals rather than the role of institutions or corporate actors in open source—that’s a different, complex topic that deserves its own separate book.
当我探讨这个话题时,我将主要关注使用GitHub的开发者。*这并不是要贬低在GitHub之外开发的开源的价值,也不意味着开源只能在单一平台上开发,或者不应该存在迁移到其他地方的机会。我主要写的是个人的经验,而不是机构或企业在开源中的作用--那是一个不同的、复杂的话题,应该有自己独立的书。
Open source has a long, colorful history of remaining independent of any proprietary software, tool, or platform. Its story predates GitHub by more than twenty years. For the most part, open source’s lack of standard tooling was by design: developers like choices, and they enjoy having the flexibility to pick their favorite tools for the job.
开放源码在保持独立于任何专有软件、工具或平台方面有着悠久而多彩的历史。它的故事比GitHub早了20多年。在大多数情况下,开源缺乏标准的工具是设计出来的:开发者喜欢选择,他们喜欢灵活地挑选自己喜欢的工具来完成工作。
GitHub had a meteoric impact on open source. It crashed through the roof of the Church of Free and Open Source Software and landed on the pews, crushing everything beneath.
GitHub对开放源代码产生了流星般的影响。它撞破了自由和开放源码软件教堂的屋顶,落在长椅上,粉碎了下面的一切。
Although there’s no requirement that developers must use GitHub to write open source software, GitHub is by far the dominant code-hosting platform today. The fact that most open source developers now use GitHub represents more than just a shift in personal tastes; it also signifies a shift in developer culture.
虽然没有要求开发者必须使用GitHub来编写开源软件,但GitHub是目前最主要的代码托管平台。大多数开源开发者现在都使用GitHub,这不仅仅代表了个人品味的转变,也标志着开发者文化的转变。
The relationship between platforms and their creators is critical to the discussion of how our online world is changing. And because GitHub is the dominant platform for open source, there is no way to understand platform-creator relationships without talking about the service and the developers who use, benefit from, and grapple with it.
平台与创作者之间的关系对于讨论我们的网络世界如何变化至关重要。由于GitHub是开源的主导平台,如果不讨论该服务以及使用它、从中受益并与之斗争的开发者,就无法理解平台与创造者的关系。
Before there was a de facto platform for hosting code, most open source code was published as a “tarball” (named for the .tar file, which bundles files together) on some self-hosted, stand-alone website. Developers used mailing lists to communicate and collaborate. And every project managed its contributions a little bit differently. Much like visiting another country, if a developer wanted to contribute, they had to get up to speed on the local customs first.
在没有一个事实上的代码托管平台之前,大多数开放源代码都是以 "tarball"(以.tar文件命名,它将文件捆绑在一起)的形式发布在一些自我托管的独立网站上。开发人员使用邮件列表进行交流和合作。每个项目对其贡献的管理都有一点不同。就像访问另一个国家一样,如果一个开发者想做出贡献,他们必须先了解当地的习俗。
Developers use version control to track and synchronize their changes, which is particularly important when there are multiple people, many of whom are strangers, working on the same code, in different time zones around the world. So if Alice makes changes to the same line of code as Bob, version control helps developers reconcile those differences and keep them organized without breaking any code.
开发人员使用版本控制来跟踪和同步他们的修改,当有多个人(其中许多人是陌生人)在世界各地的不同时区从事相同的代码时,这一点尤其重要。因此,如果Alice对Bob的同一行代码进行了修改,版本控制可以帮助开发者调和这些差异,并在不破坏任何代码的情况下使其保持有序。
But Git, the most popular version control system today, was only released in 2005. Before that, developers primarily used centralized version control systems, such as Subversion or CVS, if they used version control at all. These systems weren’t designed for decentralized collaboration at scale.
但Git,当今最流行的版本控制系统,在2005年才发布。在此之前,开发者如果使用版本控制,主要是使用集中式的版本控制系统,如Subversion或CVS。这些系统并不是为大规模的分散协作而设计的。