影響物聯(lián)網(wǎng)IoT實(shí)施的最主要因素之一是人才缺口:現(xiàn)有市場(chǎng)供應(yīng)無法跟上擁有物聯(lián)網(wǎng)技術(shù)的工程師的需求。根據(jù)Canonical的研究,大約68%的公司正在努力為他們的物聯(lián)網(wǎng)項(xiàng)目雇傭開發(fā)人員。但技能短缺的另一面是,職業(yè)前景對(duì)于具有物聯(lián)網(wǎng)技術(shù)的專業(yè)人員來說是非常光明的。在這里,我們重點(diǎn)關(guān)注物聯(lián)網(wǎng)中最常用的編程語言,即Java,C,C ++,Python,JavaScript和Go,然后分析專門從事這些語言的專業(yè)人員可以獲得多少收入。我們還會(huì)考慮資歷和地點(diǎn)等因素。
創(chuàng)新互聯(lián)堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨嚒N覀儚牟缓鲇瞥踉L客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)是成都老牌網(wǎng)站營(yíng)銷服務(wù)商,為您提供網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、H5技術(shù)、網(wǎng)站制作、品牌網(wǎng)站制作、成都微信小程序服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
作為一個(gè)技術(shù)強(qiáng)國(guó),美國(guó)在IT 薪資標(biāo)準(zhǔn)方面常常成為世界其他國(guó)家的基準(zhǔn)。以下是根據(jù)Payscale的數(shù)據(jù)對(duì)美國(guó)頂級(jí)物聯(lián)網(wǎng)IoT編程語言以及相應(yīng)的開發(fā)者薪資數(shù)據(jù)的簡(jiǎn)要統(tǒng)計(jì)。
美國(guó)最熱門的物聯(lián)網(wǎng)編程語言的平均工資統(tǒng)計(jì)
平均而言,Java和C開發(fā)人員可以獲得比物聯(lián)網(wǎng)中使用其他語言的開發(fā)人員更高的薪水,盡管高級(jí)Go編程人員的薪水潛力最高、盡管初級(jí)和中級(jí)Go開發(fā)人員與其他同行相比低調(diào),但Skilled Go的開發(fā)人員卻是業(yè)內(nèi)薪酬最高的開發(fā)人員之一。
從Java開始,我們來看看物聯(lián)網(wǎng)IoT中最流行的編程語言的平均薪水。
Java:物聯(lián)網(wǎng)技術(shù)最流行的編程語言
Java有多個(gè)應(yīng)用領(lǐng)域,從后端編程到Android的移動(dòng)應(yīng)用。根據(jù) Eclipse基金會(huì)執(zhí)行的2017年物聯(lián)網(wǎng)開發(fā)者調(diào)查,Java首次提供了用于物聯(lián)網(wǎng)開發(fā)的編程語言列表,專門用于網(wǎng)關(guān)和云。
使用Java進(jìn)行物聯(lián)網(wǎng)開發(fā)的一個(gè)主要好處是便攜性。Java沒有任何硬件限制,這意味著您可以在計(jì)算機(jī)上編寫和調(diào)試Java代碼,并將其部署到幾乎任何運(yùn)行Java虛擬機(jī)的設(shè)備上。出于這個(gè)原因,許多公司選擇聘請(qǐng)Java開發(fā)人員進(jìn)行物聯(lián)網(wǎng)項(xiàng)目。
根據(jù)Payscale的數(shù)據(jù),美國(guó)Java開發(fā)者的平均薪水約為8.8萬美元。瑞士的Java開發(fā)者的平均收入較高,每年約為96,000美元。與此同時(shí),英國(guó)和以色列的Java開發(fā)人員的平均薪水則明顯較低,分別為4萬5千美元和33萬美元。
Java開發(fā)人員的平均工資
但是,Java開發(fā)人員的平均工資可能不具代表性,因?yàn)楦鶕?jù)相關(guān)技術(shù)人員的經(jīng)驗(yàn)和資歷,個(gè)人薪酬差別很大。例如,從Java初級(jí)到高級(jí)Java開發(fā)人員的薪酬跳躍在美國(guó)是6.6萬美元到97萬美元,在英國(guó)是從41,000美元到61,000美元。
Java在美國(guó)和英國(guó)的平均初級(jí),中級(jí)和高級(jí)Java開發(fā)人員工資
我們對(duì)美國(guó)Java開發(fā)者工資的研究表明,不同州的平均薪水可能遠(yuǎn)高于全國(guó)平均水平。例如,加利福尼亞州的開發(fā)人員對(duì)美國(guó)開發(fā)人員的平均薪水最高(13.3萬美元)。這一事實(shí)在很大程度上是該州IT總體高技能需求的一個(gè)功能。
C:嵌入式設(shè)備的關(guān)鍵編程語言
C編程語言接下來成為物聯(lián)網(wǎng)IoT堆棧最喜歡的語言。然而,根據(jù)Eclipse基金會(huì)的說法,它被認(rèn)為是受限設(shè)備開發(fā)的領(lǐng)先技術(shù)。
該編程語言提供對(duì)低級(jí)硬件API的直接訪問。由于其與機(jī)器語言的相似性,C非??焖偾异`活,使其成為處理能力有限的物聯(lián)網(wǎng)系統(tǒng)的完美選擇。
與Java類似,C開發(fā)人員的薪酬在世界各地差異很大。在美國(guó),C開發(fā)人員每年可賺取約10萬美元,而在瑞士,C開發(fā)人員的平均年薪為92,000美元。在我們分析的國(guó)家中,C專家的最低工資在英國(guó)。據(jù)Payscale稱,英國(guó)年平均C開發(fā)人員薪水僅略高于4萬美元。
C開發(fā)人員的平均工資。來源:Payscale
C級(jí)初級(jí)和高級(jí)開發(fā)人員的薪酬差異也很大。高級(jí)C開發(fā)人員的收入幾乎是美國(guó)和英國(guó)入門級(jí)員工的兩倍。
C在美國(guó)和英國(guó)的初級(jí),中級(jí)和高級(jí)C開發(fā)人員的平均工資
C ++:Linux的第一語言
與其前身C一樣,C ++已廣泛用于嵌入式系統(tǒng)開發(fā)。但是,C ++的主要優(yōu)勢(shì)在于處理能力,在任務(wù)更加復(fù)雜時(shí)使其成為C的有用替代方案。
C ++最適合編寫硬件特定的代碼。它可與Linux,第一大物聯(lián)網(wǎng)技術(shù)操作系統(tǒng)配合使用。但是,與Java相比,它具有有限的可移植性。
與C開發(fā)人員相比,C ++工程師的薪水更低。我們的研究發(fā)現(xiàn),C ++開發(fā)人員在以色列和丹麥的預(yù)計(jì)收入約為82-86,000美元,而在美國(guó),這個(gè)數(shù)字僅為71,000美元。
平均C ++開發(fā)人員工資統(tǒng)計(jì)。來源:Payscale
然而,盡管美國(guó)的C ++開發(fā)人員平均費(fèi)用較低,但經(jīng)驗(yàn)豐富的專家在職業(yè)生涯后期可以達(dá)到六位數(shù)。
美國(guó)和英國(guó)的初級(jí),中級(jí)和高級(jí)C ++開發(fā)人員的平均工資。
Python:面向數(shù)據(jù)的物聯(lián)網(wǎng)系統(tǒng)的解決方案
作為最受歡迎的網(wǎng)絡(luò)編程語言之一,以及科學(xué)計(jì)算的前沿技術(shù),Python在物聯(lián)網(wǎng)開發(fā)中也獲得了巨大的推動(dòng)力。 對(duì)于數(shù)據(jù)密集型應(yīng)用程序,Python是一個(gè)不錯(cuò)的選擇,特別是在管理和組織復(fù)雜數(shù)據(jù)時(shí)。
此外,由于語言的清晰語法,用Python編寫的源代碼非常緊湊且非常易讀。這對(duì)于計(jì)算能力和內(nèi)存有限的小型設(shè)備來說效果特別好,盡管速度不如C / C ++快。
美國(guó)的平均Python開發(fā)人員薪水約在71k美元左右,而擁有類似技能的開發(fā)人員則分別在以色列和瑞士分別可以獲得約68-67k的薪水。
Python開發(fā)人員的平均工資。來源:Payscale
與其他一樣,初級(jí)和高級(jí)Python開發(fā)人員之間的薪酬差距很大。
美國(guó)和英國(guó)的平均初級(jí),中級(jí)和高級(jí)Python開發(fā)人員薪水
仔細(xì)觀察數(shù)據(jù)顯示,盡管全國(guó)平均水平相對(duì)較低,但在美國(guó),Python開發(fā)人員的薪水可能會(huì)非常高。由于開發(fā)商需求迫切,供應(yīng)量有限,某些州的薪酬可能高達(dá)14萬美元。傳統(tǒng)上,加利福尼亞州是為技術(shù)專家提供最高工資的州之一。當(dāng)?shù)氐腜ython開發(fā)人員平均賺取了大約13.5萬美元。
JavaScript:事件驅(qū)動(dòng)物聯(lián)網(wǎng)應(yīng)用的最佳解決方案
根據(jù)年度StackOverflow開發(fā)者調(diào)查顯示,JavaScript是過去五年來最流行的編程語言之一,是現(xiàn)代Web開發(fā)中的核心技術(shù)。
在許多其他應(yīng)用領(lǐng)域中,JavaScript是物聯(lián)網(wǎng)編程語言中最常用的構(gòu)建事件驅(qū)動(dòng)系統(tǒng)。它可以管理連接設(shè)備的大型網(wǎng)絡(luò),并且在需要處理多個(gè)任務(wù)而無需等待其他任務(wù)完成時(shí)可以勝任。JavaScript對(duì)IoT的主要優(yōu)勢(shì)之一是非常節(jié)約資源。
隨著IBM和三星等主要公司在他們的物聯(lián)網(wǎng)項(xiàng)目中積極采用JavaScript(即Node.js),對(duì)具有物聯(lián)網(wǎng)(IoT)體驗(yàn)的JavaScript開發(fā)人員的需求仍然很高。這意味著能夠全面的提高薪水。
瑞士的JavaScript開發(fā)者平均可以賺取約96k美元。令人驚訝的是,美國(guó)JavaScript專家的平均薪水要低得多,開發(fā)者可以得到6.9萬美元。
全球JavaScript開發(fā)人員的平均工資。來源:Payscale
不同州之間的薪資數(shù)據(jù)差別很大:例如,研究發(fā)現(xiàn),康涅狄格州,馬薩諸塞州,加利福尼亞州和紐約州是JavaScript開發(fā)者收入最高的美國(guó)州,平均薪資介于10萬美元至14萬美元之間。
同樣,根據(jù)經(jīng)驗(yàn),JavaScript開發(fā)人員的工資差別很大:美國(guó)的專業(yè)JavaScript開發(fā)人員平均可賺取10萬美元,英國(guó)則可賺取6萬美元左右。
美國(guó)和英國(guó)的平均初級(jí),中級(jí)和高級(jí)JavaScript開發(fā)人員工資
Go:堅(jiān)固的技術(shù)堆棧為復(fù)雜的物聯(lián)網(wǎng)網(wǎng)絡(luò)提供動(dòng)力
Go是一款開源編程語言,由Google創(chuàng)建。盡管它不能像語言那樣擁有同樣廣泛的用途,但我們之前專注于這一點(diǎn),它是在您的物聯(lián)網(wǎng)系統(tǒng)內(nèi)建立通信層的強(qiáng)大技術(shù)。
Go語言關(guān)于物聯(lián)網(wǎng)的主要優(yōu)勢(shì)是并發(fā)性和同時(shí)運(yùn)行多個(gè)進(jìn)程(數(shù)據(jù)輸入和輸出)的能力。這使得構(gòu)建由多個(gè)傳感器和設(shè)備組成的復(fù)雜IoT網(wǎng)絡(luò)變得更加容易。
雖然它已被評(píng)為美國(guó)最高收入技術(shù)(根據(jù)最新的StackOverflow開發(fā)者調(diào)查),但美國(guó)的Go平均薪水相當(dāng)平穩(wěn) - 約為73,000美元,而英國(guó)則為43,000美元。
根據(jù)最近的調(diào)查顯示,由于全球Go開發(fā)者工資數(shù)據(jù)不足,我們將重點(diǎn)關(guān)注美國(guó)和英國(guó)這些Go開發(fā)者人數(shù)最多的國(guó)家的薪水。
在美國(guó)和英國(guó)的平均Go開發(fā)者工資。來源:Payscale
高技能的Go開發(fā)者在美國(guó)可以獲得高達(dá)14萬美元的收入 - 幾乎是初級(jí)Go程序員的三倍,是英國(guó)高級(jí)Go開發(fā)者的兩倍。
在美國(guó)和英國(guó)的平均初級(jí),中級(jí)和高級(jí)Go開發(fā)人員工資
結(jié)論
正如我們所看到的,物聯(lián)網(wǎng)中最熱門編程語言的開發(fā)人員的工資差別很大,并且取決于許多關(guān)鍵方面。為了理解這些信息,重要的是要看到更大的空間,并能夠識(shí)別現(xiàn)有的市場(chǎng)趨勢(shì)。
以上由物聯(lián)傳媒提供,如有侵權(quán)聯(lián)系刪除
python和go語言有區(qū)別:1、Python語法使用縮進(jìn)來指示代碼塊;Go語法基于打開和關(guān)閉括號(hào);2、Python是基于面向?qū)ο缶幊痰亩喾妒秸Z言;Go是基于并發(fā)編程范式的過程編程語言。3、Python是動(dòng)態(tài)類型語言,Go是靜態(tài)類型語言。
Go語言(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)以及 CSP-style 并發(fā)計(jì)算。
python是一種廣泛使用的具有動(dòng)態(tài)語義的解釋型,面向?qū)ο蟮母呒?jí)編程語言。
Python是一種面向?qū)ο蟮母呒?jí)編程語言,具有集成的動(dòng)態(tài)語義,主要用于Web和應(yīng)用程序開發(fā)。它在快速應(yīng)用程序開發(fā)領(lǐng)域極具吸引力,因?yàn)樗峁﹦?dòng)態(tài)類型和動(dòng)態(tài)綁定選項(xiàng)。
Python是一種解釋型語言,這意味著用Python編寫的程序不需要事先編譯就可以運(yùn)行,從而可以輕松地測(cè)試小段代碼并使用Python編寫的代碼更容易在平臺(tái)之間移動(dòng)。
python和go語言的區(qū)別:
1、語法
Python的語法使用縮進(jìn)來指示代碼塊。Go的語法基于打開和關(guān)閉括號(hào)。
2、范例
Python是一種基于面向?qū)ο缶幊痰亩喾妒剑钍胶秃瘮?shù)式編程語言。它堅(jiān)持這樣一種觀點(diǎn),即如果一種語言在某些情境中表現(xiàn)出某種特定的方式,理想情況下它應(yīng)該在所有情境中都有相似的作用。但是,它又不是純粹的OOP語言,它不支持強(qiáng)封裝,這是OOP的主要原則之一。
Go是一種基于并發(fā)編程范式的過程編程語言,它與C具有表面相似性。實(shí)際上,Go更像是C的更新版本。
3、并發(fā)
Python沒有提供內(nèi)置的并發(fā)機(jī)制,而Go有內(nèi)置的并發(fā)機(jī)制。
4、類型化
Python是動(dòng)態(tài)類型語言,而Go是一種靜態(tài)類型語言,它實(shí)際上有助于在編譯時(shí)捕獲錯(cuò)誤,這可以進(jìn)一步減少生產(chǎn)后期的嚴(yán)重錯(cuò)誤。
5、安全性
Python是一種強(qiáng)類型語言,它是經(jīng)過編譯的,因此增加了一層安全性。Go具有分配給每個(gè)變量的類型,因此,它提供了安全性。但是,如果發(fā)生任何錯(cuò)誤,用戶需要自己運(yùn)行整個(gè)代碼。
6、管理內(nèi)存
Go允許程序員在很大程度上管理內(nèi)存。而,Python中的內(nèi)存管理完全自動(dòng)化并由Python VM管理;它不允許程序員對(duì)內(nèi)存管理負(fù)責(zé)。
7、庫
與Go相比,Python提供的庫數(shù)量要大得多。然而,Go仍然是新的,并且還沒有取得很大進(jìn)展。
8、速度:
Go的速度遠(yuǎn)遠(yuǎn)超過Python。
Python與Golang對(duì)比:
1、特點(diǎn):
Golang
①靜態(tài)強(qiáng)類型、編譯型、并發(fā)型
靜態(tài)類型語言,但是有動(dòng)態(tài)語言的感覺。(靜態(tài)類型的語言就是可以在編譯的時(shí)候檢查出來隱藏的大多數(shù)問題,動(dòng)態(tài)語言的感覺就是有很多的包可以使用,寫起來的效率很高)
可直接編譯成機(jī)器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個(gè)文件上去就完成了。
語言層面支持并發(fā),這個(gè)就是Go最大的特色,天生的支持并發(fā)。Go就是基因里面支持的并發(fā),可以充分地利用多核,很容易地使用并發(fā)。
②垃圾回收機(jī)制
內(nèi)置runtime,支持垃圾回收,這屬于動(dòng)態(tài)語言的特性之一吧,雖然目前來說GC(內(nèi)存垃圾回收機(jī)制)不算完美,但是足以應(yīng)付我們所能遇到的大多數(shù)情況,特別是Go1.1之后的GC。
③支持面向?qū)ο缶幊?/p>
有接口類型和實(shí)現(xiàn)類型的概念,但是用嵌入替代了繼承。
④豐富的標(biāo)準(zhǔn)庫
Go目前已經(jīng)內(nèi)置了大量的庫,特別是網(wǎng)絡(luò)庫非常強(qiáng)大。
⑤內(nèi)嵌C支持
Go里面也可以直接包含C代碼,利用現(xiàn)有的豐富的C庫
Python
①解釋型語言
程序不需要在運(yùn)行前編譯,在運(yùn)行程序的時(shí)候才翻譯,專門的解釋器負(fù)責(zé)在每個(gè)語句執(zhí)行的時(shí)候解釋程序代碼。這樣解釋型語言每執(zhí)行一次就要翻譯一次,效率比較低。
②動(dòng)態(tài)數(shù)據(jù)類型
支持重載運(yùn)算符,也支持泛型設(shè)計(jì)。(運(yùn)算符重載,就是對(duì)已有的運(yùn)算符重新進(jìn)行定義,賦予其另一種功能,以適應(yīng)不同的數(shù)據(jù)類型。泛型設(shè)計(jì)就是定義的時(shí)候不需要指定類型,在客戶端使用的時(shí)候再去指定類型)
③完全面向?qū)ο蟮恼Z言
函數(shù),模塊,數(shù)字,字符串都是對(duì)象,在Python中,一切接對(duì)象
完全支持繼承,重載,多重繼承
④擁有強(qiáng)大的標(biāo)準(zhǔn)庫
Python語言的核心只包含數(shù)字,字符串,列表,元祖,字典,集合,文件等常見類型和函數(shù),而由Python標(biāo)準(zhǔn)庫提供了系統(tǒng)管理,網(wǎng)絡(luò)通信,文本處理,數(shù)據(jù)庫接口,圖形系統(tǒng),XML處理等額外的功能。
⑤社區(qū)提供了大量第三方庫
Python 社區(qū)提供了大量的第三方模塊,使用方式與標(biāo)準(zhǔn)庫類似。它們的功能覆蓋 科學(xué)計(jì)算、人工智能、機(jī)器學(xué)習(xí)、Web 開發(fā)、數(shù)據(jù)庫接口、圖形系統(tǒng) 多個(gè)領(lǐng)域。
2、應(yīng)用
Python
①網(wǎng)絡(luò)編程
web應(yīng)用,網(wǎng)絡(luò)爬蟲
②數(shù)據(jù)分析和機(jī)器學(xué)習(xí)
③自動(dòng)化測(cè)試
④自動(dòng)化運(yùn)維
Golang
①服務(wù)器編程
處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等。
②分布式系統(tǒng),數(shù)據(jù)庫代理器等
③網(wǎng)絡(luò)編程
這一塊目前應(yīng)用最廣,包括Web應(yīng)用、API應(yīng)用、下載應(yīng)用。
④內(nèi)存數(shù)據(jù)庫
如google開發(fā)的groupcache,couchbase的部分組件。
⑥云平臺(tái)
Go語言和Python學(xué)哪個(gè)好?
Python 可以很好地集成到企業(yè)級(jí)應(yīng)用中,可用于機(jī)器語言和 AI 應(yīng)用。Go 語言的特點(diǎn)表明它具備輕量級(jí)線程實(shí)現(xiàn)(Goroutine)、智能標(biāo)準(zhǔn)庫、強(qiáng)大的內(nèi)置安全性,且可使用最簡(jiǎn)語法進(jìn)行編程。Go 在大部分案例中領(lǐng)先,被認(rèn)為是 Python 的有效替代方案。開發(fā)者在選擇編程語言時(shí),應(yīng)考慮開發(fā)項(xiàng)目的性質(zhì)和規(guī)模,以及所需的技能組合。
放下個(gè)人偏見和喜好,從優(yōu)點(diǎn)和功能的角度來評(píng)價(jià)兩種語言。不管選擇了哪種語言,Go 和 Python 都在持續(xù)演進(jìn)。盡管在大多數(shù)情況下 Golang 可能是更好的選擇,但Python語言也是不斷更新迭代的。以上就是本次分享的全部?jī)?nèi)容,如果你也想學(xué)習(xí)一門編程語言,可以考慮下 六星教育 ,這里的課程體系,師資團(tuán)隊(duì)以及售后服務(wù),一定不會(huì)讓你失望!
創(chuàng)建 PayPal 的目的是使金融服務(wù)民主化,并使個(gè)人和企業(yè)能夠加入并在全球經(jīng)濟(jì)中蓬勃發(fā)展。這項(xiàng)工作的核心是 PayPal 的支付平臺(tái),該平臺(tái)使用專有技術(shù)和第三方技術(shù)的組合來高效、安全地促進(jìn)全球數(shù)百萬商家和消費(fèi)者之間的交易。隨著支付平臺(tái)變得越來越大、越來越復(fù)雜,PayPal 尋求對(duì)其系統(tǒng)進(jìn)行現(xiàn)代化改造并縮短新應(yīng)用程序的上市時(shí)間。
Go 在生成干凈、高效的代碼方面的有著極高的價(jià)值。這些代碼可以隨著軟件部署的擴(kuò)展而輕松擴(kuò)展,這使得該語言非常適合支持 PayPal 的目標(biāo)。
支付處理平臺(tái)的核心是 PayPal 用 C++ 開發(fā)的專有 NoSQL 數(shù)據(jù)庫。然而,代碼的復(fù)雜性大大降低了開發(fā)人員發(fā)展平臺(tái)的能力。Go 的簡(jiǎn)單代碼布局、goroutine(輕量級(jí)執(zhí)行線程)和通道(用作連接并發(fā) goroutine 的管道)使 Go 成為 NoSQL 開發(fā)團(tuán)隊(duì)簡(jiǎn)化和現(xiàn)代化平臺(tái)的自然選擇。
作為概念驗(yàn)證,一個(gè)開發(fā)團(tuán)隊(duì)花了六個(gè)月的時(shí)間學(xué)習(xí) Go 并在 Go 中從頭開始重新實(shí)現(xiàn) NoSQL 系統(tǒng),在此期間,他們還提供了有關(guān)如何在 PayPal 更廣泛地實(shí)施 Go 的見解。截至今天,已遷移 30% 的集群以使用新的 NoSQL 數(shù)據(jù)庫。
隨著 PayPal 的平臺(tái)變得越來越復(fù)雜,Go 提供了一種輕松簡(jiǎn)化大規(guī)模創(chuàng)建和運(yùn)行軟件的復(fù)雜性的方法。該語言為 PayPal 提供了出色的庫和快速工具,以及并發(fā)、垃圾收集和類型安全。
借助 Go,PayPal 使其開發(fā)人員能夠?qū)⒏鄷r(shí)間從 C++ 和 Java 開發(fā)的噪音中解放出來,從而能夠花更多時(shí)間查看代碼和進(jìn)行戰(zhàn)略性思考。
在這個(gè)新改寫的 NoSQL 系統(tǒng)取得成功后,PayPal 內(nèi)更多的平臺(tái)和內(nèi)容團(tuán)隊(duì)開始采用 Go。Natarajan 目前的團(tuán)隊(duì)負(fù)責(zé) PayPal 的構(gòu)建、測(cè)試和發(fā)布管道——所有這些都是在 Go 中構(gòu)建的。該公司擁有一個(gè)大型構(gòu)建和測(cè)試農(nóng)場(chǎng),它使用 Go 基礎(chǔ)設(shè)施進(jìn)行完全管理,以支持整個(gè)公司的開發(fā)人員的構(gòu)建即服務(wù)(和測(cè)試即服務(wù))。
憑借 PayPal 所需的分布式計(jì)算能力,Go 是刷新系統(tǒng)的正確語言。PayPal 需要并發(fā)和并行的編程,為高性能和高度可移植性而編譯,并為開發(fā)人員帶來模塊化、可組合的開源架構(gòu)的好處——Go 已經(jīng)提供了所有這些以及更多幫助 PayPal 對(duì)其系統(tǒng)進(jìn)行現(xiàn)代化改造。
安全性和可支持性是 PayPal 的關(guān)鍵問題,該公司的運(yùn)營(yíng)管道越來越多地由 Go 主導(dǎo),因?yàn)樵撜Z言的簡(jiǎn)潔性和模塊化幫助他們實(shí)現(xiàn)了這些目標(biāo)。PayPal 對(duì) Go 的部署為開發(fā)人員提供了一個(gè)創(chuàng)意平臺(tái),使他們能夠?yàn)?PayPal 的全球市場(chǎng)大規(guī)模生產(chǎn)簡(jiǎn)單、高效和可靠的軟件。
隨著 PayPal 繼續(xù)使用 Go 對(duì)其軟件定義網(wǎng)絡(luò) (SDN) 基礎(chǔ)設(shè)施進(jìn)行現(xiàn)代化改造,除了更易于維護(hù)的代碼外,他們還看到了性能優(yōu)勢(shì)。例如,Go 現(xiàn)在為路由器、負(fù)載平衡和越來越多的生產(chǎn)系統(tǒng)提供動(dòng)力。
作為一家全球性企業(yè),PayPal 需要其開發(fā)團(tuán)隊(duì)有效管理兩種規(guī)模:生產(chǎn)規(guī)模,尤其是與許多其他服務(wù)器(如云服務(wù))交互的并發(fā)系統(tǒng);和開發(fā)規(guī)模,尤其是由許多程序員協(xié)同開發(fā)的大型代碼庫(如開源開發(fā))
PayPal 利用 Go 來解決這些規(guī)模問題。該公司的開發(fā)人員受益于 Go 將解釋型動(dòng)態(tài)類型語言的編程易用性與靜態(tài)類型編譯語言的效率和安全性相結(jié)合的能力。隨著 PayPal 對(duì)其系統(tǒng)進(jìn)行現(xiàn)代化改造,對(duì)網(wǎng)絡(luò)和多核計(jì)算的支持至關(guān)重要。Go 不僅提供了這種支持,而且提供的速度很快——在單臺(tái)計(jì)算機(jī)上編譯一個(gè)大型可執(zhí)行文件最多需要幾秒鐘。
PayPal 目前有 100 多名 Go 開發(fā)人員,未來選擇采用 Go 的開發(fā)人員將更容易獲得該語言的批準(zhǔn),這要?dú)w功于公司已經(jīng)在生產(chǎn)中的許多成功實(shí)現(xiàn)。
最重要的是,PayPal 開發(fā)人員使用 Go 提高了他們的生產(chǎn)力。Go 的并發(fā)機(jī)制使得編寫充分利用 PayPal 的多核和聯(lián)網(wǎng)機(jī)器的程序變得很容易。使用 Go 的開發(fā)人員還受益于它可以快速編譯為機(jī)器代碼的事實(shí),并且他們的應(yīng)用程序獲得了垃圾收集的便利和運(yùn)行時(shí)反射的強(qiáng)大功能。
今天 PayPal 的第一類語言是 Java 和 Node,Go 主要用作基礎(chǔ)設(shè)施語言。雖然 Go 可能永遠(yuǎn)不會(huì)在某些應(yīng)用程序中取代 Node.js,但 Natarajan 正在推動(dòng)讓 Go 成為 PayPal 的第一類語言。
通過他的努力,PayPal 還在評(píng)估遷移到 Google Kubernetes Engine (GKE) 以加快其新產(chǎn)品的上市時(shí)間。GKE 是一個(gè)用于部署容器化應(yīng)用程序的托管、生產(chǎn)就緒環(huán)境,并帶來了 Google 在開發(fā)人員生產(chǎn)力、自動(dòng)化操作和開源靈活性方面的最新創(chuàng)新。
對(duì)于 PayPal 而言,部署到 GKE 將使 PayPal 更容易部署、更新和管理其應(yīng)用程序和服務(wù),從而實(shí)現(xiàn)快速開發(fā)和迭代。此外,PayPal 會(huì)發(fā)現(xiàn)更容易運(yùn)行機(jī)器學(xué)習(xí)、通用 GPU、高性能計(jì)算和其他受益于 GKE 支持的專用硬件加速器的工作負(fù)載。
對(duì) PayPal 來說最重要的是,Go 開發(fā)和 GKE 的結(jié)合使公司能夠輕松擴(kuò)展以滿足需求,因?yàn)?Kubernetes 自動(dòng)擴(kuò)展將使 PayPal 能夠處理用戶對(duì)服務(wù)不斷增長(zhǎng)的需求——在最重要的時(shí)候保持它們可用,然后在安靜的時(shí)間來省錢。
物聯(lián)網(wǎng)中最常用的編程語言,即Java,C,C ++,Python,JavaScript和Go。
Java:物聯(lián)網(wǎng)技術(shù)最流行的編程語言
Java有多個(gè)應(yīng)用領(lǐng)域,從后端編程到Android的移動(dòng)應(yīng)用。根據(jù) Eclipse基金會(huì)執(zhí)行的2017年物聯(lián)網(wǎng)開發(fā)者調(diào)查,Java首次提供了用于物聯(lián)網(wǎng)開發(fā)的編程語言列表,專門用于網(wǎng)關(guān)和云。
使用Java進(jìn)行物聯(lián)網(wǎng)開發(fā)的一個(gè)主要好處是便攜性。Java沒有任何硬件限制,這意味著您可以在計(jì)算機(jī)上編寫和調(diào)試Java代碼,并將其部署到幾乎任何運(yùn)行Java虛擬機(jī)的設(shè)備上。出于這個(gè)原因,許多公司選擇聘請(qǐng)Java開發(fā)人員進(jìn)行物聯(lián)網(wǎng)項(xiàng)目。
C:嵌入式設(shè)備的關(guān)鍵編程語言
C編程語言接下來成為物聯(lián)網(wǎng)IoT堆棧最喜歡的語言。然而,根據(jù)Eclipse基金會(huì)的說法,它被認(rèn)為是受限設(shè)備開發(fā)的領(lǐng)先技術(shù)。
該編程語言提供對(duì)低級(jí)硬件API的直接訪問。由于其與機(jī)器語言的相似性,C非??焖偾异`活,使其成為處理能力有限的物聯(lián)網(wǎng)系統(tǒng)的完美選擇。
C ++:Linux的第一語言
與其前身C一樣,C ++已廣泛用于嵌入式系統(tǒng)開發(fā)。但是,C ++的主要優(yōu)勢(shì)在于處理能力,在任務(wù)更加復(fù)雜時(shí)使其成為C的有用替代方案。
C ++最適合編寫硬件特定的代碼。它可與Linux,第一大物聯(lián)網(wǎng)技術(shù)操作系統(tǒng)配合使用。但是,與Java相比,它具有有限的可移植性。
Python:面向數(shù)據(jù)的物聯(lián)網(wǎng)系統(tǒng)的解決方案
作為最受歡迎的網(wǎng)絡(luò)編程語言之一,以及科學(xué)計(jì)算的前沿技術(shù),Python在物聯(lián)網(wǎng)開發(fā)中也獲得了巨大的推動(dòng)力。 對(duì)于數(shù)據(jù)密集型應(yīng)用程序,Python是一個(gè)不錯(cuò)的選擇,特別是在管理和組織復(fù)雜數(shù)據(jù)時(shí)。
JavaScript:事件驅(qū)動(dòng)物聯(lián)網(wǎng)應(yīng)用的最佳解決方案
根據(jù)年度StackOverflow開發(fā)者調(diào)查顯示,JavaScript是過去五年來最流行的編程語言之一,是現(xiàn)代Web開發(fā)中的核心技術(shù)。
在許多其他應(yīng)用領(lǐng)域中,JavaScript是物聯(lián)網(wǎng)編程語言中最常用的構(gòu)建事件驅(qū)動(dòng)系統(tǒng)。它可以管理連接設(shè)備的大型網(wǎng)絡(luò),并且在需要處理多個(gè)任務(wù)而無需等待其他任務(wù)完成時(shí)可以勝任。JavaScript對(duì)IoT的主要優(yōu)勢(shì)之一是非常節(jié)約資源。
Go:堅(jiān)固的技術(shù)堆棧為復(fù)雜的物聯(lián)網(wǎng)網(wǎng)絡(luò)提供動(dòng)力
Go是一款開源編程語言,由Google創(chuàng)建。盡管它不能像語言那樣擁有同樣廣泛的用途,但我們之前專注于這一點(diǎn),它是在您的物聯(lián)網(wǎng)系統(tǒng)內(nèi)建立通信層的強(qiáng)大技術(shù)。
Go語言關(guān)于物聯(lián)網(wǎng)的主要優(yōu)勢(shì)是并發(fā)性和同時(shí)運(yùn)行多個(gè)進(jìn)程(數(shù)據(jù)輸入和輸出)的能力。這使得構(gòu)建由多個(gè)傳感器和設(shè)備組成的復(fù)雜IoT網(wǎng)絡(luò)變得更加容易。