8月29日,IEEE Spectrum发布2023年顶级编程语言排行榜,在排行中,Python愈加拥有统治地位,一度成为嵌入式的得力竞争者,嵌入式开发的未来就在Python了吗?
IEEE Spectrum公布了三类榜单,虽然每种榜单的权重有所不同,但得出的结果却极为接近。
IEEE Spectrum的综合排行中,Python、Java、C++、C、JavaScript、C#、SQL、Go位列前八,Python极具统治地位,流行度指标一度碾压第二的Java。
其实Python早蝉联多年榜首,其丰富的库和框架,如Pandas、Scikit-learn等成为其最大的竞争优势,在近两年表现强势,但需要注意的是,C、C++、C#等大型语言相加的总和是超过Python的,同时这几种语言也在特定维度拥有更好的流行度。
在就业语言使用排行中,SQL摘得桂冠,其次才是Python、Java、JavaScript、C++、C#、C等。
曾经作为查询数据库的SQL,无疑是现在就业市场最基本的技能,而事实上,大多雇主更希望应聘者在掌握其它语言,诸如Python、C、Java的基础上,同时具备SQL能力。
语言发展趋势榜单中,Python表现依然强势,与位列第二和第三的Java和JavaScript拉开巨大差距。
IEEE Spectrum强调,Python的已经成为万能语言,并在特定领域成为佼佼者,就比如,人工智能领域。此外,虽然摩尔定律对于高端数字芯片的提升已遇瓶颈,但MCU依然深受其影响,从而提升性能,这意味着一个价值0.7美元的CPU上,就有足够的计算能力让Python进行嵌入式开发,尽管解释器的开销很大。
当然,IEEE Spectrum还特别提示,不能过于迷信榜单,一方面,多数情况公司都要求工程师同时掌握Python和SQL,另一方面,各种C和Java语言综合的受欢迎程度远超Python,特别对于一些高性能的任务,解释器的开销还是过大。
很多工程师时常会发问,嵌入式,现在上车Python,有未来吗?而在EEWolrd论坛中,也不缺乏观望Python的学生,想要通过熟练掌握Python,作为嵌入式的敲门砖。
在嵌入式开发中,Python一般以MicroPython的形态所出现,对于Python进行嵌入式开发,工程师们众说纷纭。
中立派对它的评价是,Python要么是用在数据分析,再者就是Web、人工智能、自动化办公,其它领域还是没法工业化应用。
也有人评价:“Python简单易学, 第三方模块超多,但是缺点也很明显:,即解释执行, 打包问题,项目管理和发布等。”
更有甚者称,Python是一种胶水语言,不要再被它所忽悠了,并在EEWorld论坛中引发大面积讨论。
反对者称,Python主要特性是调用C语言的程序包较为容易,所以有很多人把各种C语言的程序库修改成Python能够调用的包。总结来说,Python有两大硬伤:
一是解释执行效率的硬伤。
Python是一种动态语言,解释执行,就如同JavaScript一样,JavaScript是网页里嵌入的特定领域语言,目前也在被新的编程体系取代(webassembly,可以由其它语言编译而来)。
现在,很多解释执行的语言都有被静态编译语言取代的趋势,GOlang有可能取代Java,Rust有可能取代C/C++,webassembly有可能取代JS。Java、C/C++,JS都是目前的主要生产语言,就是可以用来写大型的应用的语言。
Python是后来者,主要用来写简短的、临时性的试验代码。例如,在写软件时可能需要临时处理文本格式或统计数据,此时就没有必要使用工作语言临时建立工程,这种情况用Python,很好。所以在大型商业(开源)软件基本见不到Python。
二是没有专业的软件库,基本是第三方语言库。
如绘图软件库,Python只能使用其它语言库,往往C语言等语言的库都比较底层,如果Python想拿来使用时需大量的封装代码,需要很多专业知识,新手(或只懂Python)很难做到,对于需要扩展程序库的功能基本上就没法解决,所以Python不能独立完成一个大型复杂项目。
此外,编写大型软件时,Python代码的组织结构很不友好,阅读起来费劲,Python的高级语法和其它语言也一样很不好理解的。对于专业程序来说,只掌握程序语言知识并不能写出能赚钱吃饭的程序,必需要有其它体系知识,就像嵌入行业不知道高低电平、上拉下拉电阻一样,职业程序员不是只写打印个字符三角形、求解个一元二次方程之类的教学程序,而是涉及大量行业知识。
反对者强调,“Python对于专业程序员来说可有可无,学与不学都无所谓,不要被那些做培训的忽悠,这些人只是为了让你交钱而已,才不管你是不是要吃饭的。对于想成为专业程序员还是学JAVA、C/C++、C#靠谱。”
参考文献
· END ·
联系客服