嵌入式系统中,Python与C/C++哪方更为适用?

译文
开发 后端
C/C++属于编译语言,而Python则属于解释语言。C语言最初诞生于1969年,C++则出现在1983年,相比之下1989年才开发完成的Python显然更为年轻。经过数十年的磨砺,如今Python已经成为最具人气的开源编程语言之一。

【51CTO.com快译】长久以来,C/C++一直编译着嵌入式系统编程领域,但二者亦拥有自己的缺陷。相比之下,Python则成为嵌入式系统中的另一大***语言选项。在今天的文章中,我们将共同探讨双方的优劣与Python在嵌入式编程领域的定位。

[[170909]]

C/C++属于编译语言,而Python则属于解释语言。C语言最初诞生于1969年,C++则出现在1983年,相比之下1989年才开发完成的Python显然更为年轻。经过数十年的磨砺,如今Python已经成为***人气的开源编程语言之一。

Python阐述

Python在美国各***计算机科学部门中拥有***人气。根据Barr集团发布的调查结果,十大计算机科学部门中有八个在利用Python教授编码技能。这里抛开优劣不谈,事实证明应届毕业生对于Python的理解要远远超过C/C++。

多数开发爱好者都具备一定程度的Python经验,且其Python水平往往要高于C/C++。然而在嵌入式领域,情况则正好相反——Barr集团在调查中发现95%的嵌入式系统使用C/C++语言。虽然这样的状况对Python非常不利,但其易于上手的特性加上更为广泛的从业者规模,相信其会在未来一步步超越C/C++。

Python在嵌入式计算领域的发展速度很快。虽然目前非C/C++语言在嵌入式系统中的代码占比仅为5%,但Python无疑将在未来几年内快速蚕食C/C++的份额。无人机、机器人或者其它包含Arduino与Raspberry Pi的项目正吸引到众多拥有Python技能背景的爱好者,而这一趋势也必然会给嵌入式编程带来深刻影响。

相较于C/C++编写缓慢、易出错且难以直接阅读的问题,Python则一直以易于编写、低错误率及可读性著称。事实上,Python的复用能力要远高于C/C++,而这一优势将在目前的敏捷开发环境中起到决定性作用。

嵌入式算法本身正变得愈发复杂。利用神经网络及其它高度介入流程,Python取代了简单的控制循环并以此作为立足根基。另外,Python库性能表现更出色且更具人类友好性,因而能够显著提升程序员的生产效率。

C/C++阐述

C/C++的特性非常明确:旨在构建紧凑且运行速度更快的代码。然而,运行速度只是开发工作中需要考虑的因素之一。虽然Python的执行效率不及C/C++,但其开发效率却更高,因此二者只能说是各擅胜场。

改进Python速度表现

我们目前可以选择多种方法提升Python代码运行速度。除了Theano库,另有Cython等Python优化扩展可供使用,其基本上相当于利用Python的静态类型与关键字以提高数学运算速度。由于Cython本身为静态类型,因此大家可以将其编译为C/C++并享受与后者一致的速度优势。

准时制(简称JIT)编译器则是另一种提升Python运行时速度的好方案。这些编译器能够与Python解释器并行运作以生成汇编指令代码,进而达到更快的执行速度。虽然对于软件而言,针对数据结构与算法的优化才是提升性能的核心法宝,但其设计与实现难度太高,因此上述工具相信能够帮助大家更为轻松地完成提速。

利用Python与嵌入式系统通信

Python可能是目前最为出色的用户与嵌入式系统间通信中间件选项。通过Python进行消息收发能够帮助用户轻松完成自动化测试。Python脚本亦可让系统处于不同状态、设置配置并测试全部实际用例。Python还可用于接收嵌入式系统数据以备日后分析。再有,程序员亦可利用Python开发参数及其它方法,用于执行此类数据的分析任务。

当下在考量Python与C/C++间的优劣时,大家实际上面对的是这样一个选择:开发速度还是运行时速度。不过未来,这一难题恐怕并不需要由Python开发者来担心,而是将由嵌入式系统设计师负责——毕竟Python的普及趋势早已不可阻挡。

原文标题:Python vs. C/C++ in embedded systems

原文作者:Tom Radcliffe

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:陈琳 来源: 51cto
相关推荐

2016-09-12 11:17:24

代码开发Linux

2022-04-13 09:57:24

Go语言C语言程序开发

2010-03-24 12:45:00

Python 嵌入

2010-03-26 11:00:55

Python嵌入CC++

2010-01-28 16:58:32

学习C++感想

2010-03-26 16:17:24

Python嵌入

2010-03-26 11:00:55

Python嵌入CC++

2009-04-11 15:12:24

2022-01-03 23:33:40

Linux组件系统

2021-12-19 22:34:45

Linux容器系统

2010-01-07 10:18:44

嵌入式Linux系统构

2010-03-24 13:17:35

Python嵌入

2010-01-07 09:07:41

嵌入式C变量

2010-03-24 13:04:12

Python嵌入

2023-09-22 09:04:00

C++编程

2010-09-25 15:05:49

LINUXJVM

2010-03-26 09:48:43

Python嵌入C++

2010-03-26 10:19:31

Python嵌入CC++

2010-01-14 11:14:47

C++应用程序

2010-01-21 14:07:14

CC++声明
点赞
收藏

51CTO技术栈公众号