Tesla都使用什么编程语言?

news2024/10/1 1:16:42

作者 | 初光
出品 | 车端
备注 | 转载请阅读文中版权声明
知圈 | 进“汽车电子与AutoSAR开发”群,请加微“cloud2sunshine”



总目录链接==>> AutoSAR入门和实战系列总目录

带着对更美好未来的愿景,特斯拉不仅成为有史以来最有价值的汽车公司,而且超越了自己,成为世界顶级科技公司之一。从自动驾驶汽车到人工智能机器人,特斯拉无所不包。但是,是什么编程语言帮助该组织创造了这样的未来产品呢?让我们找出来。

图片

大多数培训软件工程师的机构都专注于新的编程语言和框架。但已建立的所谓“低级”编程语言,如 C 和 C++,仍被广泛使用。事实上,来自 Github 的研究表明,C 和 C++ 仍然是使用最广泛的编程语言的前 10 名。

依赖“低级”编程的公司的两个很好的例子是 Tesla 和 Nvidia。这两个名字都是创新的代名词:Tesla 以制造下一代汽车而闻名,Nvidia 是著名的人工智能算法和视频游戏图形卡设计商。霍尔伯顿学院的校友亲眼目睹了“低级”语言如何帮助特斯拉和 Nvidia 更高效地构建。该团队负责通过帮助尽早发现错误并提高项目的整体质量来提高整个嵌入式软件开发组织的效率。“特斯拉汽车中的大部分软件都是 C 或 C++,”特斯拉工程经理 Mehdi Amini 说。“Anne 正在开发一个关键软件,该软件可以在流程失败时收集信息,这需要对低级编程有扎实的了解。” C 的优点是能够在几乎任何类型的系统上运行并且非常轻便。它广泛应用于物联网、传感器和大多数嵌入式系统。因为它非常接近操作系统,所以它允许工程师高效地编码和优化软件。当您的系统处理实时约束或硬件资源有限时,这一点至关重要。“在效率方面,没有任何编程语言能与 C 或 C++ 相提并论。大多数带有垃圾收集器的现代编程语言在内存管理方面都是不确定的,这根本不适合关键的嵌入式系统,例如特斯拉汽车中的系统”迈赫迪说。Swati Gupta 是这门语言的粉丝:“有了 C,你就能真正了解内存是如何工作的,内核是如何工作的。你可以从字面上阅读 Linux 源代码——这有多酷?”

1 特斯拉使用的编程语言

「1.C&C++」

近年来,涌入了大量新的编程语言,如 Elixir、Pony、Julia 等,旨在用尽可能少的代码简化任务。然而,Tesla 仍然严重依赖一种最基础的语言:C 和 C++。

“特斯拉汽车中的大部分软件都是 C 或 C++,”特斯拉工程经理 Mehdi Amini 说。这些古老语言的最大优势之一,可能也是它经久不衰的原因是,这些语言几乎可以在任何类型的系统上运行。由于其与操作系统的接近性,这些低级编程语言被用于大多数物联网和嵌入式系统,并帮助工程师优化软件。

“在效率方面,没有任何一种编程语言能与 C 或 C++ 相提并论。大多数带有垃圾收集器的现代编程语言在内存管理方面都是不确定的,这根本不适合关键的嵌入式系统,例如特斯拉汽车中的系统,”Mehdi 说。另一家广泛使用 C 和 C++ 的主要科技公司是Nvidia。

「2.Python」

除了 C 和 C++,Tesla 还严重依赖可能是最流行和使用最广泛的语言;Python 。在一系列推文中,Elon 解释了他们如何使用 C/C++ 和 Python 的组合来构建他们的算法:

图片

我们的神经网络最初是在 Python 中进行快速迭代,然后转换为 C++/C/原始金属驱动程序代码以提高速度(重要!)。此外,车辆控制和整个汽车其余部分需要大量 C++/C 工程师。教育背景无关紧要,但都必须通过硬核编码测试。

这条推文促使许多开发人员强调从 Python 转换为 C++/C 的不足之处,但请记住,这条推文只是对经过深思熟虑的过程的浓缩解释,并没有公正对待实际情况使用的技术。PyTorch 的联合创始人 Soumith Chintala 解释说,他们很可能遵循从 Python 到 C 和 C++ 的自动转换。Elon 还指出了他们对 PyTorch 的依赖;

图片

PyTorch 是最常用的外部工具集/库

PyTorch是一个为机器学习、计算机视觉和自然语言处理而构建的库。它是完全开源的,由 Facebook 的 AI 研究实验室构建。

「3. Java 和 Javascript」

根据 Burning Glass 进行的一项调查,Java 和 Javascript 在特斯拉语言的使用和重要性方面排在第二位。这两种语言都大量用于为他们的汽车构建系统和应用程序。C++、Python 和 Java 是特斯拉几乎所有职位所需要的语言。此外,对于涉及前端编程的角色,Tesla 要求精通 Javascript。在这里了解更多关于 Tesla 工作的信息。

「4. 其他语言」

特斯拉还根据其他编程语言所执行的特定功能,要求他们精通其他编程语言。React和Typescript是 Tesla 广泛用于前端开发的基于 Javascript 的语言。此外,涉及网络开发的角色需要Ruby、 CSS 和PHP 。最后,SQL 被大规模用于数据库管理。所有这些语言结合在一起构建了让我们敬畏的产品。

2 结论

因此,尽管特斯拉是世界上主要的科技公司之一,但它主要依赖于老式的编程语言。如果你想为 Tesla、SpaceX、Nvidia、Intel 等公司工作,Python、C 和 C++ 是必须的。然而,Tesla 有 300 多名工程师,他们拥有不同的技能,所有这些都聚集在一起创造复杂的网络来运行他们的产品。您选择学习哪种编程语言应完全取决于您要执行的功能类型。做出明智的选择!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

乐友商城学习笔记(五)

什么是Nginx Nginx是一个高性能的web和反向代理服务器 作为web服务器作为负载均衡服务器作为邮件代理服务 树组件的用法 跨域问题 跨域:浏览器对javastript的同源策略的限制。 以下情况都属于跨域: 域名不同域名相同,端口不同二级域名不…

Python每日一练(20230225)

目录 1. 整数反转 2. 求最大公约数和最小公倍数 最大公约数 最小公倍数 3. 单词搜索 II 附录: DFS 深度优先搜索算法 BFS 广度优先搜索算法 BFS 和 DFS 的区别 1. 整数反转 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。…

大型旋转设备滑动轴承X、Y测点振动值说明(转载的)

滑动轴承支撑的大型旋转设备,绝大部分的故障都表现为不平衡引起的1倍频振动,诊断故障原因要根据振动随转速、负荷、温度、时间的变化情况来具体判断。滑动轴承设备的诊断主要依据电涡流传感器测量轴和轴瓦间的相对振动,判断转子相关的各种问题…

基于SpringBoot的共享汽车管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

Orin安装ssh、vnc教程

文章目录一:ssh远程终端的配置PC的配置MobaXterm的下载二:VNC Viewer远程图形界面终端配置:PC配置:一:ssh远程 终端的配置 1.ifconfig查看终端ip地址 其中的eth是网口,我们需要看的是wlan0下的inet&#…

5M1270ZT144A5N CPLD 980MC 6.2NS 144TQFP /5M1270ZT144C5N

【产品介绍】MAX V系列低成本和低功耗CPLD提供更大的密度和每占地面积的I/O。MAX V器件的密度从40到2210个逻辑元件(32到1700个等效宏单元)和多达271个I/O,为I/O扩展、总线和协议桥接、电源监控和控制、FPGA配置和模拟IC接口等应用提供可编程解决方案。MAX V器件具有…

MYSQL 索引失效的十个场景(二)

六、对索引列运算(如,、-、*、/、%等),索引失效 CREATE TABLE student (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,score decimal(10,2) DEFAULT NULL,subject varchar(…

【华为OD机试模拟题】用 C++ 实现 - 绘图机器(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【Leedcode】环形链表必备的面试题和证明题(附图解)

环形链表必备的面试题和证明题(附图解) 文章目录环形链表必备的面试题和证明题(附图解)前言一、第一题1.题目2.思路3.代码4.延伸问题(1)证明题一:(2)证明题二:二、第二题1.题目2.思路延伸的证明题总结前言 …

【网络原理8】HTTP请求篇

在上一篇文章当中,我们也提到了什么是HTTP。 每一个HTTP请求,都会对应一个HTTP响应。 下面这一篇文章,将聊一下HTTP请求的一些内容 目录 一、URL 第一部分:协议名称 第二部分:认证信息(新的版本已经没有了) 第三部分&#xf…

这款 Python 调试神器推荐收藏

大家好,对于每个程序开发者来说,调试几乎是必备技能。 代码写到一半卡住了,不知道这个函数执行完的返回结果是怎样的?调试一下看看 代码运行到一半报错了,什么情况?怎么跟预期的不一样?调试一…

【教学类-10-03】python单线程下载哔哩哔哩网址(中间字母不同,前面后面相同)的视频

背景需求:最近测试以前的多线程(同时下载5个视频),结果30个视频只下到了3个,于是把“单个下载(单线程下载)”的一个代码进行拓展研究。前一篇介绍了网址尾数递增的遍历程序,本篇介绍…

【华为OD机试模拟题】用 C++ 实现 - 最大报酬(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

数据结构与算法之[把数字翻译成字符串]动态规划

前言:最近在刷动态规划的算法题目,感觉这一类题目还是有一点难度的,但是不放弃也还是能学好的,今天给大家分享的是牛客网中的编程题目[把数字翻译成字符串],这是一道经典的面试题目,快手,字节跳…

CleanMyMac是什么清理软件?及使用教程

你知道CleanMyMac是什么吗?它的字面意思为“清理我的Mac”,作为软件,那就是一款Mac清理工具,Mac OS X 系统下知名系统清理软件,是数以万计的Mac用户的选择。它可以流畅地与系统性能相结合,只需简单的步骤就…

【机器学习 | 强基计划】开山篇 | 机器学习介绍及其类别和概念阐述

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 机器学习 | 强基计划系列 (一) 作者: 计算机魔术师 版本: 1.0 ( 2022.2.25) 注释:文章会不定时更新补充 文章目录 前言一、机器学习概览1.1 有监督学习和无监督学习1.1.…

Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0

💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:元宇宙 部分资料参考文献: 成生辉教授的《元宇宙:概念、技术及生态》和百度相关…

【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址数据帧转发原理详解

一、网络模型 万年不变,先从模型结构分析,现在大家熟知的网络模型有两种。第一种是,OSI七层模型,第二种是TCP/IP模型。在实际运用中,参考更多的是TCP/IP模型。 OSI七层模型 TCP/IP模型 不需要全部理解,…

电子技术——输出阶类型

电子技术——输出阶类型 输出阶作为放大器的最后一阶,其必须有较低的阻抗来保证较小的增益损失。作为放大器的最后一阶,输出阶需要处理大信号类型,因此小信号估计模型不适用于输出阶。尽管如此,输出阶的线性也非常重要。实际上&a…

绝对让你明明白白,脚把脚带你盯着 I2C 时序图将 I2C 程序给扣出来(基于STM32的模拟I2C)

目录前言一、关于STM32 I/O端口位的基本结构讲解二、模拟I2C编写前的需知道的知识1、I2C简介2、根据时序编写模拟I2C程序重要的两点Ⅰ、主机发送数据给从机时的时序控制Ⅱ、主机接收来自从机的数据时的时序控制Ⅲ、完整的I2C时序图(按写程序的思想分割时序&#xff…