一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python又登頂了,它能成為嵌入式未來嗎?

 知芯世界 2023-09-05 發(fā)布于黑龍江

8月29日,IEEE Spectrum發(fā)布2023年頂級編程語言排行榜,在排行中,Python愈加擁有統(tǒng)治地位,一度成為嵌入式的得力競爭者,嵌入式開發(fā)的未來就在Python了嗎?

IEEE Spectrum公布了三類榜單,雖然每種榜單的權(quán)重有所不同,但得出的結(jié)果卻極為接近。

作者丨付斌
出品丨電子工程世界

 學Python,有未來?

IEEE Spectrum的綜合排行中,Python、Java、C++、C、JavaScript、C#、SQL、Go位列前八,Python極具統(tǒng)治地位,流行度指標一度碾壓第二的Java。

其實Python早蟬聯(lián)多年榜首,其豐富的庫和框架,如Pandas、Scikit-learn等成為其最大的競爭優(yōu)勢,在近兩年表現(xiàn)強勢,但需要注意的是,C、C++、C#等大型語言相加的總和是超過Python的,同時這幾種語言也在特定維度擁有更好的流行度。


6~10名的編程語言排名發(fā)生了較大變動。最明顯的是,微軟的C#語言從2020年的第25位躍升至第6名,或與2020年年底發(fā)布的C# 9.0 、尚在襁褓的Windows 11以及開發(fā)者對分布式系統(tǒng)的興趣持續(xù)增長有關(guān);HTML也進入了前十,位列第9;Arduino和Matlab則跌出前十。

在就業(yè)語言使用排行中,SQL摘得桂冠,其次才是Python、Java、JavaScript、C++、C#、C等。

曾經(jīng)作為查詢數(shù)據(jù)庫的SQL,無疑是現(xiàn)在就業(yè)市場最基本的技能,而事實上,大多雇主更希望應聘者在掌握其它語言,諸如Python、C、Java的基礎(chǔ)上,同時具備SQL能力。

語言發(fā)展趨勢榜單中,Python表現(xiàn)依然強勢,與位列第二和第三的Java和JavaScript拉開巨大差距。

IEEE Spectrum強調(diào),Python的已經(jīng)成為萬能語言,并在特定領(lǐng)域成為佼佼者,就比如,人工智能領(lǐng)域。此外,雖然摩爾定律對于高端數(shù)字芯片的提升已遇瓶頸,但MCU依然深受其影響,從而提升性能,這意味著一個價值0.7美元的CPU上,就有足夠的計算能力讓Python進行嵌入式開發(fā),盡管解釋器的開銷很大。

當然,IEEE Spectrum還特別提示,不能過于迷信榜單,一方面,多數(shù)情況公司都要求工程師同時掌握Python和SQL,另一方面,各種C和Java語言綜合的受歡迎程度遠超Python,特別對于一些高性能的任務(wù),解釋器的開銷還是過大。

很多工程師時常會發(fā)問,嵌入式,現(xiàn)在上車Python,有未來嗎?而在EEWolrd論壇中,也不缺乏觀望Python的學生,想要通過熟練掌握Python,作為嵌入式的敲門磚。

 頗具爭議的Python 

事實上,Python已經(jīng)大火很多年了,回顧過往,2012年~2014年云計算燒起一把火,大批創(chuàng)業(yè)公司和巨頭起風,催生大量Python崗位;2014年~2015年,北京大街小巷擠滿了創(chuàng)業(yè)者,O2O、P2P是無人不知的口號,Python開發(fā)速度一個頂仨,自然而然成為當時的主流;2016年~2017年,AlphaGo又引燃了業(yè)界一把火,AI/ML的首選語言就是Python;這兩年,幾乎每個人都聽說過用Python寫爬蟲這件事,Python的話題也不斷涌現(xiàn)。
 
究其原因,是因為它入門簡單,同時在于人工智能、數(shù)據(jù)分析、Web、自動化測試和運維表現(xiàn)優(yōu)異:
  • 人工智能:Python是一種用LISP和JAVA編譯的語言,按照Norvig文章中對Lips和Python的比較,這兩種語言彼此非常相似,僅有一些細小的差別;
  • 數(shù)據(jù)分析:大數(shù)據(jù)時代,數(shù)據(jù)可以說明一切,現(xiàn)在很多做數(shù)據(jù)分析并沒有那樣簡單,Python語言成為了做數(shù)據(jù)分析師的第一首選,它同時可以給工作帶來很大的效率;
  • Python Web網(wǎng)站工程師:Web一直是不可忽視的存在,我們離不開網(wǎng)絡(luò),離不開Web,利用Python的框架可以做網(wǎng)站,而且都是一些精美的前端界面,還有我們需要掌握一些數(shù)據(jù)的應用;
  • Python自動化測試:Python語言對測試幫助非常大,自動化測試中Python語言用途很廣,可以說Python太強大,掌握和熟悉自動化的流程,方法和我們總使用的各個模板,到現(xiàn)在為止Python使用最多的應該是自動化測試;
  • Linux運維:用Python實現(xiàn)的測試工具及過程,包含服務(wù)器端、客戶端、web、andriod、client端的自動化測試,自動化性能測試的執(zhí)行、監(jiān)控和分析,常用selenium appium等框架。
 
Python之父吉多·范羅蘇姆也曾豪言:“Python在爬蟲、數(shù)據(jù)分析、AI、ML、Web開發(fā)、金融、運維、測試等多領(lǐng)域都有不俗表現(xiàn),從來沒有哪一種語言可以同時在這么多領(lǐng)域扎根。”

在嵌入式開發(fā)中,Python一般以MicroPython的形態(tài)所出現(xiàn),對于Python進行嵌入式開發(fā),工程師們眾說紛紜。

中立派對它的評價是,Python要么是用在數(shù)據(jù)分析,再者就是Web、人工智能、自動化辦公,其它領(lǐng)域還是沒法工業(yè)化應用。

也有人評價:“Python簡單易學, 第三方模塊超多,但是缺點也很明顯:,即解釋執(zhí)行, 打包問題,項目管理和發(fā)布等?!?/span>

更有甚者稱,Python是一種膠水語言,不要再被它所忽悠了,并在EEWorld論壇中引發(fā)大面積討論。

反對者稱,Python主要特性是調(diào)用C語言的程序包較為容易,所以有很多人把各種C語言的程序庫修改成Python能夠調(diào)用的包。總結(jié)來說,Python有兩大硬傷:

一是解釋執(zhí)行效率的硬傷。

Python是一種動態(tài)語言,解釋執(zhí)行,就如同JavaScript一樣,JavaScript是網(wǎng)頁里嵌入的特定領(lǐng)域語言,目前也在被新的編程體系取代(webassembly,可以由其它語言編譯而來)。

現(xiàn)在,很多解釋執(zhí)行的語言都有被靜態(tài)編譯語言取代的趨勢,GOlang有可能取代Java,Rust有可能取代C/C++,webassembly有可能取代JS。Java、C/C++,JS都是目前的主要生產(chǎn)語言,就是可以用來寫大型的應用的語言。

Python是后來者,主要用來寫簡短的、臨時性的試驗代碼。例如,在寫軟件時可能需要臨時處理文本格式或統(tǒng)計數(shù)據(jù),此時就沒有必要使用工作語言臨時建立工程,這種情況用Python,很好。所以在大型商業(yè)(開源)軟件基本見不到Python。

二是沒有專業(yè)的軟件庫,基本是第三方語言庫。

如繪圖軟件庫,Python只能使用其它語言庫,往往C語言等語言的庫都比較底層,如果Python想拿來使用時需大量的封裝代碼,需要很多專業(yè)知識,新手(或只懂Python)很難做到,對于需要擴展程序庫的功能基本上就沒法解決,所以Python不能獨立完成一個大型復雜項目。

此外,編寫大型軟件時,Python代碼的組織結(jié)構(gòu)很不友好,閱讀起來費勁,Python的高級語法和其它語言也一樣很不好理解的。對于專業(yè)程序來說,只掌握程序語言知識并不能寫出能賺錢吃飯的程序,必需要有其它體系知識,就像嵌入行業(yè)不知道高低電平、上拉下拉電阻一樣,職業(yè)程序員不是只寫打印個字符三角形、求解個一元二次方程之類的教學程序,而是涉及大量行業(yè)知識。

反對者強調(diào),“Python對于專業(yè)程序員來說可有可無,學與不學都無所謂,不要被那些做培訓的忽悠,這些人只是為了讓你交錢而已,才不管你是不是要吃飯的。對于想成為專業(yè)程序員還是學JAVA、C/C++、C#靠譜?!?/span>

辯論者則認為,即便不在嵌入式領(lǐng)域,Python代碼的執(zhí)行效率依然較慢,這一點早已被詬病,但執(zhí)行速度并非一切,現(xiàn)如今,CPU算力普遍過剩,良好的代碼結(jié)構(gòu)遠比堆疊CPU參數(shù)更為直接,何況主流CPU和MCU平臺性能已遠超以往,成本不斷下降。不止如此,MicroPython的生態(tài)環(huán)境和開發(fā)效率都極具優(yōu)勢,不能忽略它們所帶來的隱形福利。
 
也有人稱,早期QBasic這種解釋型語言,也很簡單,作為語言,最終目的是開發(fā)程序,只要能實現(xiàn)功能,開發(fā)又便捷,何嘗不是一種首選。也許Python不適用于大型商業(yè)應用,但在小應用上依然存在使用價值。更何況,使用第三方庫的可不止Python一個,VB.net、C#、Java哪個不是需要第三方庫。
 
一些Python的使用者,也反應了其中的問題。一是Python2到Python3語法不兼容,二是用Python處理二進制數(shù)據(jù)就會產(chǎn)生很多誤導,每次都要查語法。
對于Python的詬病重重,但又連連奪冠,雖然從教育機構(gòu),到媒體,再到工程界,不缺乏極力推崇Python進入嵌入式開發(fā)的人,但又有許多專業(yè)人士不斷給出證據(jù),證明Python缺乏專業(yè)性。
當然,除了嵌入式開發(fā),Python在IC設(shè)計中也有大作用,簡單來說就是EDA環(huán)節(jié)中編寫流程設(shè)計插件或是作為EDA工具的擴展,Peal能做的事,Python都能做,而且代碼更易讀、更易理解,但文本處理比Perl麻煩一些。
Python一定是好用的,能在很多領(lǐng)域發(fā)揮不俗的作用,但反觀現(xiàn)在就業(yè)環(huán)境,C/C++和Java的地位依然屹立不倒,也許目前最穩(wěn)妥的方法,依然還是掌握C/C++或Java。

參考文獻

[1] The Top Programming Languages 2023 Python and SQL are on top, but old languages shouldn’t be forgotten.2023.8.29.https://spectrum./the-top-programming-languages-2023

[2] EEWorld論壇:http://bbs./thread-1193555-1-1.html

[3] EEWorld論壇:http://bbs./thread-1173450-1-1.html

[4] 橙子物聯(lián)網(wǎng):Python在嵌入式領(lǐng)域有沒有前途?.2021.3.1.https://mp.weixin.qq.com/s/nVH9pnEQ5pPZoGEv4i-HOA

· END ·







    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美国产日韩在线综合| 国产成人精品国产亚洲欧洲| 欧美整片精品日韩综合| 国产精品欧美一级免费| 在线观看国产成人av天堂野外| 一级片二级片欧美日韩| 国产成人精品综合久久久看| 亚洲色图欧美另类人妻| 尹人大香蕉中文在线播放| 不卡一区二区高清视频| 夜夜躁狠狠躁日日躁视频黑人| 欧美国产极品一区二区| 激情国产白嫩美女在线观看| 亚洲最新av在线观看| 丰满的人妻一区二区三区| 亚洲国产精品久久网午夜| 在线中文字幕亚洲欧美一区| 日韩精品一区二区不卡| 久久综合九色综合欧美| 欧美日韩黑人免费观看| 欧美黄色黑人一区二区| 中文字幕一二区在线观看| 成人免费观看视频免费| 欧美日韩最近中国黄片| 午夜福利黄片免费观看| 内射精品欧美一区二区三区久久久 | 国产欧美亚洲精品自拍| 日韩夫妻午夜性生活视频| 成人区人妻精品一区二区三区| 欧美一区二区三区在线播放| 国产精品欧美一区两区| 日本免费一本一二区三区| 五月天丁香婷婷狠狠爱| 国产精品99一区二区三区| 久久亚洲国产视频三级黄| 中字幕一区二区三区久久蜜桃 | 欧美日韩高清不卡在线播放| 不卡在线播放一区二区三区| 日韩在线视频精品中文字幕| 黄片免费播放一区二区| 亚洲中文字幕乱码亚洲|