2.软件的秘诀

尽管有标题,但“秘密调味料”实际上与使软件生态系统如此强大的功能完全相反。

软件是一种数字化的事物,随着互联网现在已经覆盖了数十亿人,在数字化事物上进行共享和协作变得越来越可行。 服务器存储很便宜,发送字节和位也很便宜,而在许多类型的软件上需要做的就是一台计算机,这是令人惊讶的数量。

自软件诞生之初,许多开发人员就采用了共享和协作的文化。 开发人员通常会使用“库”,即预先编写的代码行,它们可以执行特定的功能并且可以集成到更大的程序中。

作为机械工程师,最好的类比可能是各种机器组件的标准-如果我想制造一台可以滚动的东西,我可以简单地廉价地购买一个滚珠轴承,并轻松地将其集成到我的设计中,尽管事实上如果我必须从头开始设计和制造它,那实际上是一个非常复杂的部分。 滚珠轴承由各种公司制造,而最常用的尺寸基本上是商品,因为它们是如此普遍,以至于它们被大量制造以至于很容易获得。

现在,非品牌的球轴承可能很便宜,但它不是免费的,主要是因为在材料,制造和分销方面仍然存在一定的成本。 某些与非品牌版本等效的品牌滚珠轴承价格更高,但同时也保证了彻底的质量控制流程,以确保每个轴承都将始终如一地工作。

在软件中,还有各种“品牌”可以使程序在同一平台上执行相同的功能。 但是,它很快变得更加抽象:例如,Linux和Windows都是操作系统,尽管它们在功能上并不等效,但是它们在许多方面都达到了相同的目的。

现在,在这里,软件和硬件之间出现了一个有趣的区别:Linux实际上是完全开源的,并且对于那些希望深入研究源代码的人来说很容易进行编辑。 编译后,Linux操作系统的功能将类似于Windows操作系统,但是随着时间的推移,它们的开发和发展方式存在固有的差异。

在硬件世界中,这等同于拥有某家公司的滚珠轴承,该滚珠轴承的专有设计无法轻易提供给他人(与Windows等效),并且具有一种滚珠轴承的开放式设计,用户可以自由地进行试验使用该设计并将其用作开发新类型的基准:更改材料,尺寸,球数或添加法兰或其他功能,使其更容易地融入其他设计中(相当于Linux)。

“开源滚珠轴承”的问题在于制造方面。 “制造”一个稍微不同的Linux副本非常容易(至少对于前端用户而言)—更改计算机上的一些数字文本,并且在编译软件时会进行更改。 另一方面,制造球轴承需要广泛的供应链:它需要正确的原材料,以正确的方式加工以达到正确的公差,并经过精心组装,包装和运输。

为了获得滚珠轴承,这些必须在世界各地发生的事件链几乎不像软件那样灵活。 本质上,大多数软件的“制造”都是自动化的:计算机和网络的抽象程度很高,以至于只需很少的知识即可修改软件的简单部分并将其用于稍有不同的应用程序。 无需人工参与此过程:只需单击几次键盘,即可自动运行计算能力,带宽和存储。

但是,硬件改变了我们所使用的软件的世界。首先,诸如CAD软件之类的东西可以轻松,准确地表示物理事物,使我们在设计和操作模拟硬件时能够灵活地使用数字程序。 。 我们可以轻松地使用各种工具和编程语言来生成CAD模型,这些模型等同于物理事物,并且只要我们处于数字领域,我们就拥有软件的所有优势。

当然,必须考虑某些事项:仅仅因为某些东西可以出现在屏幕上并不意味着它就有机会成为真实的东西。 话虽如此,已经使许多使规则在现实世界中可行的“规则”已经得到了很好的定义,并且可以很简单地以不同的方式对其进行评估。

因此,我认为可以肯定地说,对于像滚珠轴承这样的简单对象,使用软件和数学模型来制作“参数化轴承”,其功能与我之前提到的廉价滚珠轴承一样,但是在哪里可以输入所需的球轴承尺寸,并自动生成CAD模型。

这本身是非常令人印象深刻的,并可能导致类似于开放源码软件社区中所见的协作实践,并且人们在各种平台上出于各种目的共享设计在一定程度上已经做到了。

但是,现代技术似乎使我们更接近软件当前正在享受的“易于部署”。 像简单的3D打印一样已经存在的东西使我们能够制造由各种聚合物组成的简单组件,并具有相当大的几何自由度。

这里的关键点是计算机驱动的物理设计生成与使用3D打印机等技术的自动物理实现之间的联系。 这基本上消除了以前的供应链问题,并允许在一定范围内明确定义的参数(构建体积,容许应力,工作温度,公差等)内的任何给定设计在软件中自由生成,而几乎不需要花任何时间实现用户的努力。

现在,在这种情况下,滚珠轴承是一个特别糟糕的例子,因为我们离制造具有与当前技术非常便宜的性能类似的性能特征的全金属滚珠轴承还很遥远。 但是,从某种意义上讲,这等效于我之前提到的软件库,其他人为系统提供某些“组件”,然后您填补了空白。

可以数字化制造的所有硬件似乎都将启用易于改造的设计的这些新“规则”。 3D打印只是一个例子,另一种非常普遍且高度自动化的过程是PCB制造,在许多情况下,还包括将组件放置和焊接到PCB上的过程。

当前,大多数人仍在使用PCB服务,这会导致从数字到物理的转换过程有所延迟,但至少通常是非常便宜的,这再次为电子设计和开发中的协作开辟了新的令人兴奋的可能性硬件。

任何数字制造过程都基本上类似于软件中使用的编译器,该工具采用某种设计(无论是带有代码的文档还是3D模型),并将其转变为可用的工具。 在最长的时间内,将硬件编译到现实世界中一直非常耗费资源,但是这种情况似乎正在迅速改变。

我要说的基本内容是,软件世界非常依赖于开源协作和共享。 使之成为现实的工具具有在硬件领域开发的等效工具,这开辟了超越标准而进入包含各种功能并可修改并实现为各种设计的“硬件库”的可能性。

RepRap项目就是一个很好的例子,并且因为它体现了许多重要原则,所以我经常描述一个例子(在这里阅读有关我的想法的更多信息)。 在这里,成千上万的人参与了开发和故障排除,例如,对各种设计的挤出机进行了迭代,并将其实施为成千上万种不同的3D打印机设计,其中许多此时可在互联网上免费获得。

RepRap打印机经常严重依赖3D打印的塑料零件,这使其特别适合本文前面讨论的那种开发。 他们拥有一堆3D打印机目前无法制造的东西,这些东西对可以完成的工作设置了一定的限制,但是通过对这些“维生素”进行细微改动,并对那些易于数字化制造的零件进行较大的改动,可以实现许多不同的功能。出现了具有不同价格,打印质量和功能的设计。

很难想象确切的实现方式将是跨多个行业的大规模硬件协作的最佳选择,但是每天都在取得进步,使其变得更加可行,我坚信这可以是依靠昂贵且难以获得的替代方案。专有的解决方案,解决了我们今天在各种环境中遇到的大量问题。