欢迎回来,各位,这是我的 六度 专栏的第三期。感谢大家对过去两期的精彩支持。和往常一样,请在评论中留下您的反馈,如果您有希望我深入探讨的主题,请随时给我发送电子邮件。
在本月的专栏中,我想深入探讨我认为重要的一个话题:开源如何为新一代创新者提供护栏。
流行语,是吗?也许吧。但请耐心听我说,各位...
当我年轻、愚蠢、脑袋空空的时候,我迷上了电脑。我感到非常幸运,我的父母给我买了一台 Commodore 64,我用它玩游戏,并学会了用 BASIC 编程。随着我对计算机的兴趣越来越浓厚,我最终得到了一台旧电脑,开始学习 C 语言,后来又接触了 Linux 和开源。
从小我就对小玩意和电脑着迷,但作为一个身无分文的青少年,我永远买不起新硬件。软件是另一种东西:它是免费的,当它更新时,我也可以免费获得新版本。因此,我基本上变成了一个软件迷,不仅仅是因为我喜欢软件,而是因为我只能接触到软件。
现在快进到 2015 年。头发没了,我有一个 2 岁的儿子,名叫 Jack。像大多数父母一样,我会思考他将有哪些机会来探索他的创造力和兴趣,与我的成长岁月相比,这将是完全不同的情况。
当 Jack 长到我这个年纪时,他将拥有丰富的技术资源。他将能够像我们今天一样使用和创造开源,但他也将能够访问大量用于永远在线的 Web 服务的 API。他将能够通过云端指挥无限的计算能力(使人工智能、大数据和机器学习等事物更容易访问)。他将能够访问强大的低成本计算和数百种不同的传感器。他将能够下载、创建和 3D 打印各种不同材料的物品。他将能够接触到机器人技术、虚拟现实、增强现实和计算机视觉。
为了学习和探索这一系列技术,他将拥有一个包含数亿个视频、书籍、文章、教程等的图书馆——所有这些都可以在网上获得。他将接触到无处不在的教育、支持和数据,并且他将能够通过众筹和股权众筹为他的想法提供资金。
简而言之,虽然我因互联网和开源的可用性而感到赋能,但 Jack 将因工具的丰富供应而获得赋能——不仅仅是软件,而是构建整个产品、业务和网络所需的一切。他将能够更轻松地将他的作品送到他人手中。
这不仅为令人难以置信的创新铺平了道路,而且还允许 创造 文化更早地开始。我们今天已经可以看到这种迹象,例如 Jack Andraka,他在 15 岁时创建了一种可以检测肺癌、卵巢癌和胰腺癌早期阶段的测试。他主要通过使用简陋的工具和使用 Google 进行广泛研究来弄清楚如何做到这一点。甚至我们 6 岁的邻居也在参与,用 Lego Mindstorms 构建机器人。
一个新世界
在这个由硬件、软件、印刷品、云和其他部分组成的异构项目的新世界中,我们将看到各种不同的工具,用于构建想法和项目的不同部分。我们有 GitHub 用于围绕代码进行协作,Thingiverse 用于 3D 模型,Trello 用于项目管理和协调,Moqups 和 Balsamiq 用于用户界面设计,用于构建驱动程序和与传感器集成的特定工具包等等。
虽然这些工具中的每一个都有自己的社区,但在围绕这些异构项目进行协作方面,事情可能会变得有趣,这些项目包括不同类型的内容,无论是软件、硬件设计、云工作负载还是其他内容。
例如,想象一下我想制造一架无人机。我将创建和使用开源硬件,3D 打印框架,使用现成的电子产品,用开源软件驱动它,并在其中加入其他部件。
理想情况下,我想建立一个社区,让程序员、硬件黑客、航空科学家和其他人都可以来帮助改进和完善无人机。
这就引出了一个问题,我是否可以像创建一个开源社区来构建软件一样,创建一个社区来创建产品?
开源产品
如果我们能弄清楚如何做到这一点,机会可能是巨大的。
正如我们许多人从开源中学到的那样,编码很有趣,但社交编码更有趣,也更有回报。今天,有许多人在自己的车库里自己制造东西,但试想一下,与世界各地的其他人合作制造无人机、汽车、小工具、手表或其他任何东西会是多么令人鼓舞。这将有效地将开源的精神扩展到软件之外。
想象一下开源产品的概念;您可以下载项目,以一组蓝图的形式,您可以将这些蓝图发送到您的 3D 打印机、您的硬件、您的编译器以及您可以用来组装产品的物理蓝图。在这些蓝图中,一切都将完全开放:如果您能看到它,您就可以对其进行黑客攻击。
想象一下,每个开源产品都有一个社区,您可以像加入开源社区一样加入该社区,在那里您可以 Fork 这些蓝图、进行实验,然后贡献您的改进和修复。
就像开源催生了数百万个职业和数千家公司一样,想象一下将开放性应用于产品的机会。它可能会引发一场革命,彻底改变我们概念化、构建和共享事物的方式,以及我们实验和创新以突破科学技术边界的方式。
开源灵感
现在,在异构项目中进行协作并非易事——存在许多挑战。如何以一种使其易于协作和分发的方式将软件、硬件设计和其他材料捆绑在一起?我们需要哪些开放标准来确保普遍访问?我们如何将分布式软件开发的相同原则应用于硬件和其他领域?我们如何弥合软件和硬件黑客截然不同的文化?
我一直认为开源是社会创新的地方。当我们能够共同构建技术时,我们可以探索、实验并做出伟大的事情。这就是为什么开源运行着世界的基础设施以及我们家庭和口袋中的许多设备。
开源之所以有效,部分原因是我们弄清楚了如何有效地协同工作以改进和完善技术。我们经常谈论开源世界中的社区,但我认为我们经常忘记或没有意识到我们的社区有多么 奇怪。
我们都熟悉大多数开源社区中的常见部分:版本控制系统、错误跟踪器、Wiki、邮件列表、定期发布计划、会议等等。世界上大多数其他社区,例如当地读书俱乐部、粉丝网站、大会、游戏社区等等,根本不像我们这样进行任何形式的协作。
我们已经开创了一种真正独特的工作方式。
因此,我相信应用于软件的开源可以成为我们弄清楚如何为这些异构项目构建社区的良好起点。我们将需要面对一些技术和社会挑战,但我们有机会让开源激励全新的世代,并构建一些令人难以置信的东西。
后续步骤
那么我们该如何做呢?
嗯,我自然没有所有的答案,但我认为有一些明确的起点。
首先,我们需要创建一个蓝图包的前提。就像我可以从 Git 下载一个分支或一个包含一些代码的 tarball 以及完整的构建系统一样,我们希望能够下载一个包含完整软件、硬件设计以及如何创建开源产品的单个分支或 tarball。
其次,我们需要确定我们需要开放标准的地方。例如,当我下载此蓝图时,理想情况下,我想确保尽可能多的人可以构建该产品。我们如何在多台不同的 3D 打印机上打印?我们如何确保我们可以尝试和实验不同的硬件组件(例如,在相同尺寸的 3D 打印框架中尝试不同的电机)?随着我们越来越自动化制造,我们如何确保我们的蓝图适用于新的制造工艺?
第三,我们需要弄清楚我们如何协作和改进这些项目的不同部分。例如,如果有人改进了无人机的 3D 打印部件,他们如何 Fork 蓝图、提交更改、进行审核并将它们合并到项目中?另一个问题可能与自动化测试有关:在制造实体产品时,我们并非总能负担得起构建和测试新物理硬件,然后让它崩溃和烧毁,那么我们如何才能对硬件进行单元测试或在虚拟环境中进行测试?我们可以从这些测试中获得什么样的测量和指标,以与更广泛的社区分享,从而激发进一步的讨论以改进项目?
最后,我们将希望鼓励开放开发和教育的文化。这在开源中非常普遍,但在一些硬件世界中,开放性不太常见。我们将希望分享和传播知识,以了解人们如何参与这些社区,并鼓励更多开源产品社区形成并开展有趣的工作。
我相信开源为我们提供了关于我们如何协作的核心社会原则的坚实基础:共享格式、开放标准、贡献和审查材料的方法以及讨论和计划工作。如果我们采用这些核心原则并将其与这个新的异构世界一起发展,我们就可以真正释放世界各地的潜力。
与我的所有专栏一样,这只是对话的开始。我已经说得够多了,我想听听您的想法。您认为我们如何创建一个世界,让我们能够像开源软件项目一样开放和引人入胜地构建产品和发明?我期待看到您的想法。
分隔线
本文是 Jono Bacon 的 “六度” 专栏的一部分,他在该专栏中分享了他对开源文化、社区和趋势的看法和观点。
4 条评论