GitHub 塑造了怎样的新式开源文化?看看十几年的开源控、Getable 的 CTO Mikeal Rogers 是怎么说的吧:
原文:http://www.iteye.com/news/27433
例如,芝加哥前阵子就把该市的街道路线、建筑面积、自行车道路线、步行街路线和自行车车架位置数据集发布在 Github,并邀请大众帮助改进数据精度,修改数据。另外,有些人则将家装项目放到了 GitHub 上,有家律师事务所也在前几天宣布,他们会将早期创业公司的融资相关法律文件全放到上面——而在去年,另有一个神人甚至将整个德国的法律全搬到了 GitHub 上。当然了,GitHub 现在依然是那些用 Node.js 做 AR 无人机、或者是用 jQuery 做网站的程序员光顾的地方。
“去中心化”的一场革命
大部分人听到开源的第一反应是“民主、分散、和平等”,想到所有人一起做东西,做出来给所有人用。
但实际情况并非如此。大部分的开源软件都是由那些享有一定特权的一小撮人创建并维护的——即专业的开发人员,而这些人又只会跟同个圈子、同个水平的一帮人互动(后者与前者尽管很像,但又足够不同到可持相异观点供双方争论)。
在 GitHub 出来以前,我会花很多时间去思考、讨论如何最好地管理开源项目,因为这类项目的协同成本太高了。这个成本高到什么程度呢?当一个项目做得不错,又发展成一个规模不小的社区时,我们发现,最好的办法是让项目继续庞大臃肿下去,而不是拆分成规模更小的项目。但这里面就会有这样一个问题,项目变得越大越复杂,个体就越难对其作出贡献。所以就不得不有特定的一群会员,或者说所谓的“委员会成员”,被任命专门管理和生产项目,这也经常导致项目实际的消费人群和项目创作者之间的信息裂缝和信息断层。
但 GitHub 的“去中心化”开源模式则让这种裂缝渐渐弥合,让开源不再聚焦“项目”本身,而是越发彰显个体特色。此话怎讲?
GitHub 上的整个工作流程设计相当个人化。每个 GitHub 用户都有一个自己的账号,而他们发布的所有资料都会隶属于这个层级以下。假如某些人需要对某个项目做出修复,他们只要“fork”(将项目分叉),即在自己的名下拷贝一个原项目的副本,进行相应的加工即可。
这种工作流程是非常强大的:因为它鼓励了个体用户去对一个他人已创建的项目做修修补补,而他们对该项目的所有权和控制权丝毫不亚于一个由自己最先创建的项目。在这种新式的开源文化下,所有用户都能拥有自己的身份和定位。而 GitHub 实际上也已经成为互联网上协作式内容生产(peer-based production)最大的身份提供商,不仅仅是在代码方面。
我自己就做了十多年的开源项目贡献者,但现在的开源文化跟当年的一个很大不同是——我不再是某个项目的“会员”——而仅仅是某个项目的使用者。使用者的一个很大特点就是,人人都可为项目贡献“一点点”自己的力量。在我消费、使用的各种各样的小项目中,我就会跟项目维护者有一些更小层面的互动,而且保持一周几次。
但更大的一种趋势其实来自另一个方向:作为我自己的项目的发起者,现在我会收到有很多闻所未闻的人发来的关于这些项目的小代码。
“去中心化”催生的民主
GitHub 的第一版在一件事情上做得很好:他们让个体发布代码——而非雪藏代码——变得比过去简单很多。这也使得很多很有影响力的项目,比如说 Ruby on Rails 的项目,可以很快地迁移到 GitHub 上来。
但接下来发生的事情实际更有趣:人们开始在 GitHub 上发布除代码以外的其他东西,几乎无所不包……不夸张地说,在 GitHub 上推代码就变得跟发微博一样简单。通过降低用户的进入成本、并让用户在开源项目中更方便地展开协作、贡献力量,GitHub 将“协作式生产”(peer production)的范围扩大到普通用户。
所以,GitHub 式的开源文化降低了所有人的“创造门槛”——今天,对于那些富有创造力但又不具备深度技术知识的人来说,他们可以使用各类简单又易于理解的软件实现创意。而在过去,他们必须、而且只能具备深度的技术知识以参与到大型开源项目中。
而平台上发起者、贡献者和消费者这三类身份的日益弥合也使得那些更轻巧、更易懂的项目逐渐获得更高的关注度——也催生了一批长尾的内容贡献。
这种开源软件“业余化、平民化”的趋势也有明显的好处,如下:
1. 让软件变得更易用
不能做到“傻瓜易用”(fit and finish)一直是开源软件的一个问题。这类软件的说明文档和网页设计通常都是乱糟糟的,产品的可用性也很差——尤其是跟很多专有的同类产品相比。
但现在,因为贡献门槛的逐步降低,那些对技术不那么在行的用户就可将上述的几个方面逐渐优化,以方便自己对这类软件的使用。而这就意味着那些原本诡异的报错消息现在变得越来越像人话,单行的 CSS(风格样式表,用于网页风格设计)也在这些人的修改之后可允许网页在一些更老的浏览器和手机上渲染。
所以说,在新的开源文化下,人们希望自己不用成为技术专家就可方便地使用技术,“易用性”获得了全所未有的关注和重视。
2. 规避过度“工程化”
工程师们往往乐于接受挑战,要是能给他们更多的机会解决问题,他们就越有可能想到聪明的解决方案——假如这类解决方案的终端消费者跟这些工程师一样,对技术有很好的理解,又会像他们一样因为有更聪明的方法解决老问题而激动不已,那一切都没问题。
但问题是,业余爱好者只喜欢那些在他们眼中理所当然、显而易见的解决方案,一旦某个问题已经得到解决,他们就很少会回过头去重新审视这个问题。因为业余爱好者只会利用那些最显而易见的坚决方案做东西,这就迫使开发人员不得不去寻找简单而接地气的解决方案来解决难题。
3. 支持一个更大的生态系统
以我自己频繁使用的 Node.js 为例,这种编程语言定义了足够简单的样式(patterns),使得人人都可以编写独立的小型函数库,并按自己的意愿发布。在这个生态系统中,每个人都可以独立享受当中的价值,无需协作。这就跟一些大型、垂直、拥有大量工具和功能、需要在特定环境下使用(比如说 Cocoa 和 iOS)的栈(比如像 ember, Dojo,YUI 这样的集成的插件系统)形成了鲜明对比。
但在开源环境下,比如说 GitHub 上的 Node.js,我们就可以看到一些更小的 API 空间轻松使用该生态系统中的其他资源,避开协调(比如用 jQuery 或 node 的标准回调模式来回调 API)。开发者与开发者、库与库之间的协调越少,就越利于我们创造价值。
总结下来就是,GitHub 让新一代的年轻人更方便地协作、创造和生产。很多开发者可能会因为过去那种正规开源文化——比如说“委员会圈子”、在那纠结使用哪种授权模式——的消弭而大唱挽歌——但开源的未来已经掌握在那群无所顾忌、大步向前的新一代人手中。
从这个角度来说,GitHub 不仅仅是一个工具,它在创造一种全新的文化。
原文:http://www.iteye.com/news/27433
引用
GitHub 本来想做一个开源软件协作平台,结果做着做着就成了一个兼容并包、不仅仅是照顾程序员的平台。现在,这个平台也成了各类艺术家、建筑生产商、各大公司、甚至各大城市使用的平台。
例如,芝加哥前阵子就把该市的街道路线、建筑面积、自行车道路线、步行街路线和自行车车架位置数据集发布在 Github,并邀请大众帮助改进数据精度,修改数据。另外,有些人则将家装项目放到了 GitHub 上,有家律师事务所也在前几天宣布,他们会将早期创业公司的融资相关法律文件全放到上面——而在去年,另有一个神人甚至将整个德国的法律全搬到了 GitHub 上。当然了,GitHub 现在依然是那些用 Node.js 做 AR 无人机、或者是用 jQuery 做网站的程序员光顾的地方。
“去中心化”的一场革命
大部分人听到开源的第一反应是“民主、分散、和平等”,想到所有人一起做东西,做出来给所有人用。
但实际情况并非如此。大部分的开源软件都是由那些享有一定特权的一小撮人创建并维护的——即专业的开发人员,而这些人又只会跟同个圈子、同个水平的一帮人互动(后者与前者尽管很像,但又足够不同到可持相异观点供双方争论)。
在 GitHub 出来以前,我会花很多时间去思考、讨论如何最好地管理开源项目,因为这类项目的协同成本太高了。这个成本高到什么程度呢?当一个项目做得不错,又发展成一个规模不小的社区时,我们发现,最好的办法是让项目继续庞大臃肿下去,而不是拆分成规模更小的项目。但这里面就会有这样一个问题,项目变得越大越复杂,个体就越难对其作出贡献。所以就不得不有特定的一群会员,或者说所谓的“委员会成员”,被任命专门管理和生产项目,这也经常导致项目实际的消费人群和项目创作者之间的信息裂缝和信息断层。
但 GitHub 的“去中心化”开源模式则让这种裂缝渐渐弥合,让开源不再聚焦“项目”本身,而是越发彰显个体特色。此话怎讲?
GitHub 上的整个工作流程设计相当个人化。每个 GitHub 用户都有一个自己的账号,而他们发布的所有资料都会隶属于这个层级以下。假如某些人需要对某个项目做出修复,他们只要“fork”(将项目分叉),即在自己的名下拷贝一个原项目的副本,进行相应的加工即可。
这种工作流程是非常强大的:因为它鼓励了个体用户去对一个他人已创建的项目做修修补补,而他们对该项目的所有权和控制权丝毫不亚于一个由自己最先创建的项目。在这种新式的开源文化下,所有用户都能拥有自己的身份和定位。而 GitHub 实际上也已经成为互联网上协作式内容生产(peer-based production)最大的身份提供商,不仅仅是在代码方面。
我自己就做了十多年的开源项目贡献者,但现在的开源文化跟当年的一个很大不同是——我不再是某个项目的“会员”——而仅仅是某个项目的使用者。使用者的一个很大特点就是,人人都可为项目贡献“一点点”自己的力量。在我消费、使用的各种各样的小项目中,我就会跟项目维护者有一些更小层面的互动,而且保持一周几次。
但更大的一种趋势其实来自另一个方向:作为我自己的项目的发起者,现在我会收到有很多闻所未闻的人发来的关于这些项目的小代码。
“去中心化”催生的民主
GitHub 的第一版在一件事情上做得很好:他们让个体发布代码——而非雪藏代码——变得比过去简单很多。这也使得很多很有影响力的项目,比如说 Ruby on Rails 的项目,可以很快地迁移到 GitHub 上来。
但接下来发生的事情实际更有趣:人们开始在 GitHub 上发布除代码以外的其他东西,几乎无所不包……不夸张地说,在 GitHub 上推代码就变得跟发微博一样简单。通过降低用户的进入成本、并让用户在开源项目中更方便地展开协作、贡献力量,GitHub 将“协作式生产”(peer production)的范围扩大到普通用户。
所以,GitHub 式的开源文化降低了所有人的“创造门槛”——今天,对于那些富有创造力但又不具备深度技术知识的人来说,他们可以使用各类简单又易于理解的软件实现创意。而在过去,他们必须、而且只能具备深度的技术知识以参与到大型开源项目中。
而平台上发起者、贡献者和消费者这三类身份的日益弥合也使得那些更轻巧、更易懂的项目逐渐获得更高的关注度——也催生了一批长尾的内容贡献。
这种开源软件“业余化、平民化”的趋势也有明显的好处,如下:
1. 让软件变得更易用
不能做到“傻瓜易用”(fit and finish)一直是开源软件的一个问题。这类软件的说明文档和网页设计通常都是乱糟糟的,产品的可用性也很差——尤其是跟很多专有的同类产品相比。
但现在,因为贡献门槛的逐步降低,那些对技术不那么在行的用户就可将上述的几个方面逐渐优化,以方便自己对这类软件的使用。而这就意味着那些原本诡异的报错消息现在变得越来越像人话,单行的 CSS(风格样式表,用于网页风格设计)也在这些人的修改之后可允许网页在一些更老的浏览器和手机上渲染。
所以说,在新的开源文化下,人们希望自己不用成为技术专家就可方便地使用技术,“易用性”获得了全所未有的关注和重视。
2. 规避过度“工程化”
工程师们往往乐于接受挑战,要是能给他们更多的机会解决问题,他们就越有可能想到聪明的解决方案——假如这类解决方案的终端消费者跟这些工程师一样,对技术有很好的理解,又会像他们一样因为有更聪明的方法解决老问题而激动不已,那一切都没问题。
但问题是,业余爱好者只喜欢那些在他们眼中理所当然、显而易见的解决方案,一旦某个问题已经得到解决,他们就很少会回过头去重新审视这个问题。因为业余爱好者只会利用那些最显而易见的坚决方案做东西,这就迫使开发人员不得不去寻找简单而接地气的解决方案来解决难题。
3. 支持一个更大的生态系统
以我自己频繁使用的 Node.js 为例,这种编程语言定义了足够简单的样式(patterns),使得人人都可以编写独立的小型函数库,并按自己的意愿发布。在这个生态系统中,每个人都可以独立享受当中的价值,无需协作。这就跟一些大型、垂直、拥有大量工具和功能、需要在特定环境下使用(比如说 Cocoa 和 iOS)的栈(比如像 ember, Dojo,YUI 这样的集成的插件系统)形成了鲜明对比。
但在开源环境下,比如说 GitHub 上的 Node.js,我们就可以看到一些更小的 API 空间轻松使用该生态系统中的其他资源,避开协调(比如用 jQuery 或 node 的标准回调模式来回调 API)。开发者与开发者、库与库之间的协调越少,就越利于我们创造价值。
总结下来就是,GitHub 让新一代的年轻人更方便地协作、创造和生产。很多开发者可能会因为过去那种正规开源文化——比如说“委员会圈子”、在那纠结使用哪种授权模式——的消弭而大唱挽歌——但开源的未来已经掌握在那群无所顾忌、大步向前的新一代人手中。
从这个角度来说,GitHub 不仅仅是一个工具,它在创造一种全新的文化。
相关推荐
教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...
Github Android客户端源代码,导入后Eclipse后可直接编译运行。是开源学习的好东西。
对于游戏爱好者来说,GitHub 上有许多有趣的开源游戏项目,能够让我们深入了解游戏开发的过程,甚至参与其中。以下是五个涵盖 C++, Java, JavaScript 和 Rust 语言的开源游戏项目,它们不仅好玩,还能帮助我们提升...
【标题】"github 开源中国项目" 开源中国社区是国内知名的开源技术平台,它汇集了大量优秀的开源项目,包括各种编程语言的库、框架、工具等。GitHub,则是全球最大的开源代码托管平台,吸引了无数开发者分享、协作...
【Qt开源框架与资源】 Qt 是一个跨平台的C++应用程序开发框架,广泛应用于桌面、移动设备和嵌入式系统的用户界面设计。它提供了一整套的库,包括图形渲染、网络通信、数据库访问等功能,使得开发者能够创建功能丰富...
【标签】:“github开源小游戏”表明该项目是基于GitHub平台的一个开源项目,主要关注的是小型游戏,尤其是那些已经不再被官方支持或者商业运营的小游戏。开源意味着代码公开,允许全球的开发者参与修复、改进或者...
GitHub上最火的40个Android开源项目源码,筛选了下,主要是把可以加到我们项目中的下了下来,这里有40个项目的描述,以及12个项目的源码,省的各位童鞋重复下载了,当然如果有童鞋需要其他的项目,我这里也给出了...
GitHub上开源仿微视音视频录制,可直接运行
0615_极智开发_解读github参与开源项目代码pr的方法
GitHub Desktop是由GitHub开发的完全免费且开源的可自定义的基于Electron的Git客户端应用程序,它允许你与GitHub和其他Git平台(包括Bitbucket和GitLab)进行交互。 它的特点包括漂亮的分区方法,可以轻松地检查带有...
前端开源库-github-basicGitHub基本的基本HTTPS接口到GitHub
开源项目SlidingMenu提供了最佳的实现:定制灵活、各种阴影和渐变以及动画的滑动效果都很不错。不过这是一个开源库,而不是一个完整的项目,要把它作为libary引入到你自己的工程里,简单配置一下就可以实现...
github 开源贡献指南中文版本
GitHub开源项目SlidingMenu的类库,导入之后可以直接使用 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9255829
gitHub是全球大型的开源社区之一,它提供了一个线上的代码托管服务,所以很多开源代码都会被托管到gitHub上。如果作为新时代的码农不知道这个就相当low了。 如果我们只是需要浏览或者下载源码的话,是不需要注册账户的...
《GitHub开源项目PhotoView:实现图片的自由缩放与平移》 在移动应用开发中,用户对于图片的查看体验有着越来越高的需求,包括图片的缩放和平移操作。为满足这种需求,开发者们通常会引入一些专门处理图片视图的库...
Below 可以在GitHub上找到的开源游戏和游戏相关项目的列表
Github模板 开源项目的一些基本模板 内容 自述文件 帮助您告诉其他人您的项目为何有用,他们可以如何使用您的项目以及如何使用它。 执照 为了使您的存储库真正是开源的,您需要对其进行许可,以便其他人可以自由使用...
GitHub 社区 SRM 是最重要的学生主导社区,在金奈 SRMIST 引领开源革命。 用 :heart_suit: 由您在的朋友提供。 :light_bulb: 项目描述 在金奈 SRMIST 率先发起开源革命的最重要的学生主导社区的主页。 :...
【标题】:GitHub仓库数据源的开源论坛客户端基于Flutter框架 这款开源论坛客户端的独特之处在于它利用了GitHub仓库作为其核心的数据源,提供了一个全新的交流平台。Flutter框架的使用为这款应用带来了诸多优势,...