雖然Java是物聯(lián)網(wǎng)開發(fā)中使用最比較多的語言,但是JS和Python在物聯(lián)網(wǎng)開發(fā)的不同子領(lǐng)域中緊隨Java之后。物聯(lián)網(wǎng)發(fā)展的未來可能仍然是多語種的。
十年前,有沒有人能想象到有一天我們會(huì)使用能夠根據(jù)使用情況改善其性能的空調(diào)?我們是否知道我們將測(cè)試可以自動(dòng)導(dǎo)航的自動(dòng)駕駛汽車?
兩者都是今天的現(xiàn)實(shí)。如果您想知道這些智能事物是如何工作的,答案就是物聯(lián)網(wǎng)(IoT)。
眾所周知,物聯(lián)網(wǎng)技術(shù)的目的是測(cè)量、收集和分析數(shù)據(jù),以提供更好的客戶體驗(yàn)和提高產(chǎn)品質(zhì)量。換句話說,它的功能是讓我們的城市、家庭和企業(yè)更好地工作。
不同約束條件下的開發(fā)
測(cè)量、收集和分析這三個(gè)階段中的每一個(gè)階段都有不同的工作環(huán)境,并具有不同的約束條件。
例如,數(shù)據(jù)是通過功能有限的設(shè)備上的傳感器測(cè)量的。然后,使用具有與設(shè)備完全不同的計(jì)算能力的網(wǎng)關(guān)(例如智能手機(jī)或小型控制臺(tái)上的應(yīng)用程序)匯總和傳輸此數(shù)據(jù)。使用云存儲(chǔ)和分析該數(shù)據(jù)。
因此,軟件開發(fā)的每個(gè)階段都可以有不同的物聯(lián)網(wǎng)編程語言。
自2015年以來,Eclipse基金會(huì)一直在調(diào)查全球IoT開發(fā)公司中的開發(fā)人員,以了解該領(lǐng)域的整體格局,挑戰(zhàn)和趨勢(shì)。
根據(jù)最新的調(diào)查,開發(fā)人員針對(duì)IoT使用了幾種不同的編程語言,例如C,C++,Java,JavaScript,Python和PHP。
上圖顯示了基于IoT開發(fā)給定子域的首選語言。對(duì)于計(jì)算能力低且RAM受限的IoT硬件,C是首選的編程語言,而對(duì)于網(wǎng)關(guān)和云平臺(tái),Java是首選。
這項(xiàng)調(diào)查還顯示,Java以66.5%的受歡迎程度成為整體領(lǐng)先者。C以56.9%的支持率緊隨其后,JavaScript(JS)和Python分別以47.1%和46%的支持率緊隨其后。
物聯(lián)網(wǎng)開發(fā)的三大編程語言
讓我們分析一下是什么讓C、Java和Python成為物聯(lián)網(wǎng)三大編程語言。
1 – C
設(shè)備級(jí)別,計(jì)算能力通常非常有限。C語言在這里效果最好,因?yàn)樵撜Z言非常適合編寫低級(jí)代碼(即,靠近硬件層的代碼),不需要太多的處理能力并且可以直接與RAM一起使用。
C還是微控制器編程的通用語言,對(duì)于傳感器和網(wǎng)關(guān)硬件層應(yīng)用程序而言,它無疑是必不可少的。但是,由于C是一種低級(jí)語言,因此如果開發(fā)人員不熟練使用優(yōu)秀實(shí)踐,它的語法可能很快變得混亂不堪。
2 – Java
Java在編程領(lǐng)域得到了廣泛的使用。對(duì)于物聯(lián)網(wǎng)應(yīng)用程序,通過使用Java虛擬機(jī)(JVM)功能代碼可以轉(zhuǎn)移到任何芯片上。
該代碼可用于JVM常見的地方,例如智能手機(jī)和服務(wù)器。該代碼也可以在最小的機(jī)器上使用,因此非常適合物聯(lián)網(wǎng)軟件。
Java是用于IoT的面向?qū)ο蟮木幊陶Z言。
Java具有對(duì)物聯(lián)網(wǎng)應(yīng)用程序有用的內(nèi)置功能。
Java具有高度的可移植性,并且沒有硬件限制。
3 – Python
Python作為一種高級(jí)腳本語言開始了它的旅程。它有大量有用的庫,并且可以用更少的代碼行完成更多的工作。它是物聯(lián)網(wǎng)系統(tǒng)數(shù)據(jù)分析部分的理想選擇。
源代碼緊湊且可讀,因?yàn)檎Z法簡(jiǎn)潔。
Python易于學(xué)習(xí),被廣泛使用并且受到強(qiáng)大的支持。
管理和組織復(fù)雜數(shù)據(jù)流而無需維護(hù)同樣復(fù)雜的代碼庫的優(yōu)秀選擇。
Python在計(jì)算需求從中等到低的簡(jiǎn)單模塊化項(xiàng)目中越來越受歡迎。
多語言的未來
隨著物聯(lián)網(wǎng)使用量的增加,將產(chǎn)生越來越多關(guān)于產(chǎn)品性能、挑戰(zhàn)和機(jī)遇的數(shù)據(jù)。我們將能夠更好地理解哪些編程語言可以更好地為哪些物聯(lián)網(wǎng)產(chǎn)品或服務(wù)工作。
分析這些數(shù)據(jù)將使我們更好地了解哪種系統(tǒng)級(jí)編程語言最適合物聯(lián)網(wǎng)開發(fā)中的特定場(chǎng)景。 在此之前,物聯(lián)網(wǎng)軟件開發(fā)將保持多語言。
責(zé)任編輯:ct
評(píng)論
查看更多