为什么称 C++ 为汽车开发的未来趋势?

Blog
Author:
Joseph SibonyJoseph Sibony
Published On:
12月 1, 2022
Estimated reading time:
1 minute

近十几年来,技术不断进步,汽车驾驶体验比以往任何时候都要更加安全、舒适而高效。

普通现代汽车对代码的依赖程度比任何其他科技产品都要高,论及代码长度和复杂性,远超商用飞机和战斗机。

所有相应进步都有庞大代码库作为支撑,而代码库规模还在不断扩张。鉴于此,开发人员进行建造时需要花费更多时间,并且需要更强的计算能力和更多的处理资源能力。

在汽车开发运用中,C++ 是主流编程语言。乍看之下,似乎有悖常理。毕竟代码库不断扩张,依赖 C++ 来进行建造,所花费的时间要比使用某些其他语言的时间更长。

那么,在这样一个现代行业中,为什么 C++ 仍是标准语言呢?为什么开发人员如今普遍注重开发加速,却仍然使用 C++ 呢?

通过本文,我们将研究 C++ 成为汽车开发人员首选语言的原因、C++ 对汽车软件的益处,以及 C++ 成为行业未来趋势的原因。

C++ 在汽车开发中的历史

C++ 在汽车开发中的历史可以追溯到数十年前,其在编程方面的应用可谓底蕴深厚。最初,C 语言,即 C++ 的前身,是大多数汽车软件的标准语言,C++ 发明后,汽车开发自然会采用该语言。大约 40 年来,C++ 始终是行业标准语言。

汽车工业软件可靠性协会 (MISRA) 和汽车开放系统架构 (AUTOSAR) 在其编码指南中,反映了 C C++ 在行业中的主导地位。两种语言中,MISRA C++ 最为古老且最为常用,而 AUTOSAR C++ 指南由汽车软件专家设计,以此作为 MISRA C++ 2008 的更新版本,并为现代 C++ 提供编码指南。作为首选语言,AUTOSAR C++ 正在业内迅速普及,几乎可以肯定的是,AUTOSAR C++ 将在未来成为标准语言。

汽车软件日益复杂,业内对 C++ 的使用程度要远高于以往任何时候,特别是在安全攸关系统中加以运用,如制动和发动机监控。其中一个关键原因是,C++ 不仅可以实现高级功能,还能实现相对接近机器代码/汇编代码的低级机制。

如今,C++ 已深度集成到诸多关键汽车系统中,甚至连未来汽车所用开发技术中的诸多基础系统也不例外,可以说汽车行业根本无法停止使用该语言。

C++ 在汽车开发中的优势

通用

与许多其他语言相比,C++ 非常通用,这也是未来 C++ 能在多个行业中崭露头角的原因之一。相关人员能对 C++ 进行迅速调整,来满足汽车行业不断变化,且往往难以预见的需求。

在兼容性方面,该语言同样具备巨大优势。过去四十年来,计算领域普遍使用 C++,因此,该语言与其他编程语言之间具有高度兼容性。鉴于此,可结合使用其他语言建造的系统,相对容易地使用该语言。在像汽车开发这样极为复杂、变化多端而难以预测的行业中,通用性这一特征至关重要。

高效

从根本上来说,由于 C++ 属于低级语言,非常接近计算机的基本二进制架构,该语言在结构上与机器级代码极其相似。由此,C++ 极为高效,使用期间不会导致汽车开发人员编写的代码和计算机能够理解的内容复杂化。

如若 C++ 代码编写良好,这一与生俱来的高效特性,能使代码可靠而可预测地运行 这对现代汽车中的安全攸关系统等系统而言至关重要。

支持和社区

对开发人员而言,C++ 的另一巨大优势是,其历史悠久而多样,造就了庞大而活跃的全球社区。该社区可为汽车开发人员提供极为有用的支持。此外,网上有大量免费和付费学习资源,开发人员需要跨越的技术门槛相对较低。

经过数十年的使用,全球开发人员花费了数十万小时创建 C++ 库、开发测试用例,并不断提升 C++ 效率。C++ 由此成为高度精炼的语言,有助于为汽车开发人员提供支持。

未来应用:C++ 与自动驾驶

多年来,业内始终将自动驾驶誉为汽车行业的未来趋势,这一炒作可谓实至名归。未来几年内,充分开发的自动驾驶汽车很可能会得到政府和公众的普遍认可。若如此,自动驾驶汽车取代全球标准类型的汽车只是时间问题。

但要真正实现自动驾驶目标,汽车公司必须加大计算机代码的使用力度。自动驾驶所涉及的系统数量令人难以置信,要想支撑这些系统,相应代码的复杂性更是如此。

此外,出于乘客和其他道路使用者的安全考虑,不宜加大赌注,所有涉及的系统都必须极其可靠、安全而无漏洞。

正如我们先前讨论的,C++ 近似机器级代码,且具备高效和通用性,致使其备受汽车开发青睐。C++ 由此成为自动驾驶汽车系统的理想选择,或许会令某些人惊讶不已。

C++ 在实现软件和机械之间的互操作性方面非常出色,使其成为涉及自动驾驶基本系统的理想选择,如制动、转向和加速。

此外,C++ 与其他语言之间具有高度兼容性。由此,其他相关系统,如用更现代语言编写的基于人工智能 (AI) 的驾驶技术,能与现有经过试验和测试的汽车系统集成。

最后,自动驾驶极为复杂,纵使频繁编写代码,仍需攻克编译难题。C++ 底蕴深厚,且社区可提供广泛支持,开发人员可获得大量可靠的编译器和其他支持工具,使其十分适合开展编译。

引导汽车行业走向未来

C++ 可能是一种古老语言,但其高效性、可靠性、近似机器级代码,及广泛社区都有助于使其成为汽车开发中的主流语言。

相应特征可完美助推行业未来趋势 自动驾驶,在接下来的许多年内,C++ 在现代汽车软件中的主导作用将继续保持并不断发展,C++ 开发环境也将逐步演变。

如欲了解更多关于软件和技术行业的见解,请访问 Incredibuild 博客