软件能定义汽车吗?
一些存在漏洞的理由
当软件定义汽车已经妇孺皆知,一个灵魂拷问却始终困扰着我:
软件真的能定义汽车吗?
这一问题的结论也许并不重要,但通过刨根问底,有助于我们更好的理解汽车软件,更理性的看待这个时代。支持软件能定义汽车的理由,最常出现的是以下三种,它们似乎都存在不妥之处:
观点一:汽车和几年前的手机发展相似,如今手机硬件同质化严重,竞争力主要来自软件生态;所以几年后的汽车也会硬件标准化,并且软件通过与标准化硬件的解耦,成为汽车竞争力的决定性因素。
观点一的漏洞:这一观点相当主流。我们姑且不谈汽车会不会成为大手机,但手机硬件真的已经同质化了吗?那为何苹果、三星、华为、小米、OPPO等头部手机厂都在自研芯片,又为何华为手机会被美国卡脖子?当今全球的手机都在使用App Store及Google play两个高度同质化的软件生态,为什么消费者仍然愿意花近十倍的价格购买苹果、华为等高端机?如果我们看比手机历史更久的计算机行业,直到今日CPU、内存、显卡乃至轻量化材料等硬件仍是高端PC机的差异化卖点。
事实上,早在X86架构出现后,计算机领域的软硬件就以之为界出现解耦之势,但此后硬件和软件始终在交错发展。硬件领先时软件成为发展主旋律,随后一段时间内,在消费者需求带动下软件逐渐复杂化,硬件资源又成为了瓶颈。如今哪怕摩尔定律接近失效,头部PC企业仍未停止在硬件设计上的投入。似乎从没出现先把硬件发展到头,再靠软件定义产品的趋势。
计算机行业尚且如此,汽车行业过犹不及。无论是自动驾驶的线控技术和芯片技术、路车协同的MEC/RSU等,都有大量与软件算法无关的基础性问题尚未解决,类似计算机领域的软硬件交错前行甚至还未开始。而如果硬件的同质化难以发生,那软硬件解耦似乎就更难推动软件定义汽车了。解耦后的软硬件充其量只能在时间上实现同步开发,并不代表电子/机械硬件必须围绕软件来定义。诚然,软件在满足消费者需求上更灵活,但失败的代价也比硬件更小,硬件很难仅为了一个未经市场证明的软件/算法就去投入重资源进行升级、配合其批产。所以,与其说软件定义了汽车,还不如说功能定义了汽车,软硬件齐头并进将功能实现。
观点二:特斯拉开创了软件商品化的先河,未来依托于面向服务架构的汽车付费软件、订阅生态将是车企的核心竞争力。
观点二的漏洞:这一观点随着近年来SOA架构的落地愈发流行。持有这一观点的人常会举苹果靠软件生态战胜诺基亚的例子,并认为特斯拉是下一个苹果,如果传统车企不效仿就会像诺基亚一样被淘汰。但首先,苹果靠软件生态战胜诺基亚到底是不是事实就值得商榷。如果回看2007-2011年间的新闻和智能手机出货量变化,会发现苹果和Android软件生态也许只是压死诺基亚的最后一根稻草。在2007年App Store还未上架时,初代iPhone的问世就已经凭借简洁的外观、优秀的人机交互设计、高灵敏度大触屏、高效上网体验打得诺基亚节节败退,这些KSF似乎与软件关系不大。
其次,尽管FSD付费软件为特斯拉创造了相当的利润,但未必是吸引消费者购车的最关键要素。笔者身为特斯拉车主,购车时也同样看重其同等价格下的续航、快充、充电桩部署、造型、加速度、高灵敏中控大屏及并不鸡肋的人机交互设计,而支撑着这些优势的除了软件,行业领先的HW3.0、行业首个量产的SiC功率半导体、大电流超充等硬件、乃至业内一流的自动化和零库存管理等先进制造能力也同样关键。
再次,尽管SOA大幅提升了汽车软件的可拓展性,但在笔者看来,汽车软件未必真的会形成诸如App Store一样繁荣的生态。毕竟在另一个与人命相关的医药领域,一直在采用强制临床实验、严格准入上市、开处方购药的全周期集权模式,从未形成诸如手机软件般依靠SDK散养繁殖的高度开放生态。所以,不可否认,软件商品化及其背后的SOA架构已经成为了新时代车企的必修课,但它很难将汽车软件生态推动到手机软件生态般的丰富度;而就算汽车软件生态达到了这一丰富度,iPhone和特斯拉的例子都启发我们,也许仅靠繁荣开放的软件生态,仍难以定义汽车。
观点三:汽车的代码长度已经超过了其他消费电子品,因此汽车已经是靠软件驱动的商品了。
观点三的漏洞:这一观点从技术角度看漏洞显而易见,但因常被引用且具有一定误导性,有必要做个澄清。汽车代码规模庞大是事实,例如发动机控制代码算上xml文件已达700万行,远超普通的计算机软件。但这种观点并没有考虑到代码效率问题。
汽车的嵌入式软件要求硬实时性,对操作系统的运行时间开销要求严格,这意味着每个任务都有明确且个性的激活时刻和截止时刻,因而任务间的调度设计也必须逐一考虑到每两个任务在时间上的相互关系,这种相互关系往往因产品功能及硬件个性而异,因此软件可复用的库较少,通常需要采取近乎枚举法的编程方式,效率显然不高。而计算机软件多采用解释型语言,大量功能场景可以复用现成的库,引用库的代码仅需寥寥数笔且不需要像嵌入式系统的编译型语言一样转化为繁琐的C代码,即可实现强大功能。这就造成了软件驱动汽车发展的假象。汽车软件代码产出多,但并不代表软件对汽车有决定性。
总结:
诸如此类的观点还有很多,这些观点确实说明软件在汽车中变得更加重要了,但似乎并不能说明软件能定义汽车。所以,软件定义汽车的本质到底是什么?想要厘清这笔账,我们有必要回到最初的起点。