这种开源软件“业余化、平民化”的趋势也有明显的好处,如下:
1. 让软件变得更易用
不能做到“傻瓜易用”(fit and finish)一直是开源软件的一个问题。这类软件的说明文档和网页设计通常都是乱糟糟的,产品的可用性也很差——尤其是跟很多专有的同类产品相比。
但现在,因为贡献门槛的逐步降低,那些对技术不那么在行的用户就可将上述的几个方面逐渐优化,以方便自己对这类软件的使用。而这就意味着那些原本诡异的报错消息现在变得越来越像人话,简单修改一两行 CSS 就会让网页在一些更老的浏览器和手机上渲染。
所以说,在新的开源文化下,人们希望自己不用成为技术专家就可方便地使用技术,“易用性”获得了全所未有的关注和重视。
2. 规避过度“工程化”
工程师们往往乐于接受挑战,要是能给他们更多的机会解决问题,他们就越有可能想到聪明的解决方案——假如这类解决方案的终端消费者跟这些工程师一样,对技术有很好的理解,又会像他们一样因为有更聪明的方法解决老问题而激动不已,那一切都没问题。
但问题是,业余爱好者只喜欢那些在他们眼中理所当然、显而易见的解决方案,一旦某个问题已经得到解决,他们就很少会回过头去重新审视这个问题。因为业余爱好者只会利用那些最显而易见的解决方案做东西,这就迫使开发人员不得不去寻找简单而接地气的解决方案来解决难题。
3. 支持一个更大的生态系统
以我自己频繁使用的 Node.js 为例,这种编程语言定义了足够简单的语法结构(patterns),使得人人都可以编写独立的小型函数库,并按自己的意愿发布。在这个生态系统中,每个人都可以独立享受当中的价值,无需协作。这就跟一些大型、垂直、拥有大量工具和功能、需要在特定环境下(比如说 Cocoa 和 iOS)使用的栈(比如像 ember, Dojo,YUI 这样的集成的插件系统)形成了鲜明对比。
但在开源环境下,如之前提到的 Node.js,我们就可以看到一些更小的 API 空间轻松使用该生态系统中的其他资源,避开协调(比如用 jQuery 或 node 的标准回调模式来回调 API)。开发者与开发者、库与库之间的协调越少,就越利于我们创造价值。
总结下来就是,GitHub 让新一代的年轻人更方便地协作、创造和生产。很多开发者可能会因为过去那种正规开源文化(如“委员会圈子”、需要纠结使用哪种授权模式)的消弭而大唱挽歌——但开源的未来已经掌握在那群无所顾忌、大步向前的新一代人手中。
从这个角度来说,GitHub 不仅仅是一个工具,它在创造一种全新的文化。