javascript
未来物联网全栈开发 --JavaScript or Python?
版權(quán)聲明:本文為博主杜錦陽(yáng)原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載,如有侵權(quán)將依法追究其法律責(zé)任。
目錄(?)[+]
未來(lái)物聯(lián)網(wǎng)全棧開發(fā) ——  JavaScript OR  Python? 
 物聯(lián)網(wǎng)開發(fā)涉及面龐雜,開發(fā)周期長(zhǎng),所以我們必須尋找一種覆蓋面廣的編程語(yǔ)言和方法。 
 JavaScript 支持 HTTP 和 JSON 、支持函數(shù)式編程、可提供交互式環(huán)境等特點(diǎn)堪稱適用于物聯(lián)網(wǎng)全棧開發(fā); 
 Python 作為一種膠水語(yǔ)言,可在物聯(lián)網(wǎng)及嵌入式系統(tǒng)中承擔(dān)大量任務(wù),并部分替代以上語(yǔ)言。
??物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時(shí)代的重要發(fā)展階段,不太清楚的可以看上篇文章《IoT領(lǐng)域的故事、經(jīng)歷、技術(shù)實(shí)戰(zhàn)》,正所謂語(yǔ)言無(wú)國(guó)度,無(wú)論是 Js 還是 Python , 都有各自優(yōu)點(diǎn),最主要還是要看個(gè)人選擇自身比較合適的語(yǔ)言。但是在未來(lái)物聯(lián)網(wǎng)全棧開發(fā)的基礎(chǔ)上,個(gè)人覺得 Python 作為主流且更具有優(yōu)勢(shì),不信?請(qǐng)看文章最后的一句話。 
 
 
  
 
 
先來(lái)說(shuō)說(shuō) Javascript
??可能很少人知道 js 的前身,Javascript 的前身叫LiveScript,是Sun公司推出Java后 Netscape 公司引進(jìn)的,當(dāng)時(shí)因?yàn)槟承┰?#xff0c;它將原有的 LiveScript 重新進(jìn)行設(shè)計(jì),參考了面向?qū)ο蟮母拍?#xff0c;并更名為 JavaScript,據(jù)說(shuō)是因?yàn)橐晃恍÷殕T在無(wú)聊時(shí)開發(fā)出來(lái)的自身版本 。 
 ??之所以取名JavaScript,是因?yàn)镴avaScript是作為一種嵌入HTML文檔的、基于對(duì)象的腳本設(shè)計(jì)語(yǔ)言。其中很大一部分的語(yǔ)法同Java語(yǔ)言很相似,而且JavaScript的設(shè)計(jì)可以使它很容易地同Java語(yǔ)言一同工作,它可以充分支持Java的applet小應(yīng)用程序,Java的 applet小應(yīng)用程序也可以很方便地訪問(wèn)已有的JavaScript代碼。所以,也可以JavaScript看成是Java語(yǔ)言的某種簡(jiǎn)化版本。
??前端開發(fā)人員都比較清楚 JavaScript 的優(yōu)點(diǎn),來(lái)排列下:
??可是它也有局限性,如各瀏覽器廠商對(duì)JavaScript支持程度不同,“Web安全性”對(duì)JavaScript一些功能犧牲,如 .NET 大多數(shù)攻擊都是通過(guò) Js 運(yùn)行腳本注入。
目前在互聯(lián)網(wǎng)上有很多瀏覽器,如Firefox、Internet 
 Explorer、Opera等,但每種瀏覽器支持JavaScript的程度是不一樣的,不同的瀏覽器在瀏覽一個(gè)帶有JavaScript腳本的主頁(yè)時(shí),由于對(duì)JavaScript的支持稍有不同,其效果會(huì)有一定的差距,有時(shí)甚至?xí)@示不出來(lái)。
 
再來(lái)說(shuō)說(shuō) Python
??膠水語(yǔ)言,同樣的也是面向?qū)ο?#xff0c;但我更喜歡稱它為“蛇”語(yǔ)言,一種 C 和 shell 之間的語(yǔ)言,功能全面,易學(xué)易用,可拓展的語(yǔ)言,為什么這么說(shuō),在你會(huì) Java 的基礎(chǔ)上,如果你同時(shí)學(xué) Js 和 Python 的話,我想,Python 會(huì)更快勝任。
??開發(fā)游戲里有一種常見的應(yīng)用情形,需要快速生成模型。如何操作?
??使用 Python 快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫。 
  
 ??比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫(kù)。需要注意的是在您使用擴(kuò)展類庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些可能不提供跨平臺(tái)的實(shí)現(xiàn)。
Python 在吉多手中誕生了。實(shí)際上,第一個(gè)實(shí)現(xiàn)是在 Mac 機(jī)上。可以說(shuō),Python 是從 ABC 發(fā)展起來(lái),主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語(yǔ)言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了 Unix shell 和C 的習(xí)慣。
??如果你使用過(guò),應(yīng)該對(duì)它所支持的擴(kuò)展庫(kù)印象會(huì)很深刻吧,它可擴(kuò)展性和可嵌入性,包括實(shí)用性非常強(qiáng)。如著名的計(jì)算機(jī)視覺庫(kù)OpenCV、三維可視化庫(kù)VTK、醫(yī)學(xué)圖像處理庫(kù)ITK,還有最近在幫公司開發(fā)的高級(jí)反編譯讀取庫(kù)(暫定命名YHK)。
 
未來(lái)誰(shuí)是王者
??那對(duì)比優(yōu)缺點(diǎn)和使用規(guī)則之后我們發(fā)現(xiàn),兩者各有千秋,未來(lái)物聯(lián)網(wǎng)發(fā)展離不開一樣?xùn)|西,那就是智能化與科學(xué)計(jì)算,國(guó)外這幾年比較主流的是 MATLAB,記得上家公司帶領(lǐng)的團(tuán)隊(duì)里有個(gè)英國(guó)留學(xué)回來(lái)的哥們,和他聊過(guò)幾次,了解到,其實(shí)在國(guó)外,MATLAB 一直都是比較主流的,但它是商用,和Oracle一樣,需要付費(fèi),且價(jià)格不菲。由此可見,國(guó)外走的不是“程序、產(chǎn)品、項(xiàng)目”,而是“機(jī)器人、智能、科學(xué)計(jì)算、圖形、算法”這些,當(dāng)然國(guó)內(nèi)也有,卻是非主流的趨勢(shì),今年才感覺到市場(chǎng)的趨勢(shì)改變,也許未來(lái)會(huì)著重發(fā)展,所以單從這一點(diǎn)來(lái)看,科學(xué)算法占用了很大的比例。
用 Python 做科學(xué)計(jì)算有如下優(yōu)點(diǎn):
- 首先,MATLAB 是商用的,且價(jià)格不菲。而 Python 完全免費(fèi),眾多開源的科學(xué)計(jì)算庫(kù)都提供了Python的調(diào)用接口。用戶可以在任何計(jì)算機(jī)上免費(fèi)安裝Python及其絕大多數(shù)擴(kuò)展庫(kù)。
- 其次,與MATLAB相比,Python是一門更易學(xué)、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計(jì)語(yǔ)言。它能讓用戶編寫出更易讀、易維護(hù)的代碼。
- 最后,MATLAB主要專注于工程和科學(xué)計(jì)算。然而即使在計(jì)算領(lǐng)域,也經(jīng)常會(huì)遇到文件管理、界面設(shè)計(jì)、網(wǎng)絡(luò)通信等各種需求。而Python有著豐富的擴(kuò)展庫(kù),可以輕易完成各種高級(jí)任務(wù),開發(fā)者可以用Python實(shí)現(xiàn)完整應(yīng)用程序所需的各種功能。
 
??由于Python語(yǔ)言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,在國(guó)外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python來(lái)教授程序設(shè)計(jì)課程。例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論就使用Python語(yǔ)言講授。
??眾多開源的科學(xué)計(jì)算軟件包都提供了Python的調(diào)用接口,例如著名的計(jì)算機(jī)視覺庫(kù)OpenCV、三維可視化庫(kù)VTK、醫(yī)學(xué)圖像處理庫(kù)ITK。 
 ??Python專用的科學(xué)計(jì)算擴(kuò)展庫(kù)就更多了,例如如下3個(gè)十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫(kù):NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。因此Python語(yǔ)言及其眾多的擴(kuò)展庫(kù)所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計(jì)算應(yīng)用程序。
 
 ??電商、游戲、爬蟲、數(shù)據(jù)分析等商業(yè)應(yīng)用,再到 分布式系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、大規(guī)模數(shù)據(jù)存儲(chǔ)、web基礎(chǔ)架構(gòu)等進(jìn)行性能分析,再過(guò)來(lái)就是 圖形渲染、科學(xué)計(jì)算、智能化、再到運(yùn)行速度、快速處理、支持的擴(kuò)展庫(kù),如果是你,你會(huì)選什么呢?
 
 
 
 
 || 版權(quán)聲明:本文為博主杜錦陽(yáng)原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。http://blog.csdn.net/djy1992/article/details/71712628
 
總結(jié)
以上是生活随笔為你收集整理的未来物联网全栈开发 --JavaScript or Python?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 技术人的未来在哪里?
- 下一篇: COMMCONFIG进行配置的WIN32
