开源硬件要复制软件开源的成功? 难!
扫描二维码
随时随地手机看文章
开源不算新鲜事,但目前还是属于一种小众文化,开源硬件在整个开源领域更是小众里的小众。而随着智能硬件的兴起,开源硬件也逐渐成为一个无法忽视的重要一环。由于软件开源在过去数十年取得了不凡的成绩,因此,对于开源硬件,很多人也期盼能够复制开源软件的成功。
笔者认为要复制开源软件的成功模式可以说是很有难度的。因为硬件工程相对于软件工程有着本质区别,硬件的开源也远比软件复杂。需要克服入行门槛高、成本高、设计非标准化等多方问题,这些问题短期内还不能被解决。
首先,入行门槛上硬件要求更高。在软件行业发达的当下,具有良好逻辑思维能力的人,只要感兴趣,有一台可以上网的电脑,甚至可以就通过互联网获得足够的教育,就能成为一名软件开发人员。这使得现在的程序员数量蹭蹭上升,几个程序员聚集在一起就可以合作一些有趣的事情。而在硬件方面,大多需要科班出身的专业人员进行设计,自学成才的硬件电子设计工程师比较少。一名合格的硬件设计工程师,需要学习大量物理和电子方面的基础理论知识,而且需要使用各种仪器进行实践工作,这其中的时间和投资成本比软件要高得多。硬件工程师的数量相对就比较少一些,加上协作的难度,要搞硬件的聚到一起做风险较高的开源工作就更困难。
为什么说硬件开源协作困难呢?这就涉及到模块化、标准化问题。我们知道软件产品有完整定义,可以随时调整的输入输出。也就是说一个软件模块编写运行测试通过,那么这个模块就可以被视作黑盒子,被另外一个完整定义的模块调用运行。只要软件之间的接口不变,那么各个模块之间的逻辑就不会发生变化,这就使得无论开发人员身处哪里,都可以仅仅通过定义好的接口来互相合作。
在硬件领域就不存在只要知道接口就可以加入设计使用的硬件。硬件的选型就不是简单的事情,即使工作很多年的硬件设计师,在选用从未使用过的硬件设备时,也很有可能在接口电压或是时钟频率的匹配这种“小问题”上栽跟头。硬件设计师们没有强大的IDE,没有美好的编译器和解释器,软件仿真也只能作为参考。硬件设计唯一能依靠的就是扎实的理论基础和反复的实验检测。像是“一个中国工程师和一个美国工程师远距离合作开发出来一个信号采集器”这种在开源软件看来很正常的合作模式在硬件领域是不太可能发生的。硬件设计师们必须坐在一起跑仿真,测芯片,焊板子。
最重要的、也是市场化最关注的成本问题。在软件开发过程中,一旦某个模块的接口需要改变,那么软件工程师所要做的就是坐在电脑前修改代码然后使用短信,电话,email或其他通讯工具通知所有需要使用这个模块的人,大家一起调试通过后修改就完成了。因此开发成本基本上就是人力成本。发布软件的成本那就更低了,有了互联网,基本都是零成本了。
硬件开发则是相反的,当硬件工程师千辛万苦跑了无数仿真做出来的电路送到工厂,花了不少金钱制作出来之后,示波器,逻辑分析和频谱分析仪会用严酷的事实告诉你:这个东西不对。那么修改成本那又是如流水般,几万、几十万都不算什么事儿。如果产品顺产,后期的仓储、销售、售后等环节更是难以预计。开发人员的成本只是占很少部分。
因此,虽然现在像Arduino、树莓派等解决方案取得了一些突破,但是总体而言,要取得开源软件那样的成功,硬件还需要一个更好的开源模式。